Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica.cloud.web-education-admin
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
提交
议题看板
打开侧边栏
jingqi.liu
pica.cloud.web-education-admin
提交
29c7c0ec
提交
29c7c0ec
编写于
10月 25, 2021
作者:
张磊
浏览文件
操作
浏览文件
下载
差异文件
add new rate
上级
7ceb6393
e20e7e88
变更
16
显示空白字符变更
内嵌
并排
正在显示
16 个修改的文件
包含
1122 行增加
和
12772 行删除
+1122
-12772
package-lock.json
package-lock.json
+18
-12303
edit-course-dialog.vue
...mponents/education/custom-resource/edit-course-dialog.vue
+1
-1
opinionDialog.vue
src/components/opinionDialog.vue
+1
-1
baseApi.js
src/utils/base/baseApi.js
+43
-0
index.js
src/utils/shop/index.js
+18
-0
report-download.vue
src/views/education/report-download.vue
+1
-1
set-time-node.vue
src/views/followup/plan-manage/dialog/set-time-node.vue
+1
-1
no-enough.vue
src/views/followup/reservation-manage/dialog/no-enough.vue
+1
-1
create-good.vue
src/views/goods/create-good.vue
+59
-13
forms.js
src/views/goods/forms.js
+37
-36
goods-manage.vue
src/views/goods/goods-manage.vue
+6
-4
rules.js
src/views/goods/rules.js
+3
-0
header.vue
src/views/layout/header.vue
+1
-1
item-data-all.vue
src/views/learning/item-data-all.vue
+29
-9
create-shop.vue
src/views/shop/create-shop.vue
+901
-400
shop-list.vue
src/views/shop/shop-list.vue
+2
-1
未找到文件。
package-lock.json
浏览文件 @
29c7c0ec
因为 它太大了无法显示 源差异 。您可以改为
查看blob
。
src/components/education/custom-resource/edit-course-dialog.vue
浏览文件 @
29c7c0ec
...
@@ -322,7 +322,7 @@
...
@@ -322,7 +322,7 @@
<div
v-show=
"step == 2"
class=
"course-content-step2"
>
<div
v-show=
"step == 2"
class=
"course-content-step2"
>
<img
class=
"success-img"
src=
"../../../assets/image/phrase3/icon-audit-success.png"
/>
<img
class=
"success-img"
src=
"../../../assets/image/phrase3/icon-audit-success.png"
/>
<span
class=
"tips-1"
>
您上传的课程已成功提交,预计在3-5个工作日内完成审核
</span>
<span
class=
"tips-1"
>
您上传的课程已成功提交,预计在3-5个工作日内完成审核
</span>
<span
class=
"tips-2"
>
审核通过后,您才可以选择课程完成项目配置。如有任何疑问可联系云鹊医400-
920-8877
</span>
<span
class=
"tips-2"
>
审核通过后,您才可以选择课程完成项目配置。如有任何疑问可联系云鹊医400-
006-5252
</span>
<el-button
class=
"back-btn"
type=
"primary"
icon=
"el-icon-back"
@
click=
"backToOrgCourse"
>
返回机构课程
</el-button>
<el-button
class=
"back-btn"
type=
"primary"
icon=
"el-icon-back"
@
click=
"backToOrgCourse"
>
返回机构课程
</el-button>
</div>
</div>
<div
v-show=
"step == 1"
slot=
"footer"
class=
"dialog-footer"
>
<div
v-show=
"step == 1"
slot=
"footer"
class=
"dialog-footer"
>
...
...
src/components/opinionDialog.vue
浏览文件 @
29c7c0ec
...
@@ -43,7 +43,7 @@
...
@@ -43,7 +43,7 @@
<div
slot=
"footer"
class=
"dialog-footer bottom-msg"
>
<div
slot=
"footer"
class=
"dialog-footer bottom-msg"
>
<div
class=
"disblock"
>
<div
class=
"disblock"
>
<h1>
客服电话:400-
920-8877
工作日:9:00~18:00
</h1>
<h1>
客服电话:400-
006-5252
工作日:9:00~18:00
</h1>
</div>
</div>
<div
class=
"disblock"
>
<div
class=
"disblock"
>
<img
src=
"https://file.yunqueyi.com/File/static/qrcode_for_yunqueyi.jpg"
alt=
""
>
<img
src=
"https://file.yunqueyi.com/File/static/qrcode_for_yunqueyi.jpg"
alt=
""
>
...
...
src/utils/base/baseApi.js
0 → 100644
浏览文件 @
29c7c0ec
import
fetch
from
"../fetch"
;
import
{
getBaseUrl
}
from
"@/utils/index"
;
let
headers
=
{
"Content-Type"
:
"application/json;charset=UTF-8"
,
token
:
localStorage
.
getItem
(
"storageToken"
),
};
/*获取省份*/
export
const
getProvinces
=
()
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`/basic-data/position/provinces`
),
method
:
"get"
,
});
};
// /*获取市*/
export
const
getCities
=
(
params
)
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`/basic-data/position/cities`
),
method
:
"get"
,
params
:
params
,
});
};
// /*获取区*/
export
const
getCounties
=
(
params
)
=>
{
return
fetch
({
url
:
getBaseUrl
(
`/basic-data/position/counties`
),
method
:
"get"
,
params
:
params
,
});
};
// /*获取乡镇*/
export
const
getTowns
=
(
params
)
=>
{
return
fetch
({
url
:
getBaseUrl
(
`/basic-data/position/towns`
),
method
:
"get"
,
params
:
params
,
});
};
src/utils/shop/index.js
浏览文件 @
29c7c0ec
...
@@ -137,3 +137,21 @@ export const getRefundDesc = (aid) => {
...
@@ -137,3 +137,21 @@ export const getRefundDesc = (aid) => {
description
:
'退款说明'
,
description
:
'退款说明'
,
})
})
};
};
export
const
getLgCompanyList
=
()
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`/basic-data/constants/app/no-chars/P307`
),
method
:
"get"
,
description
:
"获取物流公司"
,
});
};
export
const
getStoreAdressRepot
=
(
storeId
)
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`store/query/
${
storeId
}
/repot`
),
method
:
"get"
,
description
:
"获取店铺退货地址信息"
,
});
};
src/views/education/report-download.vue
浏览文件 @
29c7c0ec
...
@@ -66,7 +66,7 @@ export default {
...
@@ -66,7 +66,7 @@ export default {
if
(
res
.
data
==
1
)
{
if
(
res
.
data
==
1
)
{
vm
.
$message
.
success
(
'下载成功,请移至“下载报告”页面的“导出列表”中查看'
);
vm
.
$message
.
success
(
'下载成功,请移至“下载报告”页面的“导出列表”中查看'
);
}
else
{
}
else
{
vm
.
$message
.
error
(
'下载失败,请联系管理员或拨打咨询电话:400-
920-8877
'
);
vm
.
$message
.
error
(
'下载失败,请联系管理员或拨打咨询电话:400-
006-5252
'
);
}
}
}
}
});
});
...
...
src/views/followup/plan-manage/dialog/set-time-node.vue
浏览文件 @
29c7c0ec
...
@@ -103,7 +103,7 @@
...
@@ -103,7 +103,7 @@
</el-form-item>
</el-form-item>
<div
class=
"tips-contnt"
v-if=
"itemTimeForm.hasSelected"
>
<div
class=
"tips-contnt"
v-if=
"itemTimeForm.hasSelected"
>
<p
class=
"yellow-font"
>
当前计划中共
{{
totalNumber
}}
位居民(微信:
{{
wechatPatientNum
}}
位,短信:
{{
messagePatientNum
}}
位),本次定时推送任务在发送当日预计需要
{{
messagePatientNum
}}
条短信额度(微信推送不消耗额度,建议您让居民关注云鹊健康微信公众号),务必提前确保短信额度的充足。
</p>
<p
class=
"yellow-font"
>
当前计划中共
{{
totalNumber
}}
位居民(微信:
{{
wechatPatientNum
}}
位,短信:
{{
messagePatientNum
}}
位),本次定时推送任务在发送当日预计需要
{{
messagePatientNum
}}
条短信额度(微信推送不消耗额度,建议您让居民关注云鹊健康微信公众号),务必提前确保短信额度的充足。
</p>
<p>
需要更多额度,请前往「云鹊医App-个人中心-啾啾币中心」兑换短信额度后再进行预约,您也可以联系云鹊医客服购买短信额度,客服电话:400-
920-8877
</p>
<p>
需要更多额度,请前往「云鹊医App-个人中心-啾啾币中心」兑换短信额度后再进行预约,您也可以联系云鹊医客服购买短信额度,客服电话:400-
006-5252
</p>
</div>
</div>
<el-form-item
label=
"履约登记表"
>
<el-form-item
label=
"履约登记表"
>
<el-select
<el-select
...
...
src/views/followup/reservation-manage/dialog/no-enough.vue
浏览文件 @
29c7c0ec
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
:before-close=
"closeTipsDialog"
>
:before-close=
"closeTipsDialog"
>
<div
class=
"no-enough-content"
>
<div
class=
"no-enough-content"
>
<h3>
余额不足提醒
</h3>
<h3>
余额不足提醒
</h3>
<p
class=
"section"
>
您的短信额度已欠费,请前往「云鹊医App-个人中心-啾啾币中心」兑换短信额度后再进行预约
<br/>
您也可以联系云鹊医客服购买短信额度,客服电话:400-
920-8877
</p>
<p
class=
"section"
>
您的短信额度已欠费,请前往「云鹊医App-个人中心-啾啾币中心」兑换短信额度后再进行预约
<br/>
您也可以联系云鹊医客服购买短信额度,客服电话:400-
006-5252
</p>
<p
class=
"tip"
>
提示:微信推送不消耗额度,建议您与居民绑定微信,关注云鹊健康微信公众号
</p>
<p
class=
"tip"
>
提示:微信推送不消耗额度,建议您与居民绑定微信,关注云鹊健康微信公众号
</p>
</div>
</div>
<div
slot=
"footer"
class=
"dialog-footer"
>
<div
slot=
"footer"
class=
"dialog-footer"
>
...
...
src/views/goods/create-good.vue
浏览文件 @
29c7c0ec
...
@@ -76,6 +76,7 @@
...
@@ -76,6 +76,7 @@
</div>
</div>
</el-upload>
</el-upload>
<p
class=
"upload-message"
v-if=
"!isgoodsImages"
>
请上传商品头图
</p>
<p
class=
"upload-message"
v-if=
"!isgoodsImages"
>
请上传商品头图
</p>
<!--
<p
class=
"upload-message"
v-if=
"uploadImgMessage1"
>
请上传商品头图
</p>
-->
</el-form-item>
</el-form-item>
<el-form-item
label=
"商品类型"
prop=
"goodsType"
>
<el-form-item
label=
"商品类型"
prop=
"goodsType"
>
<el-select
<el-select
...
@@ -92,7 +93,15 @@
...
@@ -92,7 +93,15 @@
></el-option>
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<!--
<p
class=
"upload-message"
v-if=
"uploadImgMessage1"
>
请上传商品头图
</p>
-->
<el-form-item
label=
"是否支持售后"
prop=
"expressLimitFlag"
v-if=
"storeType
<
3
"
>
<el-radio-group
v-model=
"formData.expressLimitFlag"
:disabled=
"!hasRepoFlag"
>
<el-radio
:label=
"1"
>
是
</el-radio>
<el-radio
:label=
"0"
>
否
</el-radio>
</el-radio-group>
<p
class=
"backTip"
v-if=
"!hasRepoFlag"
@
click=
"goShopDeatil"
>
若需设置商品支持售后,需先至店铺页
<span
class=
"ad-back"
>
设置售后地址
</span></p>
</el-form-item>
</div>
</div>
</el-form>
</el-form>
...
@@ -860,8 +869,8 @@
...
@@ -860,8 +869,8 @@
import
{
openLoading
,
closeLoading
}
from
"../../utils/utils"
;
import
{
openLoading
,
closeLoading
}
from
"../../utils/utils"
;
import
{
doUpload
,
getFilePath
}
from
"../../utils/qiniu-util"
;
import
{
doUpload
,
getFilePath
}
from
"../../utils/qiniu-util"
;
import
{
updateGoods
,
updateStock
,
dosageAll
,
getDeparts
,
getGoodsList
,
getGoodDetails
,
updateGoodsV2
,
getHospitalInfoByStoreId
,
getCheckPackageIdList
,
getTypeCodeList
}
from
'@/utils/goods'
;
import
{
updateGoods
,
updateStock
,
dosageAll
,
getDeparts
,
getGoodsList
,
getGoodDetails
,
updateGoodsV2
,
getHospitalInfoByStoreId
,
getCheckPackageIdList
,
getTypeCodeList
}
from
'@/utils/goods'
;
import
{
getStoreAdressRepot
}
from
"@/utils/shop"
;
import
Cropper
from
'@/components/common/cropper.vue'
import
Cropper
from
'@/components/common/cropper.vue'
import
{
originRules1
,
originRules2
,
originRules
}
from
'./rules'
;
import
{
originRules1
,
originRules2
,
originRules
}
from
'./rules'
;
import
{
originForm1
,
originForm2
,
originForm
}
from
'./forms'
;
import
{
originForm1
,
originForm2
,
originForm
}
from
'./forms'
;
...
@@ -992,17 +1001,19 @@
...
@@ -992,17 +1001,19 @@
limitVisibleFlag
:
false
,
limitVisibleFlag
:
false
,
limit
:{
limit
:{
title
:
"限购条件"
title
:
"限购条件"
}
},
storeType
:
1
,
//1: "供货商",2: "小药房",3: "医生小店"
hasRepoFlag
:
0
//店铺是否有退货地址
}
}
},
},
created
()
{
created
()
{
vm
=
this
;
vm
=
this
;
const
{
id
,
storeId
,
goodsType
,
inputType
,
commissionFlag
}
=
this
.
$route
.
query
;
const
{
id
,
storeId
,
goodsType
,
inputType
,
commissionFlag
,
storeType
}
=
this
.
$route
.
query
;
this
.
goodsType
=
goodsType
;
this
.
goodsType
=
goodsType
;
this
.
storeId
=
storeId
;
this
.
storeId
=
storeId
;
this
.
inputType
=
inputType
||
''
;
this
.
inputType
=
inputType
||
''
;
this
.
commissionFlag
=
commissionFlag
;
this
.
commissionFlag
=
commissionFlag
;
this
.
storeType
=
storeType
;
// this.formData = originForm;
// this.formData = originForm;
// this.formData1 = originForm1;
// this.formData1 = originForm1;
// this.formData2 = originForm2;
// this.formData2 = originForm2;
...
@@ -1011,7 +1022,7 @@
...
@@ -1011,7 +1022,7 @@
this
.
rules2
=
originRules2
;
this
.
rules2
=
originRules2
;
// this.rules2.barCode = originRules.barCode;
// this.rules2.barCode = originRules.barCode;
this
.
jumPathThird
=
'/goods-manage?storeId='
+
storeId
+
'&commissionFlag='
+
this
.
commissionFlag
;
this
.
jumPathThird
=
'/goods-manage?storeId='
+
storeId
+
'&commissionFlag='
+
this
.
commissionFlag
+
'&storeType='
+
this
.
storeType
;
//this.jumPathThird = '/create-good?id=add&storeId=46'
//this.jumPathThird = '/create-good?id=add&storeId=46'
this
.
title
=
id
==
'add'
?
'新增商品'
:
'编辑商品'
;
this
.
title
=
id
==
'add'
?
'新增商品'
:
'编辑商品'
;
this
.
isEdit
=
id
!=
'add'
;
this
.
isEdit
=
id
!=
'add'
;
...
@@ -1034,6 +1045,8 @@
...
@@ -1034,6 +1045,8 @@
console
.
log
(
`getCheckPackageIdList`
,
res
);
console
.
log
(
`getCheckPackageIdList`
,
res
);
this
.
checkPackageIdList
=
res
.
data
;
this
.
checkPackageIdList
=
res
.
data
;
})
})
}
else
{
this
.
getStoreAdress
();
}
}
// debugger;
// debugger;
// 判空
// 判空
...
@@ -1083,12 +1096,13 @@
...
@@ -1083,12 +1096,13 @@
});
});
};
};
const
{
goodsInfo
,
medicalService
,
buyLimitDtoList
}
=
res
.
data
;
const
{
goodsInfo
,
medicalService
,
buyLimitDtoList
,
hasRepoFlag
}
=
res
.
data
;
this
.
formData
=
{...
this
.
formData
,
...
goodsInfo
};
this
.
formData
=
{...
this
.
formData
,
...
goodsInfo
};
this
.
formData2
=
medicalService
;
this
.
formData2
=
medicalService
;
this
.
formData
=
{
...
this
.
formData
,
...
this
.
formData2
};
this
.
formData
=
{
...
this
.
formData
,
...
this
.
formData2
};
this
.
buyLimitDtoList
=
buyLimitDtoList
;
this
.
buyLimitDtoList
=
buyLimitDtoList
;
this
.
hasRepoFlag
=
hasRepoFlag
;
this
.
$set
(
this
.
formData2
,
'suitableArr'
,
this
.
formData
.
suitable
.
split
(
','
));
this
.
$set
(
this
.
formData2
,
'suitableArr'
,
this
.
formData
.
suitable
.
split
(
','
));
this
.
$set
(
this
.
formData
,
'suitableArr'
,
this
.
formData
.
suitable
.
split
(
','
));
this
.
$set
(
this
.
formData
,
'suitableArr'
,
this
.
formData
.
suitable
.
split
(
','
));
this
.
formData
.
optPrice
=
this
.
formData
.
costPrice
/
100
;
this
.
formData
.
optPrice
=
this
.
formData
.
costPrice
/
100
;
...
@@ -1109,6 +1123,7 @@
...
@@ -1109,6 +1123,7 @@
goodsType
:
''
,
goodsType
:
''
,
pageNo
:
1
,
pageNo
:
1
,
pageSize
:
10
,
pageSize
:
10
,
storeId
:
this
.
storeId
});
});
if
(
res
.
code
!=
'000000'
){
if
(
res
.
code
!=
'000000'
){
return
this
.
$message
({
return
this
.
$message
({
...
@@ -1122,9 +1137,10 @@
...
@@ -1122,9 +1137,10 @@
type
:
'error'
type
:
'error'
});
});
}
}
const
{
goodsList
}
=
res
.
data
;
const
{
goodsList
,
hasRepoFlag
}
=
res
.
data
;
this
.
formData1
=
goodsList
[
0
];
this
.
formData1
=
goodsList
[
0
];
this
.
formData
=
goodsList
[
0
];
this
.
formData
=
goodsList
[
0
];
this
.
hasRepoFlag
=
hasRepoFlag
;
this
.
buyLimitDtoList
=
this
.
formData
.
buyLimitDtoList
;
this
.
buyLimitDtoList
=
this
.
formData
.
buyLimitDtoList
;
this
.
formData
.
optPrice
=
this
.
formData
.
costPrice
/
100
;
this
.
formData
.
optPrice
=
this
.
formData
.
costPrice
/
100
;
this
.
fileGoodsList
=
this
.
getImges
(
goodsList
[
0
].
goodsImgList
,
1
);
this
.
fileGoodsList
=
this
.
getImges
(
goodsList
[
0
].
goodsImgList
,
1
);
...
@@ -1506,7 +1522,8 @@
...
@@ -1506,7 +1522,8 @@
path
:
'/goods-manage'
,
path
:
'/goods-manage'
,
query
:
{
query
:
{
storeId
:
this
.
formData
.
storeId
,
storeId
:
this
.
formData
.
storeId
,
commissionFlag
:
this
.
commissionFlag
commissionFlag
:
this
.
commissionFlag
,
storeType
:
this
.
storeType
}
}
})
})
})
})
...
@@ -1763,7 +1780,6 @@
...
@@ -1763,7 +1780,6 @@
}
}
}
}
},
},
checkCount
(){
checkCount
(){
let
flag
=
true
;
let
flag
=
true
;
if
(
this
.
formData
.
saleType
==
1
&&
this
.
formData
.
mostCount
==
0
){
if
(
this
.
formData
.
saleType
==
1
&&
this
.
formData
.
mostCount
==
0
){
...
@@ -1785,8 +1801,31 @@
...
@@ -1785,8 +1801,31 @@
}
}
return
flag
;
return
flag
;
},
goShopDeatil
()
{
this
.
$router
.
push
({
path
:
`/create-shop`
,
query
:{
storeId
:
this
.
storeId
,
// storeData: JSON.stringify(row),
}
}
})
},
//店铺是否配置售后地址
getStoreAdress
()
{
getStoreAdressRepot
(
this
.
storeId
).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
// repotList 地址数组
if
(
res
.
data
&&
res
.
data
.
repotList
&&
res
.
data
.
repotList
.
length
)
{
this
.
hasRepoFlag
=
true
;
}
else
{
this
.
hasRepoFlag
=
false
;
}
}
else
{
this
.
$message
.
error
(
res
.
message
);
}
})
},
},
},
}
}
</
script
>
</
script
>
...
@@ -1856,7 +1895,14 @@
...
@@ -1856,7 +1895,14 @@
font-size
:
12px
;
font-size
:
12px
;
color
:
#f56c6c
;
color
:
#f56c6c
;
}
}
.backTip
{
font-size
:
12px
;
color
:
red
;
cursor
:
pointer
;
}
.ad-back
{
color
:
#449284
;
}
.img-delete
{
.img-delete
{
position
:
absolute
;
position
:
absolute
;
left
:
0px
;
left
:
0px
;
...
...
src/views/goods/forms.js
浏览文件 @
29c7c0ec
const
form1
=
{
const
form1
=
{
categoryIdLevel2
:
''
,
categoryIdLevel2
:
""
,
categoryIdLevel3
:
''
,
categoryIdLevel3
:
""
,
categoryIdLevel4
:
''
,
categoryIdLevel4
:
""
,
categoryIdLevel5
:
''
,
categoryIdLevel5
:
""
,
medicCommonName
:
''
,
medicCommonName
:
""
,
medicGoodsName
:
''
,
medicGoodsName
:
""
,
size
:
''
,
size
:
""
,
dosageId
:
null
,
dosageId
:
null
,
usage
:
''
,
usage
:
""
,
otc1
:
'1'
,
otc1
:
"1"
,
approvalNumber
:
''
,
approvalNumber
:
""
,
manufacturer
:
''
,
manufacturer
:
""
,
department
:
''
,
department
:
""
,
expiredTime
:
''
,
expiredTime
:
""
,
specification_url
:
''
,
specification_url
:
""
,
treatDisease
:
''
,
treatDisease
:
""
,
barCode
:
''
,
barCode
:
""
,
modelNo
:
''
,
// 型号
modelNo
:
""
,
// 型号
standardNo
:
''
,
// 执行标准号
standardNo
:
""
,
// 执行标准号
}
}
;
const
form2
=
{
const
form2
=
{
checkPackageId
:
''
,
// 检测登记表,暂无,先隐藏!!!!!!!!!!!
checkPackageId
:
''
,
// 检测登记表,暂无,先隐藏!!!!!!!!!!!
...
@@ -48,24 +48,25 @@ const form = {
...
@@ -48,24 +48,25 @@ const form = {
// specificationImages:[],
// specificationImages:[],
// goodsId: 0, // 新增时传0,更新时必需>0
// goodsId: 0, // 新增时传0,更新时必需>0
id
:
0
,
id
:
0
,
goodsName
:
''
,
goodsName
:
""
,
goodsDescription
:
''
,
goodsDescription
:
""
,
goodsHeaderImages
:[],
goodsHeaderImages
:
[],
goodsType
:
''
,
goodsType
:
""
,
barCode
:
''
,
barCode
:
""
,
costPrice
:
0
,
costPrice
:
0
,
decrStock
:
0
,
//减少库存
decrStock
:
0
,
//减少库存
incrStock
:
''
,
//增加库存
incrStock
:
""
,
//增加库存
storeId
:
''
,
storeId
:
""
,
optPrice
:
''
,
optPrice
:
""
,
goodsStock
:
0
,
goodsStock
:
0
,
stock
:
0
,
stock
:
0
,
externalGoodsCode
:
''
,
externalGoodsCode
:
""
,
leastCount
:
1
,
leastCount
:
1
,
mostCount
:
-
1
,
mostCount
:
-
1
,
incrType
:
1
,
incrType
:
1
,
saleType
:
1
,
saleType
:
1
,
minWhole
:
0
minWhole
:
0
,
expressLimitFlag
:
0
,
//是否支持退货退款
};
};
...
...
src/views/goods/goods-manage.vue
浏览文件 @
29c7c0ec
...
@@ -486,9 +486,10 @@
...
@@ -486,9 +486,10 @@
vm
=
this
;
vm
=
this
;
this
.
getLists
()
this
.
getLists
()
this
.
getLever
()
this
.
getLever
()
const
{
storeId
,
commissionFlag
}
=
this
.
$route
.
query
;
const
{
storeId
,
commissionFlag
,
storeType
}
=
this
.
$route
.
query
;
this
.
searchForm
.
storeId
=
Number
(
storeId
)
||
0
;
this
.
searchForm
.
storeId
=
Number
(
storeId
)
||
0
;
this
.
commissionFlag
=
commissionFlag
;
this
.
commissionFlag
=
commissionFlag
;
this
.
storeType
=
storeType
;
// if(storeId){
// if(storeId){
// this.searchForm.storeId = storeId
// this.searchForm.storeId = storeId
// }
// }
...
@@ -691,12 +692,13 @@
...
@@ -691,12 +692,13 @@
}
}
},
},
edit
(
row
){
edit
(
row
){
const
{
goodsType
}
=
row
;
const
{
goodsType
,
storeType
}
=
row
;
// storeType 1: "供货商",2: "小药房",3: "医生小店"
let
url
=
''
let
url
=
''
if
(
row
==
'add'
){
if
(
row
==
'add'
){
url
=
`/create-good?id=add&storeId=
${
this
.
searchForm
.
storeId
}
&inputType=1&commissionFlag=
${
this
.
commissionFlag
}
`
url
=
`/create-good?id=add&storeId=
${
this
.
searchForm
.
storeId
}
&inputType=1&commissionFlag=
${
this
.
commissionFlag
}
&storeType=
${
this
.
storeType
}
`
}
else
{
}
else
{
url
=
`/create-good?id=
${
row
.
goodsId
}
&storeId=
${
this
.
searchForm
.
storeId
}
&goodsType=
${
goodsType
}
&commissionFlag=
${
this
.
commissionFlag
}
`
url
=
`/create-good?id=
${
row
.
goodsId
}
&storeId=
${
this
.
searchForm
.
storeId
}
&goodsType=
${
goodsType
}
&commissionFlag=
${
this
.
commissionFlag
}
&storeType=
${
storeType
}
`
}
}
// this.$store.dispatch('goodsManage/changeGoodsInfo', {...row});
// this.$store.dispatch('goodsManage/changeGoodsInfo', {...row});
this
.
$router
.
push
({
this
.
$router
.
push
({
...
...
src/views/goods/rules.js
浏览文件 @
29c7c0ec
...
@@ -99,6 +99,9 @@ const rules = {
...
@@ -99,6 +99,9 @@ const rules = {
goodsType:[
goodsType:[
{ required: true, message: "
请选择商品类型
", trigger: "
change
" }
{ required: true, message: "
请选择商品类型
", trigger: "
change
" }
],
],
hcd:[
{ required: true, message: "
请选择是否支持退货退款
", trigger: "
change
" }
],
optPrice: [
optPrice: [
{ required: true, message: "
请输入价格
", trigger: "
blur
" },
{ required: true, message: "
请输入价格
", trigger: "
blur
" },
],
],
...
...
src/views/layout/header.vue
浏览文件 @
29c7c0ec
...
@@ -29,7 +29,7 @@
...
@@ -29,7 +29,7 @@
<el-col
:span=
"15"
class=
"msg-phone"
>
<el-col
:span=
"15"
class=
"msg-phone"
>
<div
class=
"grid-content bg-purple-light"
style=
"cursor: default;"
>
<div
class=
"grid-content bg-purple-light"
style=
"cursor: default;"
>
<i
class=
"el-icon-phone"
style=
"cursor: default;"
></i>
<i
class=
"el-icon-phone"
style=
"cursor: default;"
></i>
<h1
style=
"cursor: default;"
>
400-
920-8877
</h1>
<h1
style=
"cursor: default;"
>
400-
006-5252
</h1>
</div>
</div>
</el-col>
</el-col>
</el-row>
</el-row>
...
...
src/views/learning/item-data-all.vue
浏览文件 @
29c7c0ec
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
<div
v-if=
"dataType == 0"
class=
"data-chart"
>
<div
v-if=
"dataType == 0"
class=
"data-chart"
>
<div
class=
"box-list"
>
<div
class=
"box-list"
>
<div
class=
"box-min"
>
<div
class=
"box-min"
>
<div
v-for=
"(item , index) in cardData"
:key=
"index"
class=
"box-card"
v-bind:class=
"
{ 'box-last': index ==
2
}">
<div
v-for=
"(item , index) in cardData"
:key=
"index"
class=
"box-card"
v-bind:class=
"
{ 'box-last': index ==
3
}">
<el-tooltip
v-if=
"index == 2"
class=
"item-tool"
placement=
"bottom-end"
effect=
"light"
>
<el-tooltip
v-if=
"index == 2"
class=
"item-tool"
placement=
"bottom-end"
effect=
"light"
>
<div
slot=
"content"
>
<div
slot=
"content"
>
<p
v-for=
"text in item.content"
>
{{
text
}}
</p>
<p
v-for=
"text in item.content"
>
{{
text
}}
</p>
...
@@ -166,7 +166,7 @@
...
@@ -166,7 +166,7 @@
<div
v-if=
"dataType == 1"
class=
"data-table"
>
<div
v-if=
"dataType == 1"
class=
"data-table"
>
<div
class=
"box-list"
>
<div
class=
"box-list"
>
<div
class=
"box-min-2"
>
<div
class=
"box-min-2"
>
<div
v-for=
"(item , index) in cardData"
:key=
"index"
class=
"box-card box-card2"
v-bind:class=
"{ 'box-last': index ==
1
}"
>
<div
v-for=
"(item , index) in cardData"
:key=
"index"
class=
"box-card box-card2"
v-bind:class=
"{ 'box-last': index ==
2
}"
>
<el-tooltip
v-if=
"index == 1"
class=
"item-tool"
placement=
"bottom-end"
effect=
"light"
>
<el-tooltip
v-if=
"index == 1"
class=
"item-tool"
placement=
"bottom-end"
effect=
"light"
>
<div
slot=
"content"
>
<div
slot=
"content"
>
<p
v-for=
"text in item.content"
>
{{ text }}
</p>
<p
v-for=
"text in item.content"
>
{{ text }}
</p>
...
@@ -791,6 +791,17 @@ export default {
...
@@ -791,6 +791,17 @@ export default {
content
:
[
content
:
[
"获证率:已获证人数/应参与人数*100%"
,
"获证率:已获证人数/应参与人数*100%"
,
]
]
},
{
value
:
"0%"
,
title
:
" 参与完成率"
,
hasKey
:
"已完成人数 "
,
hasNum
:
"0"
,
shouldKey
:
"已参与人数"
,
shouldNum
:
"0"
,
content
:
[
"参与完成率:已完成人数/已参与人数*100%"
,
]
}
}
];
];
if
(
data
==
null
)
{
if
(
data
==
null
)
{
...
@@ -802,11 +813,11 @@ export default {
...
@@ -802,11 +813,11 @@ export default {
}
}
return
;
return
;
}
}
cardData
[
2
].
title
=
vm
.
certFlag
==
0
?
'完成率'
:
'获证率'
;
cardData
[
2
].
title
=
vm
.
certFlag
==
0
?
'
项目
完成率'
:
'获证率'
;
cardData
[
2
].
hasKey
=
vm
.
certFlag
==
0
?
'已完成人数'
:
'已获证人数'
;
cardData
[
2
].
hasKey
=
vm
.
certFlag
==
0
?
'已完成人数'
:
'已获证人数'
;
if
(
vm
.
certFlag
==
0
)
{
if
(
vm
.
certFlag
==
0
)
{
cardData
[
2
].
content
=
[
cardData
[
2
].
content
=
[
"完成率:已完成人数/应参与人数*100%"
,
"
项目
完成率:已完成人数/应参与人数*100%"
,
]
]
}
else
{
}
else
{
cardData
[
2
].
content
=
[
cardData
[
2
].
content
=
[
...
@@ -821,15 +832,23 @@ export default {
...
@@ -821,15 +832,23 @@ export default {
cardData
[
2
].
value
=
parseFloat
((
data
.
certificateRate
*
100
).
toFixed
(
1
))
+
'%'
;
cardData
[
2
].
value
=
parseFloat
((
data
.
certificateRate
*
100
).
toFixed
(
1
))
+
'%'
;
cardData
[
2
].
hasNum
=
data
.
finishCount
;
cardData
[
2
].
hasNum
=
data
.
finishCount
;
cardData
[
2
].
shouldNum
=
data
.
doctorCount
;
cardData
[
2
].
shouldNum
=
data
.
doctorCount
;
const
p
=
data
.
doctorCount
?
data
.
finishCount
/
data
.
doctorCount
:
0
;
cardData
[
3
].
value
=
parseFloat
((
p
*
100
).
toFixed
(
1
))
+
'%'
;
cardData
[
3
].
hasNum
=
data
.
finishCount
;
cardData
[
3
].
shouldNum
=
data
.
doctorCount
;
if
(
vm
.
dataType
==
0
)
{
if
(
vm
.
dataType
==
0
)
{
cardData
[
0
].
value
=
parseFloat
((
data
.
hospitalRate
*
100
).
toFixed
(
1
))
+
'%'
;
cardData
[
0
].
value
=
parseFloat
((
data
.
hospitalRate
*
100
).
toFixed
(
1
))
+
'%'
;
cardData
[
0
].
hasNum
=
data
.
hospitalJ
oinCount
;
cardData
[
0
].
hasNum
=
data
.
j
oinCount
;
cardData
[
0
].
shouldNum
=
data
.
hospital
Count
;
cardData
[
0
].
shouldNum
=
data
.
finish
Count
;
vm
.
cardData
=
cardData
;
vm
.
cardData
=
cardData
;
}
else
if
(
vm
.
dataType
==
1
)
{
}
else
if
(
vm
.
dataType
==
1
)
{
vm
.
cardData
=
cardData
.
slice
(
1
);
vm
.
cardData
=
cardData
.
slice
(
1
);
}
}
console
.
log
(
'---cardData'
,
vm
.
dataType
,
vm
.
cardData
)
},
},
updateResize
()
{
updateResize
()
{
// setTimeout(function() {
// setTimeout(function() {
...
@@ -1156,6 +1175,7 @@ export default {
...
@@ -1156,6 +1175,7 @@ export default {
.box-min
{
.box-min
{
height
:
106px
;
height
:
106px
;
min-width
:
1050px
;
min-width
:
1050px
;
overflow-x
:
scroll
;
}
}
.box-min-2
{
.box-min-2
{
height
:
106px
;
height
:
106px
;
...
@@ -1165,7 +1185,7 @@ export default {
...
@@ -1165,7 +1185,7 @@ export default {
position
:
relative
;
position
:
relative
;
background-color
:
#F1F7F6
;
background-color
:
#F1F7F6
;
color
:
#449284
;
color
:
#449284
;
width
:
32
%
;
width
:
23
%
;
margin-right
:
2%
;
margin-right
:
2%
;
height
:
106px
;
height
:
106px
;
float
:
left
;
float
:
left
;
...
@@ -1420,7 +1440,7 @@ export default {
...
@@ -1420,7 +1440,7 @@ export default {
.el-radio-button
{
.el-radio-button
{
.el-radio-button__inner
{
.el-radio-button__inner
{
border
:
0
solid
#666666
!
important
;
border
:
0
solid
#666666
!
important
;
box-shadow
:
0
;
box-shadow
:
none
;
}
}
}
}
.is-active
{
.is-active
{
...
@@ -1430,7 +1450,7 @@ export default {
...
@@ -1430,7 +1450,7 @@ export default {
border-radius
:
10px
10px
0px
0px
;
border-radius
:
10px
10px
0px
0px
;
background
:
#DFDFDF
!
important
;
background
:
#DFDFDF
!
important
;
border
:
0
solid
#666666
!
important
;
border
:
0
solid
#666666
!
important
;
box-shadow
:
0
;
box-shadow
:
none
;
}
}
}
}
}
}
...
...
src/views/shop/create-shop.vue
浏览文件 @
29c7c0ec
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
<div
class=
"create-shop-content screenSet"
id=
"screenSet"
>
<div
class=
"create-shop-content screenSet"
id=
"screenSet"
>
<el-row
class=
"step-content"
>
<el-row
class=
"step-content"
>
<el-col
:span=
"20"
>
<el-col
:span=
"20"
>
<p
class=
"title"
>
新建店铺
</p>
<p
class=
"title"
>
{{
curmbSecond
}}
</p>
</el-col>
</el-col>
<el-col
:span=
"4"
style=
"text-align: right"
>
<el-col
:span=
"4"
style=
"text-align: right"
>
<el-button
<el-button
...
@@ -356,6 +356,7 @@
...
@@ -356,6 +356,7 @@
</el-form-item>
</el-form-item>
</div>
</div>
<div
v-if=
"formData.storeType == 2"
>
<div
v-if=
"formData.storeType == 2"
>
<el-row>
<el-col
:span=
"10"
>
<el-col
:span=
"10"
>
<el-form-item
<el-form-item
label=
"入驻药店名称"
label=
"入驻药店名称"
...
@@ -496,11 +497,9 @@
...
@@ -496,11 +497,9 @@
</div>
</div>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</div>
</div>
</div>
</div>
<div>
<el-col
:span=
"24"
>
<el-form-item
<el-form-item
label=
"医疗资质"
label=
"医疗资质"
prop=
"storeQualityUrl"
prop=
"storeQualityUrl"
...
@@ -512,10 +511,63 @@
...
@@ -512,10 +511,63 @@
style=
"width: 35%"
style=
"width: 35%"
></el-input>
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"仓库地址管理"
prop=
"selectedKey"
class=
"required-label warehouseAdress-wrap"
v-if=
"formData.storeType
<
3
"
>
<p
class=
"warehouseAdress-tip"
>
(该地址用于买家退货时退回地址,请准确填写)
</p>
<el-button
type=
"success"
plain
class=
"warehouseAdress-add"
size=
"small"
@
click=
"createAdress(0)"
>
+新增地址
</el-button>
<el-radio-group
v-model=
"formData.selectedKey"
class=
"warehouseAdress-list"
>
<el-radio
:label=
"addressItem.key"
class=
"warehouseAdress-item"
v-for=
"(addressItem, index) of formData.repotList"
:key=
"index"
>
<span>
默认
</span>
<span
class=
"warehouseAdress-main"
>
<span
class=
"warehouseAdress-msg"
>
{{
addressItem
.
receiver
}}
</span>
<span
class=
"warehouseAdress-msg"
>
{{
addressItem
.
receiverMobile
}}
</span>
<span
class=
"warehouseAdress-msg"
>
{{
setAddress
(
addressItem
)
}}
</span>
</span>
<span
class=
"warehouseAdress-do"
>
<span
@
click
.
prevent=
"createAdress(1,index)"
>
编辑
</span>
|
<span
@
click
.
prevent=
"deleteAdress(index)"
>
删除
</span>
</span>
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"退货支持的物流公司"
class=
"required-label"
v-if=
"formData.storeType
<
3
"
>
<el-radio-group
v-model=
"formData.expressLimitFlag"
@
change=
"changeExpressLimitFlag"
>
<el-radio
:label=
"0"
>
无限制
</el-radio>
<el-radio
:label=
"1"
>
有限制
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"物流公司名称"
prop=
"repotExpressList"
class=
"required-label"
v-if=
"formData.expressLimitFlag && formData.storeType
<
3
"
>
<el-select
v-model=
"formData.repotExpressList"
filterable
clearable
multiple
placeholder=
"选择物流公司"
>
<el-option
v-for=
"item in cpmList"
:key=
"item.value"
:label=
"item.value"
:value=
"item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"退货物流说明"
v-if=
"formData.storeType
<
3
"
>
<el-row>
<el-col
:span=
"10"
>
<el-input
size=
"small"
v-model=
"formData.expressDesc"
placeholder=
"请输入退货物流说明"
maxlength=
"20"
style=
"width: 85%"
></el-input>
<span
class=
"word-num"
>
{{
formData
.
expressDesc
.
replace
(
/
\s
+/g
,
""
).
length
}}
/20
</span>
</el-col>
</el-col>
</div>
</el-row>
<p
class=
"p-tips"
><i
class=
"el-icon-warning-outline"
></i>
该文字会在云鹊医App买家退货处显示
</p>
</el-form-item>
</el-form>
</el-form>
<!-- 图片裁剪弹框 -->
<el-dialog
<el-dialog
class=
"dialog-title-border-old"
class=
"dialog-title-border-old"
title=
"图片裁剪"
title=
"图片裁剪"
...
@@ -534,6 +586,96 @@
...
@@ -534,6 +586,96 @@
/>
/>
</div>
</div>
</el-dialog>
</el-dialog>
<!-- 创建/编辑收货地址弹框 -->
<el-dialog
:title=
"warehouseAdressFormTitle"
:visible
.
sync=
"warehouseAdressFormVisible"
>
<el-form
:model=
"warehouseAdressForm"
:rules=
"warehouseAdressRules"
ref=
"warehouseAdressForm"
>
<el-form-item
label=
"收件人"
label-width=
"70px"
prop=
"receiver"
>
<el-input
v-model=
"warehouseAdressForm.receiver"
autocomplete=
"off"
clearable
class=
"warehouseAdress-input"
placeholder=
"请输入收货人姓名"
></el-input>
</el-form-item>
<el-form-item
label=
"联系方式"
label-width=
"70px"
prop=
"receiverMobile"
>
<el-input
v-model=
"warehouseAdressForm.receiverMobile"
autocomplete=
"off"
clearable
class=
"warehouseAdress-input"
placeholder=
"请输入收货人联系方式"
></el-input>
</el-form-item>
<el-form-item
prop=
"provinceId"
label=
"省"
label-width=
"70px"
>
<el-select
v-model=
"warehouseAdressForm.provinceId"
class=
"warehouseAdress-input"
filterable
clearable
placeholder=
"省"
@
change=
"changeProvince"
>
<el-option
v-for=
"item in provincesList"
:key=
"item.provinceId"
:label=
"item.provinceName"
:value=
"item.provinceId"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
prop=
"cityId"
label=
"市"
label-width=
"70px"
>
<el-select
v-model=
"warehouseAdressForm.cityId"
class=
"warehouseAdress-input"
filterable
clearable
placeholder=
"市"
@
change=
"changeCity"
>
<el-option
v-for=
"item in cityList"
:key=
"item.cityId"
:label=
"item.cityName"
:value=
"item.cityId"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
prop=
"countyId"
label=
"区/县"
label-width=
"70px"
>
<el-select
v-model=
"warehouseAdressForm.countyId"
class=
"warehouseAdress-input"
filterable
clearable
placeholder=
"区/县"
@
change=
"changeCounty"
>
<el-option
v-for=
"item in countyList"
:key=
"item.countyId"
:label=
"item.countyName"
:value=
"item.countyId"
>
</el-option>
</el-select>
</el-form-item>
<!--
<el-form-item
prop=
"townId"
label=
"乡/镇"
label-width=
"70px"
>
-->
<el-form-item
label=
"乡/镇"
label-width=
"70px"
>
<el-select
v-model=
"warehouseAdressForm.townId"
class=
"warehouseAdress-input"
filterable
clearable
placeholder=
"乡/镇"
@
change=
"changeTown"
>
<el-option
v-for=
"item in townList"
:key=
"item.townId"
:label=
"item.townName"
:value=
"item.townId"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"详细地址"
label-width=
"70px"
prop=
"addr"
>
<el-input
v-model=
"warehouseAdressForm.addr"
autocomplete=
"off"
clearable
class=
"warehouseAdress-input"
></el-input>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"warehouseAdressFormSet"
>
确 定
</el-button>
</div>
</el-dialog>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
...
@@ -543,7 +685,8 @@ let vm = null;
...
@@ -543,7 +685,8 @@ let vm = null;
import
{
openLoading
,
closeLoading
}
from
"../../utils/utils"
;
import
{
openLoading
,
closeLoading
}
from
"../../utils/utils"
;
import
{
doUpload
,
getFilePath
}
from
"../../utils/qiniu-util"
;
import
{
doUpload
,
getFilePath
}
from
"../../utils/qiniu-util"
;
import
Cropper
from
"@/components/common/cropper.vue"
;
import
Cropper
from
"@/components/common/cropper.vue"
;
import
{
saveStore
,
queryStore
}
from
"@/utils/shop"
;
import
{
saveStore
,
queryStore
,
getLgCompanyList
,
getStoreAdressRepot
}
from
"@/utils/shop"
;
import
{
getProvinces
,
getCities
,
getCounties
,
getTowns
}
from
'@/utils/base/baseApi'
;
import
{
checkMobile
}
from
"@/utils/patients/checkValid"
;
import
{
checkMobile
}
from
"@/utils/patients/checkValid"
;
export
default
{
export
default
{
components
:
{
components
:
{
...
@@ -609,6 +752,68 @@ export default {
...
@@ -609,6 +752,68 @@ export default {
imgUrlC1: "", //证明图1
imgUrlC1: "", //证明图1
imgUrlC2: "", //证明图2
imgUrlC2: "", //证明图2
imgUrlC3: "", //证明图3
imgUrlC3: "", //证明图3
repotList:[//仓库地址
// {
// addr: "
asdasd
",
// cityId: 130300000000,
// cityName: "
秦皇岛市
",
// countyId: 130306000000,
// countyName: "
抚宁县
",
// key: 0,
// provinceId: 130,
// provinceName: "
河北省
",
// receiver: "
河北省河北省河北省河北省河北省河北省河北省河北省河北省河北省河北省河北省
",
// receiverMobile: "
13889873718
"
// }
],
selectedKey: '', //默认收货地址
expressLimitFlag: 0, //是否限制物流公司
repotExpressList:[], //支持的物流公司
expressDesc: '' //退款说明
},
cpmList: [], //所有的物流公司
warehouseAdressType: 0, // 0为新建地址,1为编辑地址
warehouseAdressIndex: 0, // 编辑的第几条地址
warehouseAdressForm: { //收货地址form
receiver: '',
receiverMobile: '',
provinceId: '',
cityId: '',
countyId: '',
townId: '',
provinceName: '',
cityName: '',
countyName: '',
townName: '',
addr: '',
key: ''
},
warehouseAdressFormVisible: false,
warehouseAdressFormTitle: '添加地址',
provincesList: [],
cityList: [],
countyList: [],
townList: [],
warehouseAdressRules: {
receiver: [
{ required: true, message: "
请输入店铺名称
", trigger: "
blur
" },
{
min: 2,
message: "
收件人名称长度应大于
2
位
",
trigger: "
blur
",
},
],
receiverMobile:[
{ required: true, message: "
请输入联系电话
", trigger: "
blur
" },
{ validator: checkMobile, trigger: ["
change
", "
blur
"] },
],
provinceId: { required: true, message: "
请选择省
", trigger: ["
change
", "
blur
"] },
cityId: { required: true, message: "
请选择市
", trigger: ["
change
", "
blur
"] },
countyId: { required: true, message: "
请选择区
/
县
", trigger: ["
change
", "
blur
"] },
townId: { required: true, message: "
请选择乡
/
镇
", trigger: ["
change
", "
blur
"] },
addr:[
{ required: true, message: "
请输入详细收货地址
", trigger: "
blur
" }
],
},
},
supplierImg1: {
supplierImg1: {
id: null,
id: null,
...
@@ -704,6 +909,12 @@ export default {
...
@@ -704,6 +909,12 @@ export default {
{ required: true, message: "
请输入联系电话
", trigger: "
blur
" },
{ required: true, message: "
请输入联系电话
", trigger: "
blur
" },
{ validator: checkMobile, trigger: ["
change
", "
blur
"] },
{ validator: checkMobile, trigger: ["
change
", "
blur
"] },
],
],
selectedKey: [
{ required: true, message: "
请增加地址并选择默认地址
", trigger: "
change
" },
],
repotExpressList: [
{ required: true, message: "
请选择物流公司名称
", trigger: "
change
" },
],
},
},
imgMouseOver1: false,
imgMouseOver1: false,
uploadImgMessage1: false, //未上传图片,校验提示语
uploadImgMessage1: false, //未上传图片,校验提示语
...
@@ -721,20 +932,29 @@ export default {
...
@@ -721,20 +932,29 @@ export default {
created() {
created() {
vm = this;
vm = this;
this.formData.storeId = this.$route.query.storeId || null;
this.formData.storeId = this.$route.query.storeId || null;
this.storeData = this.$route.query.storeData || null;
// this.storeData = this.$route.query.storeData || null;
this.getProvincesList();
this.getCompanyList();
if (this.formData.storeId) {
if (this.formData.storeId) {
this.curmbSecond = "
编辑店铺
";
this.curmbSecond = "
编辑店铺
";
this.storeData = JSON.parse(this.storeData);
this.isDisabled = true;
this.isDisabled = true;
this.initInfo();
this.initInfo();
this.get
StoreInfo
();
this.get
Detail
();
} else {
} else {
this.curmbSecond = "
新建店铺
";
this.curmbSecond = "
新建店铺
";
this.isDisabled = false;
this.isDisabled = false;
}
}
},
},
methods: {
methods: {
getDetail() {
getStoreAdressRepot(this.formData.storeId).then(res => {
if (res.code == "
000000
") {
Object.assign(this.formData,res.data)
} else {
this.$message.error(res.message);
}
})
},
//回显数据处理
//回显数据处理
getStoreInfo() {
getStoreInfo() {
if (!this.storeData || !this.storeData.tradeStore) return;
if (!this.storeData || !this.storeData.tradeStore) return;
...
@@ -815,9 +1035,13 @@ export default {
...
@@ -815,9 +1035,13 @@ export default {
initInfo() {
initInfo() {
let req = {
let req = {
storeId: this.formData.storeId,
storeId: this.formData.storeId,
pageNo: 1,
pageSize: 10,
};
};
queryStore(req).then((res) => {
queryStore(req).then((res) => {
if (res.code == "
000000
") {
if (res.code == "
000000
") {
this.storeData = res.data.tradeStore[0];
this.getStoreInfo();
} else {
} else {
this.$message.error(res.message);
this.$message.error(res.message);
}
}
...
@@ -853,12 +1077,18 @@ export default {
...
@@ -853,12 +1077,18 @@ export default {
});
});
}
}
},
},
// 返回
// 返回
back() {
back() {
this.$confirm('返回后您填写的信息将不会被保存。', '确认要返回吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'error'
}).then(() => {
this.$router.push({
this.$router.push({
path: "
/
shop
-
list
",
path: "
/
shop
-
list
",
});
});
}).catch(() => {
});
},
},
checkPhone(val) {
checkPhone(val) {
if (!/^1[3456789]
\
d{9}$/.test(val)) {
if (!/^1[3456789]
\
d{9}$/.test(val)) {
...
@@ -1291,6 +1521,220 @@ export default {
...
@@ -1291,6 +1521,220 @@ export default {
}
}
this.formData.adminList.splice(index, 1);
this.formData.adminList.splice(index, 1);
},
},
// 创建或编辑地址 type
// 编辑第几条数据 index
createAdress(type,index) {
this.warehouseAdressType = type;
this.warehouseAdressFormTitle = type ? '编辑地址' : '添加地址';
this.warehouseAdressIndex = type ? index : '';
if (type) {
Object.assign(this.warehouseAdressForm,this.formData.repotList[index]);
this.getCitiesList();
this.getCountiesList();
this.getTownsList();
} else {
this.warehouseAdressForm = {
receiver: '',
receiverMobile: '',
provinceId: '',
cityId: '',
countyId: '',
townId: '',
provinceName: '',
cityName: '',
countyName: '',
townName: '',
addr: '',
key: ''
}
}
this.warehouseAdressFormVisible = true;
},
deleteAdress(index) {
this.$confirm('确定要删除这条地址信息么?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '',
type: 'error'
}).then(() => {
if (this.formData.repotList[index].key == this.formData.selectedKey) {
this.formData.selectedKey = '';
}
this.formData.repotList.splice(index,1)
this.$message({
type: 'success',
message: '删除成功!'
});
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
// 选择省
changeProvince() {
this.warehouseAdressForm.cityId = "";
this.warehouseAdressForm.countyId = "";
this.warehouseAdressForm.townId = "";
this.countyList = [];
this.getCitiesList();
this.selectGet(this.warehouseAdressForm.provinceId, 'provinceId', 'provinceName',this.provincesList);
},
// 选择市
changeCity() {
this.warehouseAdressForm.countyId = "";
this.warehouseAdressForm.townId = "";
this.getCountiesList();
this.selectGet(this.warehouseAdressForm.cityId, 'cityId', 'cityName',this.cityList);
},
// 选择区
changeCounty() {
this.warehouseAdressForm.townId = "";
this.getTownsList();
this.selectGet(this.warehouseAdressForm.countyId, 'countyId', 'countyName',this.countyList);
},
// 选择乡镇
changeTown() {
this.selectGet(this.warehouseAdressForm.townId, 'townId', 'townName',this.townList);
},
//获取省列表
getProvincesList() {
getProvinces()
.then((res) => {
if (res.code == "
000000
") {
this.provincesList = res.data.provinceList;
}
})
.catch({});
},
//获取市列表
getCitiesList() {
let params = {
provinceId: this.warehouseAdressForm.provinceId,
};
getCities(params)
.then((res) => {
if (res.code == "
000000
") {
this.cityList = res.data.cityList;
}
})
.catch({});
},
//获取区列表
getCountiesList() {
let params = {
cityId: this.warehouseAdressForm.cityId,
};
getCounties(params)
.then((res) => {
if (res.code == "
000000
") {
this.countyList = res.data.countyList;
}
})
.catch({});
},
//获取镇列表
getTownsList() {
let params = {
countyId: this.warehouseAdressForm.countyId
};
getTowns(params)
.then((res) => {
if (res.code == "
000000
") {
this.townList = res.data.townList;
}
})
.catch({});
},
/* slelect时,获取省市区对应的名称
* vId:省市区id
* cId: id对应的key值名称
* cname: 省市区名称对应的key值
* list: 省市区列表
*/
selectGet(vId,cId,cname, list){
if (!cId || !cname) return;
let obj = {};
obj = list.find((item)=>{//这里的userList就是上面遍历的数据源
return item[cId] === vId;//筛选出匹配数据
});
this.warehouseAdressForm[cname] = obj[cname];
},
// 确认地址
warehouseAdressFormSet() {
const {warehouseAdressForm, warehouseAdressIndex, warehouseAdressFormTitle, warehouseAdressType} = this;
const { repotList } = this.formData;
this.$refs['warehouseAdressForm'].validate((valid) => {
if (valid) {
if (warehouseAdressType) {
repotList[warehouseAdressIndex] = JSON.parse(JSON.stringify(warehouseAdressForm));
} else {
warehouseAdressForm.key = repotList.length + Math.round(Math.random()*1000);
repotList.push(JSON.parse(JSON.stringify(warehouseAdressForm)));
}
this.$message({
type: 'success',
message: `${warehouseAdressFormTitle}成功!`
});
this.$refs['warehouseAdressForm'].resetFields();
this.warehouseAdressFormVisible = false;
}
});
},
// 切换退货支持的物流公司类型
changeExpressLimitFlag() {
if(!this.formData.expressLimitFlag) {
this.formData.repotExpressList = [];
}
},
// 格式化地址
setAddress(arg) {
let townName = arg.townName || '';
return arg.provinceName + arg.cityName + arg.countyName + townName + arg.addr;
},
// 获取退货物流
getCompanyList() {
getLgCompanyList()
.then(({ code, data, message }) => {
console.log(data);
if (code == '000000') {
this.cpmList = data;
} else {
this.$toast(message);
}
})
.catch(() => {});
},
// 数据A- Z排序
componentSort() {
if (this.cpmList.length == 0) return;
if (!String.prototype.localeCompare) return null;
var letters = 'ABCDEFGHJKLMNOPQRSTWXYZ'.split('');
var segs = []; // 存放数据
let curr;
letters.filter((items, i) => {
curr = {
key: i,
initial: '', //字母
data: [] //数据
};
this.cpmList.map(v => {
if (v.no_char.toUpperCase() == items) {
curr.data.push(v);
}
});
if (curr.data.length) {
curr.initial = items;
segs.push(curr);
curr.data = curr.data.sort((a, b) => {
return a.no_char.localeCompare(b.no_char);
});
}
});
return Array.from(new Set(segs));
}
},
},
};
};
</
script
>
</
script
>
...
@@ -1331,13 +1775,12 @@ export default {
...
@@ -1331,13 +1775,12 @@ export default {
}
}
}
}
}
}
}
.
required-label
.
el-form-item__label
:
:
before
{
.
required-label
.
el-form-item__label
:
:
before
{
content
:
"*"
;
content
:
"*"
;
color
:
#f56c6c
;
color
:
#f56c6c
;
margin-right
:
4px
;
margin-right
:
4px
;
}
}
.basic-item-icon
{
.basic-item-icon
{
position
:
relative
;
position
:
relative
;
.require
{
.require
{
...
@@ -1354,20 +1797,20 @@ export default {
...
@@ -1354,20 +1797,20 @@ export default {
font-size
:
12px
;
font-size
:
12px
;
color
:
#f56c6c
;
color
:
#f56c6c
;
}
}
}
}
.word-num
{
.word-num
{
font-size
:
12px
;
font-size
:
12px
;
color
:
#999
;
color
:
#999
;
padding-top
:
5px
;
padding-top
:
5px
;
}
}
.line
{
.line
{
margin-left
:
10px
;
margin-left
:
10px
;
width
:
20px
;
width
:
20px
;
}
}
.flex-upload
{
.flex-upload
{
width
:
120px
;
width
:
120px
;
text-align
:
center
;
text-align
:
center
;
.tips
{
.tips
{
...
@@ -1375,8 +1818,8 @@ export default {
...
@@ -1375,8 +1818,8 @@ export default {
color
:
#8c8c8c
;
color
:
#8c8c8c
;
line-height
:
24px
;
line-height
:
24px
;
}
}
}
}
.bg-uploader
{
.bg-uploader
{
position
:
relative
;
position
:
relative
;
/*margin-right: 20px;*/
/*margin-right: 20px;*/
.bg-img
{
.bg-img
{
...
@@ -1413,22 +1856,80 @@ export default {
...
@@ -1413,22 +1856,80 @@ export default {
text-align
:
left
;
text-align
:
left
;
}
}
}
}
}
}
.el-upload__tip
{
.el-upload__tip
{
position
:
absolute
;
position
:
absolute
;
top
:
-6px
;
top
:
-6px
;
left
:
130px
;
left
:
130px
;
}
}
.span-mt-10
{
.span-mt-10
{
.edit-img
{
.edit-img
{
width
:
20px
;
width
:
20px
;
margin-top
:
10px
;
margin-top
:
10px
;
}
}
}
}
.p-tips
{
.p-tips
{
font-size
:
13px
;
font-size
:
13px
;
color
:
#8c8c8c
;
color
:
#8c8c8c
;
line-height
:
26px
;
line-height
:
26px
;
margin-bottom
:
15px
;
margin-bottom
:
15px
;
}
.warehouseAdress-wrap
{
.warehouseAdress-tip
{
font-size
:
13px
;
color
:
#8c8c8c
;
}
.warehouseAdress-add
{
color
:
#449284
;
border-color
:
#449284
;
}
.warehouseAdress-list
{
display
:
block
;
margin-top
:
20px
;
border
:
1px
solid
#DCDFE6
;
padding
:
10px
;
border-radius
:
4px
;
height
:
114px
;
width
:
900px
;
overflow-y
:
scroll
;
&
:
:-
webkit-scrollbar
{
height
:
2px
;
width
:
4px
;
background-color
:
#ddd
;
}
.warehouseAdress-item
{
display
:
flex
;
width
:
100%
;
margin-bottom
:
20px
;
position
:
relative
;
&
:last-of-type
{
margin-bottom
:
0
;
}
}
.el-radio__label
{
display
:
flex
;
flex
:
1
;
}
.warehouseAdress-main
{
flex
:
1
;
padding-right
:
60px
;
}
.warehouseAdress-msg
{
color
:
#606266
;
margin
:
0
10px
;
}
.warehouseAdress-do
{
position
:
sticky
;
right
:
-10px
;
color
:
#449284
;
background
:
#fff
;
padding
:
0
10px
0
10px
;
width
:
100px
;
}
}
}
.warehouseAdress-input
{
width
:
500px
;
}
}
}
</
style
>
</
style
>
src/views/shop/shop-list.vue
浏览文件 @
29c7c0ec
...
@@ -386,7 +386,8 @@
...
@@ -386,7 +386,8 @@
path
:
'/goods-manage'
,
path
:
'/goods-manage'
,
query
:
{
query
:
{
storeId
:
row
.
tradeStore
.
id
,
storeId
:
row
.
tradeStore
.
id
,
commissionFlag
:
row
.
tradeStore
.
commissionFlag
commissionFlag
:
row
.
tradeStore
.
commissionFlag
,
storeType
:
row
.
tradeStore
.
storeType
// 1: "供货商",2: "小药房",3: "医生小店"
}
}
});
});
window
.
open
(
routeData
.
href
,
'_blank'
);
window
.
open
(
routeData
.
href
,
'_blank'
);
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录