提交 468ba648 编写于 作者: yafei.li's avatar yafei.li

Merge branch 'release' into 'master'

Release

See merge request com.pica.cloud.education.frontend/pica.cloud.web-education-admin!339
因为 它太大了无法显示 源差异 。您可以改为 查看blob
......@@ -322,7 +322,7 @@
<div v-show="step == 2" class="course-content-step2">
<img class="success-img" src="../../../assets/image/phrase3/icon-audit-success.png" />
<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>
</div>
<div v-show="step == 1" slot="footer" class="dialog-footer">
......
......@@ -43,7 +43,7 @@
<div slot="footer" class="dialog-footer bottom-msg">
<div class="disblock">
<h1>客服电话:400-920-8877 工作日:9:00~18:00</h1>
<h1>客服电话:400-006-5252 工作日:9:00~18:00</h1>
</div>
<div class="disblock">
<img src="https://file.yunqueyi.com/File/static/qrcode_for_yunqueyi.jpg" alt="">
......
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,
});
};
......@@ -137,3 +137,21 @@ export const getRefundDesc = (aid) => {
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: "获取店铺退货地址信息",
});
};
......@@ -66,7 +66,7 @@ export default {
if(res.data == 1) {
vm.$message.success('下载成功,请移至“下载报告”页面的“导出列表”中查看');
} else {
vm.$message.error('下载失败,请联系管理员或拨打咨询电话:400-920-8877');
vm.$message.error('下载失败,请联系管理员或拨打咨询电话:400-006-5252');
}
}
});
......
......@@ -103,7 +103,7 @@
</el-form-item>
<div class="tips-contnt" v-if="itemTimeForm.hasSelected">
<p class="yellow-font">当前计划中共{{totalNumber}}位居民(微信:{{wechatPatientNum}}位,短信:{{messagePatientNum}}位),本次定时推送任务在发送当日预计需要{{messagePatientNum}}条短信额度(微信推送不消耗额度,建议您让居民关注云鹊健康微信公众号),务必提前确保短信额度的充足。</p>
<p>需要更多额度,请前往「云鹊医App-个人中心-啾啾币中心」兑换短信额度后再进行预约,您也可以联系云鹊医客服购买短信额度,客服电话:400-920-8877</p>
<p>需要更多额度,请前往「云鹊医App-个人中心-啾啾币中心」兑换短信额度后再进行预约,您也可以联系云鹊医客服购买短信额度,客服电话:400-006-5252</p>
</div>
<el-form-item label="履约登记表">
<el-select
......
......@@ -9,7 +9,7 @@
:before-close="closeTipsDialog">
<div class="no-enough-content">
<h3>余额不足提醒</h3>
<p class="section">您的短信额度已欠费,请前往「云鹊医App-个人中心-啾啾币中心」兑换短信额度后再进行预约<br/>您也可以联系云鹊医客服购买短信额度,客服电话:400-920-8877</p>
<p class="section">您的短信额度已欠费,请前往「云鹊医App-个人中心-啾啾币中心」兑换短信额度后再进行预约<br/>您也可以联系云鹊医客服购买短信额度,客服电话:400-006-5252</p>
<p class="tip">提示:微信推送不消耗额度,建议您与居民绑定微信,关注云鹊健康微信公众号</p>
</div>
<div slot="footer" class="dialog-footer">
......
......@@ -76,6 +76,7 @@
</div>
</el-upload>
<p class="upload-message" v-if="!isgoodsImages">请上传商品头图</p>
<!-- <p class="upload-message" v-if="uploadImgMessage1">请上传商品头图</p> -->
</el-form-item>
<el-form-item label="商品类型" prop="goodsType">
<el-select
......@@ -92,7 +93,15 @@
></el-option>
</el-select>
</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>
</el-form>
......@@ -860,8 +869,8 @@
import { openLoading, closeLoading } from "../../utils/utils";
import { doUpload, getFilePath } from "../../utils/qiniu-util";
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 { originRules1, originRules2, originRules } from './rules';
import { originForm1, originForm2, originForm } from './forms';
......@@ -992,17 +1001,19 @@
limitVisibleFlag:false,
limit:{
title:"限购条件"
}
},
storeType: 1, //1: "供货商",2: "小药房",3: "医生小店"
hasRepoFlag: 0 //店铺是否有退货地址
}
},
created() {
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.storeId = storeId;
this.inputType = inputType || '';
this.commissionFlag = commissionFlag;
this.storeType = storeType;
// this.formData = originForm;
// this.formData1 = originForm1;
// this.formData2 = originForm2;
......@@ -1011,7 +1022,7 @@
this.rules2 = originRules2;
// 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.title = id == 'add' ? '新增商品' : '编辑商品';
this.isEdit = id != 'add';
......@@ -1034,6 +1045,8 @@
console.log(`getCheckPackageIdList`, res);
this.checkPackageIdList = res.data;
})
} else {
this.getStoreAdress();
}
// debugger;
// 判空
......@@ -1083,12 +1096,13 @@
});
};
const { goodsInfo, medicalService, buyLimitDtoList} = res.data;
const { goodsInfo, medicalService, buyLimitDtoList, hasRepoFlag} = res.data;
this.formData = {...this.formData, ...goodsInfo};
this.formData2 = medicalService;
this.formData = { ...this.formData, ...this.formData2 };
this.buyLimitDtoList = buyLimitDtoList;
this.hasRepoFlag = hasRepoFlag;
this.$set(this.formData2, 'suitableArr', this.formData.suitable.split(','));
this.$set(this.formData, 'suitableArr', this.formData.suitable.split(','));
this.formData.optPrice = this.formData.costPrice/100;
......@@ -1109,6 +1123,7 @@
goodsType :'',
pageNo:1,
pageSize: 10,
storeId: this.storeId
});
if(res.code != '000000'){
return this.$message({
......@@ -1122,9 +1137,10 @@
type: 'error'
});
}
const {goodsList} = res.data;
const {goodsList, hasRepoFlag } = res.data;
this.formData1 = goodsList[0];
this.formData = goodsList[0];
this.hasRepoFlag = hasRepoFlag;
this.buyLimitDtoList = this.formData.buyLimitDtoList;
this.formData.optPrice = this.formData.costPrice/100;
this.fileGoodsList = this.getImges(goodsList[0].goodsImgList,1);
......@@ -1506,7 +1522,8 @@
path: '/goods-manage',
query: {
storeId: this.formData.storeId,
commissionFlag: this.commissionFlag
commissionFlag: this.commissionFlag,
storeType: this.storeType
}
})
})
......@@ -1763,7 +1780,6 @@
}
}
},
checkCount(){
let flag = true;
if(this.formData.saleType == 1 && this.formData.mostCount == 0){
......@@ -1785,8 +1801,31 @@
}
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>
......@@ -1856,7 +1895,14 @@
font-size: 12px;
color: #f56c6c;
}
.backTip {
font-size: 12px;
color: red;
cursor: pointer;
}
.ad-back {
color: #449284;
}
.img-delete {
position: absolute;
left: 0px;
......
const form1 = {
categoryIdLevel2: '',
categoryIdLevel3: '',
categoryIdLevel4: '',
categoryIdLevel5: '',
medicCommonName:'',
medicGoodsName:'',
size:'',
dosageId:null,
usage:'',
otc1:'1',
approvalNumber:'',
manufacturer:'',
department:'',
expiredTime:'',
specification_url:'',
treatDisease:'',
barCode: '',
modelNo: '', // 型号
standardNo: '', // 执行标准号
}
categoryIdLevel2: "",
categoryIdLevel3: "",
categoryIdLevel4: "",
categoryIdLevel5: "",
medicCommonName: "",
medicGoodsName: "",
size: "",
dosageId: null,
usage: "",
otc1: "1",
approvalNumber: "",
manufacturer: "",
department: "",
expiredTime: "",
specification_url: "",
treatDisease: "",
barCode: "",
modelNo: "", // 型号
standardNo: "", // 执行标准号
};
const form2 = {
checkPackageId: '', // 检测登记表,暂无,先隐藏!!!!!!!!!!!
......@@ -48,24 +48,25 @@ const form = {
// specificationImages:[],
// goodsId: 0, // 新增时传0,更新时必需>0
id: 0,
goodsName:'',
goodsDescription:'',
goodsHeaderImages:[],
goodsType:'',
barCode: '',
costPrice:0,
decrStock:0,//减少库存
incrStock:'',//增加库存
storeId: '',
optPrice:'',
goodsStock:0,
goodsName: "",
goodsDescription: "",
goodsHeaderImages: [],
goodsType: "",
barCode: "",
costPrice: 0,
decrStock: 0, //减少库存
incrStock: "", //增加库存
storeId: "",
optPrice: "",
goodsStock: 0,
stock: 0,
externalGoodsCode: '',
leastCount:1,
externalGoodsCode: "",
leastCount: 1,
mostCount: -1,
incrType:1,
saleType:1,
minWhole:0
incrType: 1,
saleType: 1,
minWhole: 0,
expressLimitFlag: 0, //是否支持退货退款
};
......
......@@ -121,7 +121,10 @@
<span>{{ scope.row.goodsStatus | rangeStatus }}</span>
</template>
</el-table-column>
<el-table-column prop="quantityOfSale" label="销量" width="120" align="center">
<el-table-column prop="quantityOfSale" label="有效销量" width="120" align="center">
</el-table-column>
<el-table-column prop="quantityOfUnPaidSale" label="待付款销量" width="120" align="center">
</el-table-column>
<el-table-column prop="size" label="规格" width="120" align="center">
......@@ -345,16 +348,14 @@
</span>
</el-dialog>
</div>
</template>
<script>
let vm = null;
import { openLoading, closeLoading } from "../../utils/utils";
import BreadCrumb from "@/components/breadcrumb.vue";
import { getRangeList,updateRangeStatus, getGoodsExportUrl, getOrdersExportUrl } from "../../utils/yqrange/yqrangeApi";
import { getGoodsExportUrl } from "../../utils/yqrange/yqrangeApi";
import { getGoodsList,batchOnOff,uploadExcel} from '@/utils/goods';
import { getBaseUrl } from '@/utils/index'
var typeList = [{
categoryName: "短信额度",
id: 1,
......@@ -486,9 +487,10 @@
vm = this;
this.getLists()
this.getLever()
const {storeId,commissionFlag} = this.$route.query;
const {storeId,commissionFlag,storeType} = this.$route.query;
this.searchForm.storeId = Number(storeId) || 0;
this.commissionFlag = commissionFlag;
this.storeType = storeType;
// if(storeId){
// this.searchForm.storeId = storeId
// }
......@@ -691,12 +693,13 @@
}
},
edit(row){
const { goodsType } = row;
const { goodsType, storeType } = row;
// storeType 1: "供货商",2: "小药房",3: "医生小店"
let url = ''
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{
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.$router.push({
......
......@@ -99,6 +99,9 @@ const rules = {
goodsType:[
{ required: true, message: "请选择商品类型", trigger: "change" }
],
hcd:[
{ required: true, message: "请选择是否支持退货退款", trigger: "change" }
],
optPrice: [
{ required: true, message: "请输入价格", trigger: "blur" },
],
......
......@@ -29,7 +29,7 @@
<el-col :span="15" class="msg-phone">
<div class="grid-content bg-purple-light" style="cursor: default;">
<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>
</el-col>
</el-row>
......
......@@ -3,7 +3,7 @@
<div v-if="dataType == 0" class="data-chart">
<div class="box-list">
<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">
<div slot="content">
<p v-for="text in item.content">{{ text }}</p>
......@@ -166,7 +166,7 @@
<div v-if="dataType == 1" class="data-table">
<div class="box-list">
<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">
<div slot="content">
<p v-for="text in item.content">{{ text }}</p>
......@@ -791,6 +791,17 @@ export default {
content: [
"获证率:已获证人数/应参与人数*100%",
]
},
{
value: "0%",
title: " 参与完成率",
hasKey: "已完成人数 ",
hasNum: "0",
shouldKey: "已参与人数",
shouldNum: "0",
content: [
"参与完成率:已完成人数/已参与人数*100%",
]
}
];
if(data == null) {
......@@ -802,11 +813,11 @@ export default {
}
return;
}
cardData[2].title = vm.certFlag == 0 ? '完成率' : '获证率';
cardData[2].title = vm.certFlag == 0 ? '项目完成率' : '获证率';
cardData[2].hasKey = vm.certFlag == 0 ? '已完成人数' : '已获证人数';
if(vm.certFlag == 0) {
cardData[2].content = [
"完成率:已完成人数/应参与人数*100%",
"项目完成率:已完成人数/应参与人数*100%",
]
} else {
cardData[2].content = [
......@@ -821,15 +832,23 @@ export default {
cardData[2].value = parseFloat((data.certificateRate*100).toFixed(1)) + '%';
cardData[2].hasNum = data.finishCount;
cardData[2].shouldNum = data.doctorCount;
const p = data.joinCount ? data.finishCount/data.joinCount : 0;
cardData[3].value = parseFloat((p*100).toFixed(1)) + '%';
cardData[3].hasNum = data.finishCount;
cardData[3].shouldNum = data.joinCount;
if(vm.dataType == 0) {
cardData[0].value = parseFloat((data.hospitalRate*100).toFixed(1)) + '%';
cardData[0].hasNum = data.hospitalJoinCount;
cardData[0].shouldNum = data.hospitalCount;
cardData[0].hasNum = data.joinCount;
cardData[0].shouldNum = data.finishCount;
vm.cardData = cardData;
} else if(vm.dataType == 1) {
vm.cardData = cardData.slice(1);
}
console.log('---cardData', vm.dataType, vm.cardData)
},
updateResize() {
// setTimeout(function() {
......@@ -1156,6 +1175,7 @@ export default {
.box-min {
height: 106px;
min-width: 1050px;
overflow-x: scroll;
}
.box-min-2 {
height: 106px;
......@@ -1165,7 +1185,7 @@ export default {
position: relative;
background-color: #F1F7F6;
color: #449284;
width: 32%;
width: 23%;
margin-right: 2%;
height: 106px;
float: left;
......@@ -1420,7 +1440,7 @@ export default {
.el-radio-button {
.el-radio-button__inner {
border:0 solid #666666 !important;
box-shadow: 0;
box-shadow: none;
}
}
.is-active {
......@@ -1430,7 +1450,7 @@ export default {
border-radius:10px 10px 0px 0px;
background:#DFDFDF !important;
border:0 solid #666666 !important;
box-shadow: 0;
box-shadow: none;
}
}
}
......
......@@ -7,7 +7,7 @@
<div class="create-shop-content screenSet" id="screenSet">
<el-row class="step-content">
<el-col :span="20">
<p class="title">新建店铺</p>
<p class="title">{{curmbSecond}}</p>
</el-col>
<el-col :span="4" style="text-align: right">
<el-button
......@@ -119,283 +119,107 @@
</el-select>
</el-form-item>
<div>
<div v-if="formData.storeType == 1">
<el-row>
<el-col :span="10">
<el-form-item
label="入驻企业名称"
prop="compainName"
class="required-label"
>
<el-input
type="text"
maxlength="50"
size="small"
v-model="formData.compainName"
placeholder="请输入入驻企业名称"
style="width: 85%"
></el-input>
<span class="word-num"
>{{
formData.compainName.replace(/\s+/g, "").length
}}/50</span
>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item
label="联系手机号"
prop="phoneNum"
label-width="95px"
class="required-label"
>
<el-input
type="text"
size="small"
maxlength="11"
:disabled="isDisabled"
v-model="formData.phoneNum"
placeholder="请输入联系电话"
style="width: 85%"
></el-input>
</el-form-item>
</el-col>
</el-row>
<div
class="main-content"
v-for="(item, index) in formData.adminList"
:key="index"
>
<el-row>
<el-col :span="10">
<el-form-item label="管理员姓名" class="required-label">
<el-input
type="text"
maxlength="10"
size="small"
v-model="item.adminName"
placeholder="请输入管理员姓名"
style="width: 85%"
></el-input>
<span class="word-num"
>{{ item.adminName.replace(/\s+/g, "").length }}/10</span
>
</el-form-item>
</el-col>
<el-col :span="1" style="text-align: right">
<img
style="margin-top: 5px"
src="../../assets/image/lianjie_icon.png"
/>
</el-col>
<el-col :span="10">
<el-form-item
label="手机号"
label-width="95px"
class="required-label"
>
<el-input
type="text"
size="small"
maxlength="11"
v-model="item.adminMobile"
placeholder="请输入管理员手机号"
style="width: 85%"
></el-input>
</el-form-item>
</el-col>
<el-col :span="2" class="span-mt-10">
<img
v-if="index < 4 && index == formData.adminList.length - 1"
@click="addItem(index)"
class="edit-img"
src="../../assets/image/plus.png"
/>
<img
v-if="formData.adminList.length > 1"
@click="deleteItem(index)"
class="edit-img"
src="../../assets/image/trash.png"
/>
</el-col>
</el-row>
</div>
<el-form-item label="营业证明">
<p class="p-tips">
若填写的联系人注册不是法定代表人,请上传委托书<br />
仅支持jpg、png图片文件,且文件小于3M<br />
上传的证件图片内,必须是加盖过红色公章和法人章,否则视为无效
</p>
<div style="display: flex">
<div class="flex-upload">
<el-upload
v-model="formData.imgUrlP1"
class="bg-uploader"
action="#"
:show-file-list="false"
:before-upload="beforeUploadProve1"
>
<img
v-if="formData.imgUrlP1"
:src="formData.imgUrlP1"
@mouseover.stop="imgMouseOverP1 = true"
class="bg-img"
/>
<img
v-if="!formData.imgUrlP1"
class="bg-img"
src="../../assets/image/small.png"
/>
<div
class="img-delete add-left-18"
v-show="imgMouseOverP1"
@click.stop="deleteImg('imgUrlP1')"
@mouseout.stop="imgMouseOverP1 = false"
>
<i class="el-icon-delete"></i>
</div>
</el-upload>
<p class="tips">营业执照</p>
</div>
<div class="flex-upload">
<el-upload
v-model="formData.imgUrlP2"
class="bg-uploader"
action="#"
:show-file-list="false"
:before-upload="beforeUploadProve2"
<div v-if="formData.storeType == 1">
<el-row>
<el-col :span="10">
<el-form-item
label="入驻企业名称"
prop="compainName"
class="required-label"
>
<img
v-if="formData.imgUrlP2"
:src="formData.imgUrlP2"
@mouseover.stop="imgMouseOverP2 = true"
class="bg-img"
/>
<img
v-if="!formData.imgUrlP2"
class="bg-img"
src="../../assets/image/small.png"
/>
<div
class="img-delete add-left-18"
v-show="imgMouseOverP2"
@click.stop="deleteImg('imgUrlP2')"
@mouseout.stop="imgMouseOverP2 = false"
<el-input
type="text"
maxlength="50"
size="small"
v-model="formData.compainName"
placeholder="请输入入驻企业名称"
style="width: 85%"
></el-input>
<span class="word-num"
>{{
formData.compainName.replace(/\s+/g, "").length
}}/50</span
>
<i class="el-icon-delete"></i>
</div>
</el-upload>
<p class="tips">药品经营许可证</p>
</div>
<div class="flex-upload">
<el-upload
v-model="formData.imgUrlP3"
class="bg-uploader"
action="#"
:show-file-list="false"
:before-upload="beforeUploadProve3"
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item
label="联系手机号"
prop="phoneNum"
label-width="95px"
class="required-label"
>
<img
v-if="formData.imgUrlP3"
:src="formData.imgUrlP3"
@mouseover.stop="imgMouseOverP3 = true"
class="bg-img"
/>
<img
v-if="!formData.imgUrlP3"
class="bg-img"
src="../../assets/image/small.png"
/>
<div
class="img-delete add-left-18"
v-show="imgMouseOverP3"
@click.stop="deleteImg('imgUrlP3')"
@mouseout.stop="imgMouseOverP3 = false"
>
<i class="el-icon-delete"></i>
</div>
</el-upload>
<p class="tips">委托书</p>
</div>
</div>
</el-form-item>
</div>
<div v-if="formData.storeType == 3">
<el-form-item
label="医生姓名"
prop="docName"
class="required-label"
>
<el-input
:disabled="storeData && storeData.tradeStore.storeType == 3"
type="text"
maxlength="50"
size="small"
v-model="formData.docName"
placeholder="请输入医生姓名"
style="width: 35%"
></el-input>
<span class="word-num"
>{{ formData.docName.replace(/\s+/g, "").length }}/50</span
>
</el-form-item>
<el-form-item
label="联系手机号"
prop="docPhone"
class="required-label"
>
<el-input
type="text"
size="small"
maxlength="11"
v-model="formData.docPhone"
:disabled="isDisabled"
placeholder="请输入联系电话"
style="width: 35%"
></el-input>
</el-form-item>
</div>
<div v-if="formData.storeType == 2">
<el-col :span="10">
<el-form-item
label="入驻药店名称"
prop="drugstoreName"
class="required-label"
>
<el-input
type="text"
maxlength="50"
size="small"
v-model="formData.drugstoreName"
placeholder="请输入入驻药店名称"
style="width: 85%"
></el-input>
<span class="word-num"
>{{
formData.drugstoreName.replace(/\s+/g, "").length
}}/50</span
<el-input
type="text"
size="small"
maxlength="11"
:disabled="isDisabled"
v-model="formData.phoneNum"
placeholder="请输入联系电话"
style="width: 85%"
></el-input>
</el-form-item>
</el-col>
</el-row>
<div
class="main-content"
v-for="(item, index) in formData.adminList"
:key="index"
>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item
label="联系电话"
prop="drugstorePhone"
label-width="95px"
class="required-label"
>
<el-input
type="text"
size="small"
maxlength="11"
v-model="formData.drugstorePhone"
:disabled="isDisabled"
placeholder="请输入联系电话"
style="width: 85%"
></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-row>
<el-col :span="10">
<el-form-item label="管理员姓名" class="required-label">
<el-input
type="text"
maxlength="10"
size="small"
v-model="item.adminName"
placeholder="请输入管理员姓名"
style="width: 85%"
></el-input>
<span class="word-num"
>{{ item.adminName.replace(/\s+/g, "").length }}/10</span
>
</el-form-item>
</el-col>
<el-col :span="1" style="text-align: right">
<img
style="margin-top: 5px"
src="../../assets/image/lianjie_icon.png"
/>
</el-col>
<el-col :span="10">
<el-form-item
label="手机号"
label-width="95px"
class="required-label"
>
<el-input
type="text"
size="small"
maxlength="11"
v-model="item.adminMobile"
placeholder="请输入管理员手机号"
style="width: 85%"
></el-input>
</el-form-item>
</el-col>
<el-col :span="2" class="span-mt-10">
<img
v-if="index < 4 && index == formData.adminList.length - 1"
@click="addItem(index)"
class="edit-img"
src="../../assets/image/plus.png"
/>
<img
v-if="formData.adminList.length > 1"
@click="deleteItem(index)"
class="edit-img"
src="../../assets/image/trash.png"
/>
</el-col>
</el-row>
</div>
<el-form-item label="营业证明">
<p class="p-tips">
若填写的联系人注册不是法定代表人,请上传委托书<br />
......@@ -405,28 +229,28 @@
<div style="display: flex">
<div class="flex-upload">
<el-upload
v-model="formData.imgUrlC1"
v-model="formData.imgUrlP1"
class="bg-uploader"
action="#"
:show-file-list="false"
:before-upload="beforeUploadC1"
:before-upload="beforeUploadProve1"
>
<img
v-if="formData.imgUrlC1"
:src="formData.imgUrlC1"
@mouseover.stop="imgMouseOverC1 = true"
v-if="formData.imgUrlP1"
:src="formData.imgUrlP1"
@mouseover.stop="imgMouseOverP1 = true"
class="bg-img"
/>
<img
v-if="!formData.imgUrlC1"
v-if="!formData.imgUrlP1"
class="bg-img"
src="../../assets/image/small.png"
/>
<div
class="img-delete add-left-18"
v-show="imgMouseOverC1"
@click.stop="deleteImg('imgUrlC1')"
@mouseout.stop="imgMouseOverC1 = false"
v-show="imgMouseOverP1"
@click.stop="deleteImg('imgUrlP1')"
@mouseout.stop="imgMouseOverP1 = false"
>
<i class="el-icon-delete"></i>
</div>
......@@ -435,28 +259,28 @@
</div>
<div class="flex-upload">
<el-upload
v-model="formData.imgUrlC2"
v-model="formData.imgUrlP2"
class="bg-uploader"
action="#"
:show-file-list="false"
:before-upload="beforeUploadC2"
:before-upload="beforeUploadProve2"
>
<img
v-if="formData.imgUrlC2"
:src="formData.imgUrlC2"
@mouseover.stop="imgMouseOverC2 = true"
v-if="formData.imgUrlP2"
:src="formData.imgUrlP2"
@mouseover.stop="imgMouseOverP2 = true"
class="bg-img"
/>
<img
v-if="!formData.imgUrlC2"
v-if="!formData.imgUrlP2"
class="bg-img"
src="../../assets/image/small.png"
/>
<div
class="img-delete add-left-18"
v-show="imgMouseOverC2"
@click.stop="deleteImg('imgUrlC2')"
@mouseout.stop="imgMouseOverC2 = false"
v-show="imgMouseOverP2"
@click.stop="deleteImg('imgUrlP2')"
@mouseout.stop="imgMouseOverP2 = false"
>
<i class="el-icon-delete"></i>
</div>
......@@ -465,28 +289,28 @@
</div>
<div class="flex-upload">
<el-upload
v-model="formData.imgUrlC3"
v-model="formData.imgUrlP3"
class="bg-uploader"
action="#"
:show-file-list="false"
:before-upload="beforeUploadC3"
:before-upload="beforeUploadProve3"
>
<img
v-if="formData.imgUrlC3"
:src="formData.imgUrlC3"
@mouseover.stop="imgMouseOverC3 = true"
v-if="formData.imgUrlP3"
:src="formData.imgUrlP3"
@mouseover.stop="imgMouseOverP3 = true"
class="bg-img"
/>
<img
v-if="!formData.imgUrlC3"
v-if="!formData.imgUrlP3"
class="bg-img"
src="../../assets/image/small.png"
/>
<div
class="img-delete add-left-18"
v-show="imgMouseOverC3"
@click.stop="deleteImg('imgUrlC3')"
@mouseout.stop="imgMouseOverC3 = false"
v-show="imgMouseOverP3"
@click.stop="deleteImg('imgUrlP3')"
@mouseout.stop="imgMouseOverP3 = false"
>
<i class="el-icon-delete"></i>
</div>
......@@ -495,12 +319,187 @@
</div>
</div>
</el-form-item>
</el-col>
</div>
</div>
<div v-if="formData.storeType == 3">
<el-form-item
label="医生姓名"
prop="docName"
class="required-label"
>
<el-input
:disabled="storeData && storeData.tradeStore.storeType == 3"
type="text"
maxlength="50"
size="small"
v-model="formData.docName"
placeholder="请输入医生姓名"
style="width: 35%"
></el-input>
<span class="word-num"
>{{ formData.docName.replace(/\s+/g, "").length }}/50</span
>
</el-form-item>
<el-form-item
label="联系手机号"
prop="docPhone"
class="required-label"
>
<el-input
type="text"
size="small"
maxlength="11"
v-model="formData.docPhone"
:disabled="isDisabled"
placeholder="请输入联系电话"
style="width: 35%"
></el-input>
</el-form-item>
</div>
<div v-if="formData.storeType == 2">
<el-row>
<el-col :span="10">
<el-form-item
label="入驻药店名称"
prop="drugstoreName"
class="required-label"
>
<el-input
type="text"
maxlength="50"
size="small"
v-model="formData.drugstoreName"
placeholder="请输入入驻药店名称"
style="width: 85%"
></el-input>
<span class="word-num"
>{{
formData.drugstoreName.replace(/\s+/g, "").length
}}/50</span
>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item
label="联系电话"
prop="drugstorePhone"
label-width="95px"
class="required-label"
>
<el-input
type="text"
size="small"
maxlength="11"
v-model="formData.drugstorePhone"
:disabled="isDisabled"
placeholder="请输入联系电话"
style="width: 85%"
></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="营业证明">
<p class="p-tips">
若填写的联系人注册不是法定代表人,请上传委托书<br />
仅支持jpg、png图片文件,且文件小于3M<br />
上传的证件图片内,必须是加盖过红色公章和法人章,否则视为无效
</p>
<div style="display: flex">
<div class="flex-upload">
<el-upload
v-model="formData.imgUrlC1"
class="bg-uploader"
action="#"
:show-file-list="false"
:before-upload="beforeUploadC1"
>
<img
v-if="formData.imgUrlC1"
:src="formData.imgUrlC1"
@mouseover.stop="imgMouseOverC1 = true"
class="bg-img"
/>
<img
v-if="!formData.imgUrlC1"
class="bg-img"
src="../../assets/image/small.png"
/>
<div
class="img-delete add-left-18"
v-show="imgMouseOverC1"
@click.stop="deleteImg('imgUrlC1')"
@mouseout.stop="imgMouseOverC1 = false"
>
<i class="el-icon-delete"></i>
</div>
</el-upload>
<p class="tips">营业执照</p>
</div>
<div class="flex-upload">
<el-upload
v-model="formData.imgUrlC2"
class="bg-uploader"
action="#"
:show-file-list="false"
:before-upload="beforeUploadC2"
>
<img
v-if="formData.imgUrlC2"
:src="formData.imgUrlC2"
@mouseover.stop="imgMouseOverC2 = true"
class="bg-img"
/>
<img
v-if="!formData.imgUrlC2"
class="bg-img"
src="../../assets/image/small.png"
/>
<div
class="img-delete add-left-18"
v-show="imgMouseOverC2"
@click.stop="deleteImg('imgUrlC2')"
@mouseout.stop="imgMouseOverC2 = false"
>
<i class="el-icon-delete"></i>
</div>
</el-upload>
<p class="tips">药品经营许可证</p>
</div>
<div class="flex-upload">
<el-upload
v-model="formData.imgUrlC3"
class="bg-uploader"
action="#"
:show-file-list="false"
:before-upload="beforeUploadC3"
>
<img
v-if="formData.imgUrlC3"
:src="formData.imgUrlC3"
@mouseover.stop="imgMouseOverC3 = true"
class="bg-img"
/>
<img
v-if="!formData.imgUrlC3"
class="bg-img"
src="../../assets/image/small.png"
/>
<div
class="img-delete add-left-18"
v-show="imgMouseOverC3"
@click.stop="deleteImg('imgUrlC3')"
@mouseout.stop="imgMouseOverC3 = false"
>
<i class="el-icon-delete"></i>
</div>
</el-upload>
<p class="tips">委托书</p>
</div>
</div>
</el-form-item>
</el-col>
</el-row>
</div>
</div>
<div>
<el-col :span="24">
<el-form-item
label="医疗资质"
prop="storeQualityUrl"
......@@ -512,10 +511,63 @@
style="width: 35%"
></el-input>
</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>
</div>
</el-row>
<p class="p-tips"><i class="el-icon-warning-outline"></i>该文字会在云鹊医App买家退货处显示</p>
</el-form-item>
</el-form>
<!-- 图片裁剪弹框 -->
<el-dialog
class="dialog-title-border-old"
title="图片裁剪"
......@@ -534,6 +586,96 @@
/>
</div>
</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>
</template>
......@@ -543,7 +685,8 @@ let vm = null;
import { openLoading, closeLoading } from "../../utils/utils";
import { doUpload, getFilePath } from "../../utils/qiniu-util";
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";
export default {
components: {
......@@ -609,6 +752,68 @@ export default {
imgUrlC1: "", //证明图1
imgUrlC2: "", //证明图2
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: {
id: null,
......@@ -704,6 +909,12 @@ export default {
{ required: true, message: "请输入联系电话", trigger: "blur" },
{ validator: checkMobile, trigger: ["change", "blur"] },
],
selectedKey: [
{ required: true, message: "请增加地址并选择默认地址", trigger: "change" },
],
repotExpressList: [
{ required: true, message: "请选择物流公司名称", trigger: "change" },
],
},
imgMouseOver1: false,
uploadImgMessage1: false, //未上传图片,校验提示语
......@@ -721,20 +932,29 @@ export default {
created() {
vm = this;
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) {
this.curmbSecond = "编辑店铺";
this.storeData = JSON.parse(this.storeData);
this.isDisabled = true;
this.initInfo();
this.getStoreInfo();
this.getDetail();
} else {
this.curmbSecond = "新建店铺";
this.isDisabled = false;
}
},
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() {
if (!this.storeData || !this.storeData.tradeStore) return;
......@@ -815,9 +1035,13 @@ export default {
initInfo() {
let req = {
storeId: this.formData.storeId,
pageNo: 1,
pageSize: 10,
};
queryStore(req).then((res) => {
if (res.code == "000000") {
this.storeData = res.data.tradeStore[0];
this.getStoreInfo();
} else {
this.$message.error(res.message);
}
......@@ -853,12 +1077,18 @@ export default {
});
}
},
// 返回
back() {
this.$router.push({
path: "/shop-list",
});
this.$confirm('返回后您填写的信息将不会被保存。', '确认要返回吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'error'
}).then(() => {
this.$router.push({
path: "/shop-list",
});
}).catch(() => {
});
},
checkPhone(val) {
if (!/^1[3456789]\d{9}$/.test(val)) {
......@@ -1291,6 +1521,220 @@ export default {
}
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>
......@@ -1331,104 +1775,161 @@ export default {
}
}
}
}
.required-label .el-form-item__label::before {
content: "*";
color: #f56c6c;
margin-right: 4px;
}
.basic-item-icon {
position: relative;
.require {
position: absolute;
left: 67px;
top: 11px;
.required-label .el-form-item__label::before {
content: "*";
color: #f56c6c;
margin-right: 4px;
}
.basic-item-icon {
position: relative;
.upload-message {
position: absolute;
left: 160px;
top: 105px;
.require {
position: absolute;
left: 67px;
top: 11px;
color: #f56c6c;
}
.upload-message {
position: absolute;
left: 160px;
top: 105px;
font-size: 12px;
color: #f56c6c;
}
}
.word-num {
font-size: 12px;
color: #f56c6c;
color: #999;
padding-top: 5px;
}
}
.word-num {
font-size: 12px;
color: #999;
padding-top: 5px;
}
.line {
margin-left: 10px;
width: 20px;
}
.line {
margin-left: 10px;
width: 20px;
}
.flex-upload {
width: 120px;
text-align: center;
.tips {
font-size: 13px;
color: #8c8c8c;
line-height: 24px;
}
}
.bg-uploader {
position: relative;
/*margin-right: 20px;*/
.bg-img {
float: left;
width: 84px;
height: 100px;
}
.img-delete {
position: absolute;
left: 0px;
top: 0px;
width: 84px;
height: 100px;
background: #000;
opacity: 0.7;
z-index: 999;
&.add-left-18 {
left: 18px;
}
i {
color: #fff;
margin-top: 39px;
margin-left: 0px;
}
}
.limit-text {
float: left;
margin-left: 10px;
margin-top: -10px;
.flex-upload {
width: 120px;
text-align: center;
.tips {
p {
font-size: 12px;
color: #999;
text-align: left;
}
}
}
.el-upload__tip {
position: absolute;
top: -6px;
left: 130px;
}
.span-mt-10 {
.edit-img {
width: 20px;
margin-top: 10px;
}
}
.p-tips {
font-size: 13px;
color: #8c8c8c;
line-height: 24px;
line-height: 26px;
margin-bottom: 15px;
}
}
.bg-uploader {
position: relative;
/*margin-right: 20px;*/
.bg-img {
float: left;
width: 84px;
height: 100px;
}
.img-delete {
position: absolute;
left: 0px;
top: 0px;
width: 84px;
height: 100px;
background: #000;
opacity: 0.7;
z-index: 999;
&.add-left-18 {
left: 18px;
.warehouseAdress-wrap {
.warehouseAdress-tip {
font-size: 13px;
color: #8c8c8c;
}
i {
color: #fff;
margin-top: 39px;
margin-left: 0px;
.warehouseAdress-add {
color: #449284;
border-color: #449284;
}
}
.limit-text {
float: left;
margin-left: 10px;
margin-top: -10px;
p {
font-size: 12px;
color: #999;
text-align: left;
.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;
}
}
}
}
.el-upload__tip {
position: absolute;
top: -6px;
left: 130px;
}
.span-mt-10 {
.edit-img {
width: 20px;
margin-top: 10px;
.warehouseAdress-input {
width: 500px;
}
}
.p-tips {
font-size: 13px;
color: #8c8c8c;
line-height: 26px;
margin-bottom: 15px;
}
</style>
......@@ -386,7 +386,8 @@
path: '/goods-manage',
query: {
storeId: row.tradeStore.id,
commissionFlag:row.tradeStore.commissionFlag
commissionFlag:row.tradeStore.commissionFlag,
storeType:row.tradeStore.storeType // 1: "供货商",2: "小药房",3: "医生小店"
}
});
window.open(routeData.href, '_blank');
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册