提交 29c7c0ec 编写于 作者: 张磊's avatar 张磊

add new rate

因为 它太大了无法显示 源差异 。您可以改为 查看blob
...@@ -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">
......
...@@ -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="">
......
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) => { ...@@ -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: "获取店铺退货地址信息",
});
};
...@@ -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');
} }
} }
}); });
......
...@@ -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
......
...@@ -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">
......
...@@ -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;
......
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, //是否支持退货退款
}; };
......
...@@ -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({
......
...@@ -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" },
], ],
......
...@@ -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>
......
...@@ -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.hospitalJoinCount; cardData[0].hasNum = data.joinCount;
cardData[0].shouldNum = data.hospitalCount; cardData[0].shouldNum = data.finishCount;
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;
} }
} }
} }
......
...@@ -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.getStoreInfo(); this.getDetail();
} 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>
...@@ -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 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册