Browse Source

添加服务弹窗、配置服务价格页面

zq-develop
zq 2 months ago
parent
commit
36ec46514b
  1. 1
      src/assets/addIcon.svg
  2. 1
      src/assets/collect.svg
  3. 1
      src/assets/delete.svg
  4. BIN
      src/assets/goodsTem.png
  5. 1
      src/assets/register/close.svg
  6. BIN
      src/assets/register/wanfang.png
  7. 1
      src/assets/register/wanfang.svg
  8. 1
      src/assets/register/weipu.svg
  9. 1
      src/assets/register/xueshubuduan.svg
  10. 52
      src/components/PageTitle.vue
  11. 11
      src/router/index.js
  12. 9
      src/store/index.js
  13. 16
      src/style/theme/common.scss
  14. 371
      src/views/ConfigureServicePrices.vue
  15. 483
      src/views/Register.vue

1
src/assets/addIcon.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

1
src/assets/collect.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16.505903244018555" height="16.001562118530273" viewBox="0 0 16.505903244018555 16.001562118530273"><g transform="matrix(1,0,0,-1,0,32.00312423706055)"><path d="M9.15,31.440662118530273Q8.86875,31.971862118530275,8.24375,32.00316211853027Q7.65,31.971862118530275,7.3375,31.440662118530273L5.3375,27.315662118530273L0.8375,26.628162118530273Q0.24375,26.534362118530275,0.05625,25.97187211853027Q-0.13125,25.37812211853027,0.30625,24.94062211853027L3.55625,21.72187211853027L2.775,17.159372118530275Q2.7125,16.565625118530274,3.18125,16.190625118530274Q3.68125,15.846875118530274,4.24375,16.128125118530274L8.24375,18.253122118530275L12.275,16.128125118530274Q12.8062,15.846875118530274,13.3062,16.190625118530274Q13.8062,16.565625118530274,13.7125,17.159372118530275L12.9625,21.72187211853027L16.2125,24.94062211853027Q16.6187,25.37812211853027,16.4625,25.97187211853027Q16.2437,26.534362118530275,15.65,26.628162118530273L11.15,27.315662118530273L9.15,31.440662118530273Z" fill="#1677FF" fill-opacity="1" style="mix-blend-mode:passthrough"/></g></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

1
src/assets/delete.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="14" height="16" viewBox="0 0 14 16"><defs><clipPath id="master_svg0_193_74294"><rect x="0" y="0" width="14" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_193_74294)"><g transform="matrix(1,0,0,-1,0,32.6875)"><g><path d="M4.21875,31.78125L4,31.34375L4.21875,31.78125L4,31.34375L1,31.34375Q0.5625,31.34375,0.28125,31.06255Q0,30.78125,0,30.34375Q0,29.90625,0.28125,29.62495Q0.5625,29.34375,1,29.34375L13,29.34375Q13.4375,29.34375,13.7188,29.62495Q14,29.90625,14,30.34375Q14,30.78125,13.7188,31.06255Q13.4375,31.34375,13,31.34375L10,31.34375L9.78125,31.78125Q9.5,32.31255,8.875,32.34375L5.125,32.34375Q4.5,32.31255,4.21875,31.78125ZM13,28.34375L1,28.34375L13,28.34375L1,28.34375L1.65625,17.75Q1.71875,17.15625,2.125,16.75Q2.5625,16.34375,3.15625,16.34375L10.8438,16.34375Q11.4375,16.34375,11.875,16.75Q12.2812,17.15625,12.3438,17.75L13,28.34375Z" fill="#9CA3AF" fill-opacity="1" style="mix-blend-mode:passthrough"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
src/assets/goodsTem.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

1
src/assets/register/close.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="28" height="28" viewBox="0 0 28 28"><defs><clipPath id="master_svg0_151_54258/19_33087"><rect x="0" y="0" width="28" height="28" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_151_54258/19_33087)"><g><path d="M20.890666259765624,5.879115948425293C20.890666259765624,5.879115948425293,14.000076259765626,12.769744948425293,14.000076259765626,12.769744948425293C14.000076259765626,12.769744948425293,7.109456259765625,5.879115948425293,7.109456259765625,5.879115948425293C6.9268662597656245,5.715197948425293,6.721826259765625,5.633240348425293,6.494327259765625,5.633240348425293C6.266827259765625,5.633240348425293,6.066160259765625,5.719864948425293,5.892327259765625,5.893115948425293C5.718493259765625,6.066365948425293,5.631867859765625,6.267030948425293,5.632451259765625,6.495115948425293C5.633034559765625,6.723194948425293,5.714993259765625,6.928244948425293,5.878327259765625,7.110244948425293C5.878327259765625,7.110244948425293,12.768956259765625,14.000864948425294,12.768956259765625,14.000864948425294C12.768956259765625,14.000864948425294,5.878327259765625,20.89145494842529,5.878327259765625,20.89145494842529C5.641493059765625,21.128354948425294,5.563909959765625,21.410954948425292,5.645576459765625,21.739354948425294C5.727243259765625,22.067754948425293,5.927910259765625,22.272854948425294,6.247577259765625,22.354454948425293C6.567242259765625,22.436154948425294,6.854246259765625,22.358554948425294,7.108576259765625,22.12175494842529C7.108576259765625,22.12175494842529,13.999206259765625,15.231114948425294,13.999206259765625,15.231114948425294C13.999206259765625,15.231114948425294,20.889866259765626,22.12175494842529,20.889866259765626,22.12175494842529C21.072366259765623,22.285654948425293,21.277466259765625,22.367654948425294,21.504966259765624,22.367654948425294C21.732466259765626,22.367654948425294,21.933066259765624,22.280954948425293,22.106966259765624,22.107754948425292C22.280766259765624,21.934454948425294,22.367366259765625,21.733854948425293,22.366866259765626,21.50575494842529C22.366266259765624,21.277654948425294,22.284266259765626,21.072654948425296,22.120966259765623,20.890654948425293C22.120966259765623,20.890654948425293,15.230326259765626,13.999994948425293,15.230326259765626,13.999994948425293C15.230326259765626,13.999994948425293,22.120966259765623,7.109364948425293,22.120966259765623,7.109364948425293C22.357766259765626,6.872534948425293,22.435366259765626,6.589905948425293,22.353666259765625,6.261490948425293C22.272066259765626,5.933073948425293,22.066966259765625,5.728031948425293,21.738566259765626,5.646365148425293C21.410166259765624,5.564698648425293,21.127566259765626,5.642281748425293,20.890666259765624,5.879115948425293C20.890666259765624,5.879115948425293,20.890666259765624,5.879115948425293,20.890666259765624,5.879115948425293C20.890666259765624,5.879115948425293,20.890666259765624,5.879115948425293,20.890666259765624,5.879115948425293Z" fill="#626573" fill-opacity="1"/></g></g></svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
src/assets/register/wanfang.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

1
src/assets/register/wanfang.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="23.70556640625" height="23.56005859375" viewBox="0 0 23.70556640625 23.56005859375"><g><g><path d="M1.852783203125 1.852590560913086C1.852783203125 1.852590560913086 1.852783203125 1.852590560913086 1.852783203125 1.852590560913086L21.852783203125 1.852590560913086C21.852783203125 1.852590560913086 21.852783203125 1.852590560913086 21.852783203125 1.852590560913086L21.852783203125 21.707136154174805C21.852783203125 21.707136154174805 21.852783203125 21.707136154174805 21.852783203125 21.707136154174805L1.852783203125 21.707136154174805C1.852783203125 21.707136154174805 1.852783203125 21.707136154174805 1.852783203125 21.707136154174805Z" fill-opacity="0" stroke-opacity="1" stroke="#E6121D" fill="none" stroke-width="3.705625057220459"/></g><g><path d="M10.160475730895996 0.85986328125C10.160475730895996 0.85986328125 10.160475730895996 0.85986328125 10.160475730895996 0.85986328125L12.69893741607666 0.85986328125C12.69893741607666 0.85986328125 12.69893741607666 0.85986328125 12.69893741607666 0.85986328125L12.69893741607666 21.85986328125C12.69893741607666 21.85986328125 12.69893741607666 21.85986328125 12.69893741607666 21.85986328125L10.160475730895996 21.85986328125C10.160475730895996 21.85986328125 10.160475730895996 21.85986328125 10.160475730895996 21.85986328125Z" fill="#E6121D" fill-opacity="1"/></g><g><path d="M11.852783203125 10.099863052368164C11.852783203125 10.099863052368164 11.852783203125 10.099863052368164 11.852783203125 10.099863052368164L22.852783203125 10.099863052368164C22.852783203125 10.099863052368164 22.852783203125 10.099863052368164 22.852783203125 10.099863052368164L22.852783203125 12.619863033294678C22.852783203125 12.619863033294678 22.852783203125 12.619863033294678 22.852783203125 12.619863033294678L11.852783203125 12.619863033294678C11.852783203125 12.619863033294678 11.852783203125 12.619863033294678 11.852783203125 12.619863033294678Z" fill="#E6121D" fill-opacity="1"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

1
src/assets/register/weipu.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 31 KiB

1
src/assets/register/xueshubuduan.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 30 KiB

52
src/components/PageTitle.vue

@ -0,0 +1,52 @@
<template>
<div class="page-title-wrap min-flex">
<b>{{ pageTitle }}</b>
</div>
</template>
<script>
// import GuipInput from '@/components/GuipInput.vue';
import { mapState } from 'vuex';
export default {
//
name: '',
props: [''],
components: {
// GuipInput,
},
data() {
return {
}
},
computed: {
...mapState(['pageTitle']) // VuexshowSidebar
},
methods: {
}
}
</script>
<style lang="scss">
.page-title-wrap {
width: 100%;
height: 72px;
/* 自动布局 */
display: flex;
flex-direction: column;
padding: 24px 12px;
b {
/* headline/haeadline_3_bold */
font-family: Microsoft YaHei UI;
font-size: 18px;
font-weight: bold;
line-height: 24px;
letter-spacing: 0.06em;
font-variation-settings: "opsz" auto;
/* text/text_1 */
color: #1E2226;
display: inline-block;
text-align: left;
}
}
</style>

11
src/router/index.js

@ -6,9 +6,9 @@ import HomeView from '../views/HomeView.vue';
// import Franchise from '../views/Franchise.vue'
Vue.use(VueRouter)
const whiteSlideList = ['/','/ui'];//侧边导航白名单
const whiteHeaderList = ['/','/ui','/register'];//头部导航白名单
const whiteFooterList = ['/','/ui'];//底部白名单
const whiteSlideList = ['/','/ui',];//侧边导航白名单
const whiteHeaderList = ['/','/ui','/register','/settingServicePrice'];//头部导航白名单
const whiteFooterList = ['/','/ui','/settingServicePrice'];//底部白名单
const routes = [
{
path: '/',
@ -49,6 +49,11 @@ const routes = [
name: '加盟',
component: () => import(/* webpackChunkName: "franchise" */ '../views/Franchise.vue')
},
{
path: '/settingServicePrice',
name: '配置服务价格',
component: () => import(/* webpackChunkName: "franchise" */ '../views/ConfigureServicePrices.vue')
},
]
const router = new VueRouter({

9
src/store/index.js

@ -10,7 +10,8 @@ export default new Vuex.Store({
showHeader:false,
menuList:[],//目录菜单
showBreadcrumb:false,//是否展示面包屑
pageTitle:'一般新文献'//页面标题
pageTitle:'一般新文献',//页面标题
addServiceList:[]
},
actions: {
SET_HEADER({ commit }) {
@ -28,6 +29,9 @@ export default new Vuex.Store({
SET_PAGETITLE({ commit }) {
commit('SET_PAGETITLE');
},
SET_ADDSERVICELIST({ commit }) {
commit('SET_ADDSERVICELIST');
},
},
mutations: {
SET_SIDEBAR(state, show) {
@ -44,6 +48,9 @@ export default new Vuex.Store({
},
SET_PAGETITLE(state, title) {
state.pageTitle = title;
},
SET_ADDSERVICELIST(state, list) {
state.addServiceList = list;
}
},
getters: {

16
src/style/theme/common.scss

@ -11,6 +11,9 @@ body {
}
}
.mb24{
margin-bottom: 24px;
}
.el-container {
height: 100%;
@ -72,6 +75,19 @@ body {
max-width: 590px;
flex: 1;
}
.flex-left-desc{
/* body/body 2_regular */
font-family: Microsoft YaHei UI;
font-size: 14px;
font-weight: normal;
line-height: normal;
letter-spacing: 0.08em;
font-variation-settings: "opsz" auto;
/* text/text_1 */
color: #1E2226;
text-align: left;
// margin: ;
}
}

371
src/views/ConfigureServicePrices.vue

@ -0,0 +1,371 @@
<template>
<!-- 配置服务价格页面 -->
<div class="config-service-price min-width">
<div class="config-service-left">
</div>
<div class="config-service-right">
<el-form>
<!-- 面包屑导航 start -->
<!-- 面包屑导航 end -->
<PageTitle />
<div class="min-flex flex ">
<div class="flex-common alias-wrap">
<b>服务别名</b>
<GuipInput ref="GuipInput" width="510px" v-model="form.alias" placeholder="服务别名将展示在前端销售页面中">
</GuipInput>
</div>
</div>
<div class="min-flex">
<div class="content1 flex-common">
<h3>网页支付与售价</h3>
<div class="flex-wrap">
<div class="flex-left">
<p class="flex-left-desc">支付渠道</p>
<div class="left-pay-list">
<div class="left-pay-item ">
<div class="flex-between">
<span>微信收款</span>
<GuipSwitch :modelValue="form.weixinFlag" activeText="开启" inactiveText="关闭"
@change="onSwitchChange">
</GuipSwitch>
</div>
<p>知网学诚 899990008@163.com</p>
</div>
<div class="left-pay-item ">
<div class="flex-between">
<span>支付宝收款</span>
<GuipSwitch :modelValue="form.zhifubaoFlag" activeText="开启"
inactiveText="关闭" @change="onSwitchChange">
</GuipSwitch>
</div>
<p>知网学诚 899990008@163.com</p>
</div>
</div>
</div>
<div class="flex-line"></div>
<div class="flex-right">
<GuipFormItem column="column">
<div slot="formLeft" class="form-top-icon">售价管理
</div>
<span slot="formRight" class="info">供货价格3.5/</span>
<div class="flex-between" slot="formDom">
<div class="short-width">
<GuipSelect v-model="form.payword" :defaultValue="form.payword"
prop="payword" width="100%" :options="options_payword" />
</div>
<div class="short-width">
<GuipInput ref="GuipInput" width="100%" v-model="form.price"
:defaultValue="form.price" placeholder="请输入售价" unit="元/篇" />
</div>
</div>
</GuipFormItem>
</div>
</div>
</div>
<div class="content2 flex-common">
<h3>淘宝支付管理</h3>
<div class="flex-wrap">
<div class="flex-left">
<p class="flex-left-desc">淘宝渠道</p>
<div class="left-pay-list mb24">
<div class="left-pay-item ">
<div class="flex-between">
<span>淘宝收款</span>
<GuipSwitch :modelValue="form.weixinFlag" activeText="开启" inactiveText="关闭"
@change="onSwitchChange">
</GuipSwitch>
</div>
<p>知网学诚 899990008@163.com</p>
</div>
</div>
<GuipFormItem column="column">
<div slot="formLeft" class="form-top-icon">淘宝售价
</div>
<div class="flex-between" slot="formDom">
<div class="short-width">
<GuipInput ref="GuipInput" width="100%" v-model="form.taobaoNum"
:defaultValue="form.taobaoNum" placeholder="请输入件数" unit="件" />
</div>
<div class="short-width">
<GuipInput ref="GuipInput" width="100%" v-model="form.taobaoword"
:defaultValue="form.taobaoword" placeholder="请输入字符" unit="字符" />
</div>
</div>
</GuipFormItem>
</div>
<div class="flex-line"></div>
<div class="flex-right">
<GuipFormItem column="column">
<div slot="formLeft">关联商品
</div>
<div slot="formRight" class="info-error">必须关联且确保服务与XX电商商品一致
</div>
<div class="associated_Goods" slot="formDom">
<img src="" class="goods_left" alt="">
<div class="goods_right">
<div class="goods_right_item flex-between">
<img src="@/assets/goodsTem.png" alt="" class="good-item-left">
<div class="good-item-right">
<p>小分解论文查重检测大学本科硕士毕业论文初稿重复率查询系统职称小分解论文查重检测大学本科硕士毕业论文初稿重复率查询系统职称小分解论文查重检测大学本科硕士毕业论文初稿重复率查询系统职称
</p>
<div class="flex-between good-item-right-bot">
<span>¥{{ }}39.4</span>
<div class="flex">
<div class="flex good-bot-btn" @click="deleteFunc"><img
src="@/assets/delete.svg" alt="">删除
</div>
<div class="flex good-bot-btn" @click="collectFunc"><img
src="@/assets/collect.svg" alt="">默认商品</div>
</div>
</div>
</div>
</div>
</div>
</div>
</GuipFormItem>
<div class="addStore flex">
<img src="@/assets/addIcon.svg" alt="">添加商品
</div>
</div>
</div>
</div>
</div>
</el-form>
<Footer></Footer>
</div>
</div>
</template>
<script>
import PageTitle from '@/components/PageTitle.vue';
import { mapState } from 'vuex';
// import GuipButton from '@/components/GuipButton.vue';
import GuipFormItem from '@/components/GuipFormItem.vue';
import GuipInput from '@/components/GuipInput.vue';
import GuipSelect from '@/components/GuipSelect.vue';
import Footer from '@/components/Footer.vue';
import GuipSwitch from '@/components/GuipSwitch.vue';
export default {
//
name: '',
props: [''],
components: {
// GuipInput,
PageTitle,
// GuipButton,
GuipFormItem,
GuipInput,
GuipSelect,
Footer,
GuipSwitch
},
data() {
return {
options_payword: [
{
label: '按篇', value: '0'
},
{
label: '按字符', value: '1'
},
],
form: {
price: 30,
alias: '',
payword: '0',
weixinFlag: true,
zhifubaoFlag: true,
taobaoword: 1000,
taobaoNum: 1,
}
}
},
computed: {
...mapState(['pageTitle', 'addServiceList']) // VuexshowSidebar
},
methods: {
onSwitchChange(data) {
console.log(data, '---');
},
deleteFunc() {
},
collectFunc() {
},
}
}
</script>
<style lang="scss">
.config-service-price {
display: flex;
.config-service-left {
width: 158px;
height: 100%;
background: #eee;
}
.config-service-right {
width: calc(100% - 158px);
}
.alias-wrap {
width: 100%;
display: flex;
justify-content: flex-start;
align-items: center;
b {
display: inline-block;
margin-right: 32px;
/* body/body 1_bold */
font-family: Microsoft YaHei UI;
font-size: 16px;
font-weight: bold;
line-height: normal;
letter-spacing: 0.08em;
font-variation-settings: "opsz" auto;
/* text/text_1 */
color: #1E2226;
}
}
.flex-left,
.flex-right {
min-width: 392px;
max-width: 590px;
flex: 1;
}
.left-pay-list {
width: 100%;
border-radius: 4px;
opacity: 1;
/* middle/middle_grey_0 */
// span{
// color: #23242B;
// }
.left-pay-item {
padding: 24px;
color: #23242B;
background: #FAFAFA;
margin-top: 12px;
p {
text-align: left;
margin-top: 9px;
/* caption/caption_regular */
font-size: 12px;
font-weight: normal;
line-height: 13px;
letter-spacing: 0.08em;
color: #626573;
}
}
}
.short-width {
width: calc((100% - 12px) / 2);
}
.goods_right {
.goods_right_item {
padding: 16px;
border-radius: 8px;
opacity: 1;
/* middle/middle_grey_0 */
background: #FAFAFA;
.good-item-left {
width: 80px;
margin-right: 22px;
}
}
.good-item-right {
display: flex;
flex-direction: column;
height: 80px;
p {
text-align: left;
letter-spacing: 0.08em;
font-variation-settings: "opsz" auto;
/* text/text_1 */
color: #1E2226;
display: -webkit-box;
-webkit-line-clamp: 2;
/* 注意:这不是一个标准的CSS属性,仅在WebKit浏览器中有效 */
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
height: 36px;
}
}
.good-item-right-bot {
flex: 1;
align-items: end;
}
.good-bot-btn {
img {
margin-right: 4px;
}
}
.good-bot-btn:nth-child(1) {
margin-right: 12px;
}
}
.addStore {
margin-top: 12px;
border-radius: 4px;
opacity: 1;
/* text/text_white_2 */
border: 1px dashed #BABDC2;
padding: 15px 20px;
color: #626573;
justify-content: center;
img{
margin-right: 12px;
}
}
}
.alias-wrap ::v-deep .el-form-item {
margin-bottom: 0;
}
.info-error {
color: #FF4D4F;
letter-spacing: 0.08em;
}
.info {
letter-spacing: 0.08em;
color: #8A9099;
}
.min-flex {
min-width: 1018px;
max-width: 1556px;
width: 97.6%;
margin: 0 auto;
}
</style>

483
src/views/Register.vue

@ -13,20 +13,20 @@
<div class="sticky">
<div style="width: 100%;background: #fff;">
<div class="step-wrap min-flex">
<div :class="['step-item', activeStep == 1 ? 'checked' : 'success']">
<div :class="['step-item', activeStep == 1 ? 'checked' : 'success']" @click="goCurActiveStep(1)">
<img v-if="activeStep == 1" src="@/assets/register/step1_ing.svg" alt="" class="custom-icon">
<img v-if="activeStep > 1" src="@/assets/register/step_success.svg" alt="" class="custom-icon">
<span>基础信息</span>
</div>
<div :class="['step-line', activeStep > 1 ? 'step_active-line' : '']"></div>
<div :class="['step-item', activeStep == 2 ? 'checked' : activeStep > 2 ? 'success' : '']">
<div :class="['step-item', activeStep == 2 ? 'checked' : activeStep > 2 ? 'success' : '']" @click="goCurActiveStep(2)">
<img v-if="activeStep == 1" src="@/assets/register/step2_null.svg" alt="" class="custom-icon">
<img v-if="activeStep == 2" src="@/assets/register/step2_ing.svg" alt="" class="custom-icon">
<img v-if="activeStep > 2" src="@/assets/register/step_success.svg" alt="" class="custom-icon">
<span>收款方式</span>
</div>
<div :class="['step-line', activeStep > 2 ? 'step_active-line' : '']"></div>
<div :class="['step-item', activeStep == 3 ? 'checked' : activeStep > 2 ? 'success' : '']">
<div :class="['step-item', activeStep == 3 ? 'checked' : activeStep > 2 ? 'success' : '']" @click="goCurActiveStep(3)">
<img v-if="activeStep != 3" src="@/assets/register/step3_null.svg" alt="" class="custom-icon">
<img v-if="activeStep == 3" src="@/assets/register/step3_ing.svg" alt="" class="custom-icon">
<!-- <img v-if="activeStep >2" src="@/assets/register/step_success.svg" alt=""> -->
@ -86,6 +86,7 @@
<GuipFormItem column="column">
<div slot="formLeft">销售渠道
</div>
<span slot="formRight">适用于搜索推广如360百度微信售卖等渠道</span>
<GuipRadio slot="formDom" v-model="form1.distribution_channel" :options="distribution_channel_options"
prop="language" @change="radioChange" />
</GuipFormItem>
@ -464,20 +465,54 @@
<DomainModal />
</GuipDialog>
<el-dialog :visible.sync="dialogVisibleAdd" width="30%" :before-close="handleCloseAdd">
<div class="top">
<el-dialog :visible.sync="dialogVisibleAdd" ref="addDialog" width="1011px" class="addDialog-wrap" :show-close="false" >
<div class="addService_wrap">
<div class="addServicetop">
<div class="flex">
<b>添加查重服务</b>
<!-- 分类导航 -->
<el-scrollbar>
<ul>
<li v-for="item in addlist" :key="item.name">
<img src="" alt="">
<li v-for="(item, index) in addlist" :key="item.name" @click="scrollToCategory(index)"
:class="['normal_service', activeCategory == index ? 'active_service' : '']">
<img :src="addImgList[item.name]" alt="">
{{ item.name }}
</li>
</ul>
</el-scrollbar>
</div>
<img src="@/assets/register/close.svg" alt="" @click="handleCloseAdd">
</div>
<!-- 内容 -->
<div class="addServicebot" ref="content">
<div v-for="(category, index) in addlist" :key="index" :ref="`category-${index}`" class="category-section">
<h3 class="flex"><img :src="addImgList[category.name]" alt="">{{ category.name }}</h3>
<p class="service-desc">{{ category.desc }}</p>
<ul>
<li v-for="item in category.list" :key="item.name" :class="item.checked ? 'service-active' :''">
<div class="service-name-item flex-between">
<span>{{ item.name }}</span>
<input
type="checkbox"
:id="`item-${item.id}`"
v-model="item.checked"
@change="updateSelectedCount(item)"
/>
</div>
<p class="service-desc-item">{{ item.desc }}</p>
<p class="service-price-item"><i>¥</i><span>{{ item.price }}</span> / {{ item.word }}</p>
</li>
</ul>
</div>
</div>
<div class="bottom">
</div>
<div class="bottom flex">
<span>已选{{ serviceTotal }}项服务</span>
<GuipButton type="primary" :btnstyle="btnstyleObj1" @click="nextGoSettingPrice">下一步</GuipButton>
</div>
</el-dialog>
<Footer></Footer>
<div class="register-btns">
<GuipButton type="mild" @click="jumpCurStep">跳过</GuipButton>
@ -498,6 +533,7 @@ import PaymentMethod from '@/components/paymentMethod.vue';
import DomainModal from '@/components/domainModal.vue';
import CustomDropdown from '@/components/CustomDropdown.vue';
// import GuipTable from '@/components/GuipTable.vue';
import store from '../store';
export default {
components: {
@ -516,63 +552,171 @@ export default {
},
data() {
return {
addlist:[
btnstyleObj1: {
width: '137px',
height: '38px',
},
serviceTotal:0,
activeCategory: 0,
addlist: [
{
name:'万方',
desc:'提供中英文文献相似性检测服务。自主研发的“句子级正交软聚类倒排语义” 算法,海量数据全文对比,5分钟快速出报告。',
list:[
name: '万方',
desc: '提供中英文文献相似性检测服务。自主研发的“句子级正交软聚类倒排语义” 算法,海量数据全文对比,5分钟快速出报告。',
list: [
{
name:'一般新文献',
desc:'适用于所有未正式发表的文献类型。',
price:'2.4',
word:'1000字符'
name: '一般新文献',
desc: '适用于所有未正式发表的文献类型。',
price: '2.4',
word: '1000字符',
checked:false
},
{
name:'本科论文',
desc:'适用于在校大学生毕业论文。',
price:'2.4',
word:'1000字符'
name: '本科论文',
desc: '适用于在校大学生毕业论文。',
price: '2.4',
word: '1000字符',
checked:false
},
{
name:'说博士论文',
desc:'适用于应届高校硕博士研究生论文检测。',
price:'2.4',
word:'1000字符'
name: '说博士论文',
desc: '适用于应届高校硕博士研究生论文检测。',
price: '2.4',
checked:false,
word: '1000字符'
},
{
name:'高职高专',
desc:'适用于高等职业学院和高等专科学校论文检测。',
price:'2.4',
word:'1000字符'
name: '高职高专',
desc: '适用于高等职业学院和高等专科学校论文检测。',
price: '2.4',
checked:false,
word: '1000字符'
},
{
name:'一般新文献',
desc:'适用于所有未正式发表的文献类型。',
price:'2.4',
word:'1000字符'
name: '一般新文献1name',
desc: '适用于所有未正式发表的文献类型。',
price: '2.4',
checked:false,
word: '1000字符'
},
]
},
{
name:'维普',
desc:'',
list:[
name: '维普',
desc: '维普维普维普维普维普维普维普维普',
list: [
{
}
name: '一般新文献222',
desc: '适用于所有未正式发表的文献类型。',
price: '2.4',
checked:false,
word: '1000字符'
},
{
name: '本科论文222',
desc: '适用于在校大学生毕业论文。',
price: '2.4',
checked:false,
word: '1000字符'
},
{
name: '说博士论文222',
desc: '适用于应届高校硕博士研究生论文检测。',
price: '2.4',
checked:false,
word: '1000字符'
},
{
name: '高职高专222',
desc: '适用于高等职业学院和高等专科学校论文检测。',
price: '2.4',
checked:false,
word: '1000字符'
},
{
name: '一般新文献2222',
desc: '适用于所有未正式发表的文献类型。',
price: '2.4',
checked:false,
word: '1000字符'
},
{
name: '高职高专2224',
desc: '适用于高等职业学院和高等专科学校论文检测。',
price: '2.4',
checked:false,
word: '1000字符'
},
{
name: '一般新文献2222221',
desc: '适用于所有未正式发表的文献类型。',
price: '2.4',
checked:false,
word: '1000字符'
},
{
name: '高职高专22242',
desc: '适用于高等职业学院和高等专科学校论文检测。',
price: '2.4',
checked:false,
word: '1000字符'
},
{
name: '一般新文献22222211',
desc: '适用于所有未正式发表的文献类型。',
price: '2.4',
checked:false,
word: '1000字符'
},
]
},
{
name:'学术不端',
desc:'',
list:[
name: '学术不端',
desc: '学术不端学术不端学术不端学术不端学术不端学术不端',
list: [
{
}
name: '一般新文献333',
desc: '适用于所有未正式发表的文献类型。',
price: '2.4',
checked:false,
word: '1000字符'
},
{
name: '本科论文33',
desc: '适用于在校大学生毕业论文。',
price: '2.4',
checked:false,
word: '1000字符'
},
{
name: '说博士论文333',
desc: '适用于应届高校硕博士研究生论文检测。',
price: '2.4',
checked:false,
word: '1000字符'
},
{
name: '高职高专333',
desc: '适用于高等职业学院和高等专科学校论文检测。',
price: '2.4',
checked:false,
word: '1000字符'
},
{
name: '一般新文献3332',
desc: '适用于所有未正式发表的文献类型。',
price: '2.4',
checked:false,
word: '1000字符'
},
]
},
],
dialogVisibleAdd:false,
addImgList: {
'万方': require('@/assets/register/wanfang.png'),
'维普': require('@/assets/register/weipu.svg'),
'学术不端': require('@/assets/register/xueshubuduan.svg'),
},
dialogVisibleAdd: false,
selectedItemWeixin: {},//
selectedItem: {},//
selectedValue1: null,//
@ -615,7 +759,7 @@ export default {
dialogVisible: false,//
showCancelButton: true, //
showCloseButton: true, //
activeStep: 3,//
activeStep: 2,//
has_store: '1',// 0
distribution_channel: '0',// 0 >0
payment_method_list: [//
@ -708,12 +852,39 @@ export default {
options_zhifubao: [],
};
},
computed: {
//
selectedCount() {
let list = []
let list1=[]
this.addlist.forEach(item=>{
list1=[]
item.list.forEach((item1) => {
if(item.checked){
list.push(item)
list1.push(item1)
list.list = list1
}
})
})
store.commit('SET_ADDSERVICELIST', list);
return list1.length;
},
},
methods: {
nextGoSettingPrice(){
this.$router.push('/settingServicePrice')
},
goCurActiveStep(step){
if(step < this.activeStep){
this.activeStep = step
}
},
showDomainModal() {
this.dialogVisibleAdd = true;
},
handleCloseAdd(){
this.dialogVisibleAdd = false;
this.$nextTick(() => {
this.$refs.content.addEventListener('scroll', this.handleScroll);
});
},
yumingInput() {
this.dialogVisible1 = true;
@ -904,9 +1075,41 @@ export default {
},
changeNormalWeixin() {
},
//
handleCloseAdd() {
this.dialogVisibleAdd = false;
this.$refs.content.removeEventListener('scroll', this.handleScroll);
},
//
scrollToCategory(index) {
this.activeCategory = index;
const element = this.$refs[`category-${index}`][0];
element.scrollIntoView({ behavior: 'smooth' });
},
//
handleScroll() {
const scrollPosition = this.$refs.content.scrollTop;
console.log(this.activeCategory,scrollPosition,'this.activeCategory');
this.addlist.forEach((category, index) => {
const element = this.$refs[`category-${index}`][0];
const elementTop = Math.round(element.offsetTop - 70);
const elementBottom = elementTop + element.offsetHeight;
console.log('进来了',scrollPosition,elementTop,elementBottom,index,scrollPosition >= elementTop && scrollPosition < elementBottom);
if (scrollPosition >= elementTop && scrollPosition < elementBottom) {
this.activeCategory = index;
}
});
},
updateSelectedCount(item) {
this.serviceTotal = this.selectedCount;
this.$set(this.addlist,item)
// console.log('',item, this.selectedCount,this.addlist);
},
},
}
};
</script>
<style lang="scss" scoped>
@ -1240,4 +1443,188 @@ export default {
padding-left: 36px;
}
}
::v-deep .addDialog-wrap .el-dialog {
background: #F6F7FA;
height: 546px;
border-radius: 8px;
}
::v-deep .addDialog-wrap .el-dialog .el-dialog__body {
padding: 0 24px 0;
}
::v-deep .addDialog-wrap .el-dialog__header {
background: #F6F7FA;
border-radius: 8px;
}
.addDialog-wrap{
.bottom{
margin-top: 24px;
justify-content: flex-end;
align-items: center;
span{
font-size: 14px;
font-weight: normal;
line-height: normal;
text-align: center;
letter-spacing: 0.08em;
font-variation-settings: "opsz" auto;
color: #9E9E9E;
display: inline-block;
margin-right: 16px;
}
}
}
.addService_wrap {
text-align: left;
background-color: #fff;
// display: ;
.addServicetop {
display: flex;
justify-content: space-between;
align-items: center;
position: absolute;
top: 12px;
left: 24px;
width: 963.43px;
b{
font-size: 20px;
font-weight: bold;
line-height: 26px;
letter-spacing: 0.08em;
font-variation-settings: "opsz" auto;
color: #1E2226;
}
ul {
display: flex;
padding-left: 20px;
li {
cursor: pointer;
list-style-type: none;
display: flex;
align-items: center;
display: flex;
margin-right: 12px;
}
.normal_service {
padding: 4px 10px;
border-radius: 100px;
opacity: 1;
background: #FFFFFF;
letter-spacing: 0.08em;
color: #8A9099;
border: 1px solid transparent;
img{
width: 18px;
height: 18px;
margin-right: 4px;
}
}
.active_service {
color: #006AFF;
box-sizing: border-box;
border: 1px solid #006AFF;
}
}
}
.addServicebot{
overflow-y: auto;
max-height: 380px;
margin-top: 24px;
ul{
// display: flex;
// flex-wrap: wrap;
// justify-content: space-between;
display: grid;
grid-gap:14px;
grid-template-columns: repeat(auto-fit, 220px);
// grid-auto-rows: 50px;
padding-left: 0;
margin: 20px 0 0 ;
li{
list-style-type: none;
width: 220px;
height: 126px;
border-radius: 4px;
opacity: 1;
padding: 14px 10px;
background: #FFFFFF;
box-sizing: border-box;
border: 1px solid #DFE2E6;
cursor: pointer;
transition: all .3s;
}
li:hover{
background: #F6F7FA;
transition: all .3s;
}
}
.service-active{
border: 1px solid #006AFF;
}
.service-desc{
font-size: 14px;
font-weight: normal;
letter-spacing: 0.08em;
font-variation-settings: "opsz" auto;
color: #8A8C99;
margin: 6px 0 8px;
}
.service-name-item{
font-size: 14px;
letter-spacing: 0.08em;
color: #1E2226;
}
.service-desc-item{
font-size: 12px;
font-weight: normal;
line-height: 17px;
letter-spacing: 0.03em;
font-variation-settings: "opsz" auto;
color: #8A9099;
margin: 14px 0 12px;
display: -webkit-box;
-webkit-line-clamp: 2; /* 注意:这不是一个标准的CSS属性,仅在WebKit浏览器中有效 */
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
height: 34px;
}
.service-price-item{
font-size: 12px;
line-height: 16px;
letter-spacing: 0.08em;
font-variation-settings: "opsz" auto;
color: #8A9099;
i{
font-style: normal;
color: #1E2226;
}
span{
color: #1E2226;
font-size: 20px;
font-weight: normal;
line-height: 20px;
}
}
.category-section{
padding: 20px;
h3{
margin: 0;
font-size: 16px;
font-weight: normal;
letter-spacing: 0.08em;
color: #1E2226;
img{
width: 30px;
height: 30px;
margin-right: 8px;
}
}
}
}
}
</style>

Loading…
Cancel
Save