提交 54644d78 编写于 作者: changdi.hao's avatar changdi.hao

Merge branch 'release' into 'master'

Release

See merge request com.pica.cloud.education.frontend/pica.cloud.web-education-admin!295
...@@ -2803,10 +2803,6 @@ ...@@ -2803,10 +2803,6 @@
"loader-utils": "~0.2.5" "loader-utils": "~0.2.5"
} }
}, },
"file-saver": {
"version": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e",
"from": "github:eligrey/FileSaver.js#1.3.8"
},
"filename-regex": { "filename-regex": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
...@@ -2961,7 +2957,8 @@ ...@@ -2961,7 +2957,8 @@
"ansi-regex": { "ansi-regex": {
"version": "2.1.1", "version": "2.1.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"aproba": { "aproba": {
"version": "1.2.0", "version": "1.2.0",
...@@ -2982,12 +2979,14 @@ ...@@ -2982,12 +2979,14 @@
"balanced-match": { "balanced-match": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"brace-expansion": { "brace-expansion": {
"version": "1.1.11", "version": "1.1.11",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"balanced-match": "^1.0.0", "balanced-match": "^1.0.0",
"concat-map": "0.0.1" "concat-map": "0.0.1"
...@@ -3002,17 +3001,20 @@ ...@@ -3002,17 +3001,20 @@
"code-point-at": { "code-point-at": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"console-control-strings": { "console-control-strings": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
...@@ -3129,7 +3131,8 @@ ...@@ -3129,7 +3131,8 @@
"inherits": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"ini": { "ini": {
"version": "1.3.5", "version": "1.3.5",
...@@ -3141,6 +3144,7 @@ ...@@ -3141,6 +3144,7 @@
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"number-is-nan": "^1.0.0" "number-is-nan": "^1.0.0"
} }
...@@ -3155,6 +3159,7 @@ ...@@ -3155,6 +3159,7 @@
"version": "3.0.4", "version": "3.0.4",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"brace-expansion": "^1.1.7" "brace-expansion": "^1.1.7"
} }
...@@ -3162,12 +3167,14 @@ ...@@ -3162,12 +3167,14 @@
"minimist": { "minimist": {
"version": "0.0.8", "version": "0.0.8",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"minipass": { "minipass": {
"version": "2.2.4", "version": "2.2.4",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"safe-buffer": "^5.1.1", "safe-buffer": "^5.1.1",
"yallist": "^3.0.0" "yallist": "^3.0.0"
...@@ -3186,6 +3193,7 @@ ...@@ -3186,6 +3193,7 @@
"version": "0.5.1", "version": "0.5.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"minimist": "0.0.8" "minimist": "0.0.8"
} }
...@@ -3266,7 +3274,8 @@ ...@@ -3266,7 +3274,8 @@
"number-is-nan": { "number-is-nan": {
"version": "1.0.1", "version": "1.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",
...@@ -3278,6 +3287,7 @@ ...@@ -3278,6 +3287,7 @@
"version": "1.4.0", "version": "1.4.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"wrappy": "1" "wrappy": "1"
} }
...@@ -3363,7 +3373,8 @@ ...@@ -3363,7 +3373,8 @@
"safe-buffer": { "safe-buffer": {
"version": "5.1.1", "version": "5.1.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"safer-buffer": { "safer-buffer": {
"version": "2.1.2", "version": "2.1.2",
...@@ -3399,6 +3410,7 @@ ...@@ -3399,6 +3410,7 @@
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"code-point-at": "^1.0.0", "code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0", "is-fullwidth-code-point": "^1.0.0",
...@@ -3418,6 +3430,7 @@ ...@@ -3418,6 +3430,7 @@
"version": "3.0.1", "version": "3.0.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"ansi-regex": "^2.0.0" "ansi-regex": "^2.0.0"
} }
...@@ -3461,12 +3474,14 @@ ...@@ -3461,12 +3474,14 @@
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"yallist": { "yallist": {
"version": "3.0.2", "version": "3.0.2",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
} }
} }
}, },
...@@ -4448,7 +4463,6 @@ ...@@ -4448,7 +4463,6 @@
"integrity": "sha512-J9X76xnncMw+wIqb15HeWfPMqPwYxSpPY8yWPJ7rAZN/ZDzFkjCSZObryCyUe8zbrVRNiuCnIeQteCzMn7GnWw==", "integrity": "sha512-J9X76xnncMw+wIqb15HeWfPMqPwYxSpPY8yWPJ7rAZN/ZDzFkjCSZObryCyUe8zbrVRNiuCnIeQteCzMn7GnWw==",
"requires": { "requires": {
"canvg": "1.5.3", "canvg": "1.5.3",
"file-saver": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e",
"html2canvas": "1.0.0-alpha.12", "html2canvas": "1.0.0-alpha.12",
"omggif": "1.0.7", "omggif": "1.0.7",
"promise-polyfill": "8.1.0", "promise-polyfill": "8.1.0",
...@@ -4468,6 +4482,10 @@ ...@@ -4468,6 +4482,10 @@
"base64-arraybuffer": "^0.1.5" "base64-arraybuffer": "^0.1.5"
} }
}, },
"file-saver": {
"version": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e",
"from": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e"
},
"html2canvas": { "html2canvas": {
"version": "1.0.0-alpha.12", "version": "1.0.0-alpha.12",
"resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-alpha.12.tgz", "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-alpha.12.tgz",
......
// //
<template> <template>
<div class="select-people"> <div class="select-people">
<el-tab-pane label="设定人员" name="fourth"> <el-tab-pane label="设定人员" name="fourth">
......
<template> <template>
<div class="add-diagnose-wrap"> <div class="add-diagnose-wrap">
<div class="fixed-wrap" v-show="showDiagnoseModal"> <div class="fixed-wrap" v-show="showDiagnoseModal">
<div class="fullscreen-bg"></div> <div class="fullscreen-bg"></div>
<div class="add-diagnose-modal" > <div class="add-diagnose-modal" >
...@@ -12,11 +12,11 @@ ...@@ -12,11 +12,11 @@
<div class="main-content"> <div class="main-content">
<div class="left-box left"> <div class="left-box left">
<!-- 搜索列表 有搜索结果时--> <!-- 搜索列表 有搜索结果时-->
<div <div
v-if="searchList && searchList.length > 0" v-if="searchList && searchList.length > 0"
class="search-list-wrap" class="search-list-wrap"
v-infinite-scroll="loadMore" v-infinite-scroll="loadMore"
:infinite-scroll-disabled="busy" :infinite-scroll-disabled="busy"
infinite-scroll-distance="5" infinite-scroll-distance="5"
infinite-scroll-immediate-check="false" infinite-scroll-immediate-check="false"
> >
...@@ -36,13 +36,13 @@ ...@@ -36,13 +36,13 @@
<p v-if="noMore" class="loading">没有更多了...</p> <p v-if="noMore" class="loading">没有更多了...</p>
</ul> </ul>
</div> </div>
<!-- 常用诊断 --> <!-- 常用诊断 -->
<div v-if="!(searchList && searchList.length > 0)" class="common-diagnose"> <div v-if="!(searchList && searchList.length > 0)" class="common-diagnose">
<p class="title">常用诊断<span class='no-result' v-if="hasNoResult">没有找到相关搜索结果</span></p> <p class="title">常用诊断<span class='no-result' v-if="hasNoResult">没有找到相关搜索结果</span></p>
<ul class="list"> <ul class="list">
<li <li
v-for="item in commonList" v-for="item in commonList"
:class="returnEachCommonLiClass(item)" :class="returnEachCommonLiClass(item)"
@click="handleEachCommonLiClick(item)" @click="handleEachCommonLiClick(item)"
> >
...@@ -88,14 +88,14 @@ ...@@ -88,14 +88,14 @@
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { import {
getCommonDiagnoseList, getCommonDiagnoseList,
goToSearch, goToSearch,
} from '@/utils/patients/patientsapi'; } from '@/utils/patients/patientsapi';
export default { export default {
...@@ -138,7 +138,7 @@ ...@@ -138,7 +138,7 @@
}, },
watch: { watch: {
showDiagnoseModal(val) { showDiagnoseModal(val) {
} }
}, },
methods: { methods: {
...@@ -205,7 +205,6 @@ ...@@ -205,7 +205,6 @@
}, },
// 搜索框中输入文字 时 page=1 pageSize=30 // 搜索框中输入文字 时 page=1 pageSize=30
handleInputSearch() { handleInputSearch() {
// debugger;
clearTimeout(this.searchFlagTimer); clearTimeout(this.searchFlagTimer);
let that = this; let that = this;
that.page = 1; that.page = 1;
...@@ -262,7 +261,7 @@ ...@@ -262,7 +261,7 @@
} }
that.busy = true; that.busy = true;
that.page += 1; that.page += 1;
// console.log('请求第几页数据: ', that.page) // console.log('请求第几页数据: ', that.page)
if(that.page > that.totalPageNum){ if(that.page > that.totalPageNum){
// console.log('没有更多了。。。。。'); // console.log('没有更多了。。。。。');
...@@ -296,7 +295,7 @@ ...@@ -296,7 +295,7 @@
}) })
}, 500) }, 500)
}, },
handleInputSearchBlur(){ handleInputSearchBlur(){
this.searchList = []; this.searchList = [];
}, },
...@@ -340,8 +339,8 @@ ...@@ -340,8 +339,8 @@
} }
return -1; return -1;
}, },
}, },
} }
</script> </script>
...@@ -416,7 +415,7 @@ ...@@ -416,7 +415,7 @@
.common-diagnose{ .common-diagnose{
width: 100%; height: 300px; width: 100%; height: 300px;
.title{ .title{
color: #303133; color: #303133;
font-size: 16px; font-size: 16px;
line-height: 40px; line-height: 40px;
margin-top: 10px; margin-top: 10px;
...@@ -432,7 +431,7 @@ ...@@ -432,7 +431,7 @@
overflow-y: scroll; overflow-y: scroll;
.scroll-bar; .scroll-bar;
padding: 10px; padding: 10px;
border: 1px solid #DCDFE6; border: 1px solid #DCDFE6;
li{ li{
height: 35px; line-height: 35px; padding: 0 15px; height: 35px; line-height: 35px; padding: 0 15px;
background: #fff; background: #fff;
...@@ -461,7 +460,7 @@ ...@@ -461,7 +460,7 @@
.scroll-bar; .scroll-bar;
.search-list{ .search-list{
border-radius: 4px; border-radius: 4px;
width: 100%; width: 100%;
padding: 10px; padding: 10px;
li{ li{
position: relative; position: relative;
...@@ -494,7 +493,7 @@ ...@@ -494,7 +493,7 @@
.code{ .code{
float: left; float: left;
} }
} }
} }
.right{ .right{
...@@ -502,7 +501,7 @@ ...@@ -502,7 +501,7 @@
right: 0; right: 0;
top: 50%; top: 50%;
margin-top: -13px; margin-top: -13px;
// width: 0px; // width: 0px;
// float: left; // float: left;
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
...@@ -515,7 +514,7 @@ ...@@ -515,7 +514,7 @@
.code{ .code{
line-height: 30px; line-height: 30px;
} }
} }
.loading{ .loading{
color: #ccc; color: #ccc;
...@@ -532,7 +531,7 @@ ...@@ -532,7 +531,7 @@
height: 300px; height: 300px;
margin-left: 30px; margin-left: 30px;
.title{ .title{
color: #303133; color: #303133;
font-size: 16px; font-size: 16px;
line-height: 40px; line-height: 40px;
margin-top: 10px; margin-top: 10px;
...@@ -543,7 +542,7 @@ ...@@ -543,7 +542,7 @@
width: 450px; width: 450px;
height: 250px; height: 250px;
padding: 10px; padding: 10px;
border: 1px solid #DCDFE6; border: 1px solid #DCDFE6;
.scroll-bar; .scroll-bar;
.el-tag { .el-tag {
margin: 0 10px 10px 0;; margin: 0 10px 10px 0;;
...@@ -558,14 +557,14 @@ ...@@ -558,14 +557,14 @@
} }
} }
} }
} }
} }
.dialog-footer{ .dialog-footer{
text-align: center; text-align: center;
margin: 20px auto; margin: 20px auto;
} }
} }
.tips-wrap { .tips-wrap {
.know-confirm{ .know-confirm{
......
...@@ -34,6 +34,13 @@ body, div, span, header, footer, nav, section, aside, article, ul, dl, dt, dd, l ...@@ -34,6 +34,13 @@ body, div, span, header, footer, nav, section, aside, article, ul, dl, dt, dd, l
height: 0px; height: 0px;
background-color: #fff; background-color: #fff;
} }
.el-table ::-webkit-scrollbar{
width: 10px;
height: 10px;
background-color: rgb(184, 180, 180);
}
/*定义滚动条轨道 内阴影+圆角*/ /*定义滚动条轨道 内阴影+圆角*/
::-webkit-scrollbar-track ::-webkit-scrollbar-track
...@@ -265,4 +272,4 @@ html,body{ ...@@ -265,4 +272,4 @@ html,body{
height: 24px; height: 24px;
width: 106px; width: 106px;
} }
} }
\ No newline at end of file
...@@ -47,6 +47,17 @@ export const queryOrderList = (params) => { ...@@ -47,6 +47,17 @@ export const queryOrderList = (params) => {
}) })
}; };
export const expressInfo = (params) => {
return fetch({
headers,
url: getBaseUrl(`campaign/distribution/logistics/expressInfo`),
method: 'get',
params: params,
description: '查询订单列表',
})
};
export const updateExpress = (params) => { export const updateExpress = (params) => {
return fetch({ return fetch({
headers, headers,
...@@ -57,6 +68,16 @@ export const updateExpress = (params) => { ...@@ -57,6 +68,16 @@ export const updateExpress = (params) => {
}) })
}; };
export const updateExpressNo = (params) => {
return fetch({
headers,
url: getBaseUrl(`store/orders/admin/${params.orderId}/updateExpressNo`),
method: 'post',
data: params,
description: '更新物流单号',
})
};
export const queryShopAuth = (params) => { export const queryShopAuth = (params) => {
return fetch({ return fetch({
......
...@@ -255,7 +255,6 @@ export const getGoodsExportUrl = (params) => { ...@@ -255,7 +255,6 @@ export const getGoodsExportUrl = (params) => {
}; };
export const getOrdersExportUrl = (params) => { export const getOrdersExportUrl = (params) => {
debugger
return fetch({ return fetch({
headers, headers,
url: getBaseUrl('/store/orders/admin/export'), url: getBaseUrl('/store/orders/admin/export'),
...@@ -265,6 +264,45 @@ export const getOrdersExportUrl = (params) => { ...@@ -265,6 +264,45 @@ export const getOrdersExportUrl = (params) => {
}) })
}; };
export const uploadExpress = (params) => {
return fetch({
headers,
url: getBaseUrl(`/store/batch/upload/express`),
method: 'POST',
data: params,
description: '批量更新物流操作',
})
};
export const uploadRefund = (params) => {
return fetch({
headers,
url: getBaseUrl(`/store/batch/upload/refund`),
method: 'POST',
data: params,
description: '批量取消退款操作',
})
};
export const getUploadExpressProgress = (id) => {
return fetch({
headers,
url: getBaseUrl(`store/batch/upload/progress/express/${id}`),
method: 'GET',
description: '查询批量更新物流处理进度,id为批次id',
})
};
export const getUploadRefundProgress = (id) => {
return fetch({
headers,
url: getBaseUrl(`store/batch/upload/progress/refund/${id}`),
method: 'GET',
description: '查询批量取消退款处理进度,id为批次id',
})
};
export const getExamAwardList = (params) => { export const getExamAwardList = (params) => {
return fetch({ return fetch({
...@@ -347,3 +385,7 @@ export const delActivity = (params) => { ...@@ -347,3 +385,7 @@ export const delActivity = (params) => {
description: '活动列表', description: '活动列表',
}) })
}; };
...@@ -307,6 +307,7 @@ export default { ...@@ -307,6 +307,7 @@ export default {
setAddVisible: false, setAddVisible: false,
storeId:'', storeId:'',
goodCondition:{ goodCondition:{
id:"",
goodIds:[], goodIds:[],
conditionType:'', conditionType:'',
number:'', number:'',
...@@ -502,6 +503,7 @@ export default { ...@@ -502,6 +503,7 @@ export default {
addGoodsCondition(){ addGoodsCondition(){
vm.remoteMethod(); vm.remoteMethod();
vm.goodCondition = { vm.goodCondition = {
id:"",
goodIds:[], goodIds:[],
conditionType:'', conditionType:'',
number:'', number:'',
...@@ -621,13 +623,15 @@ export default { ...@@ -621,13 +623,15 @@ export default {
}) })
}, },
// 本应分页加载,这个设置pageSize为最大值解决
remoteMethod(val) { remoteMethod(val) {
this.searchForm = { this.searchForm = {
goodsIdList:[], goodsIdList:[],
goodIdStr :val, goodIdStr :val,
goodsType :'', goodsType :'',
pageNo:1, pageNo:1,
pageSize: 10, pageSize: 999,
storeId:this.storeId, storeId:this.storeId,
commissionType: 0 commissionType: 0
}; };
...@@ -704,6 +708,10 @@ export default { ...@@ -704,6 +708,10 @@ export default {
if (!valid) return false; if (!valid) return false;
// vm.goodCondition.goodIds = []; // vm.goodCondition.goodIds = [];
// vm.goodCondition.goodIds = vm.setIdArray(vm.goodCondition.goodIdList); // vm.goodCondition.goodIds = vm.setIdArray(vm.goodCondition.goodIdList);
if(vm.goodCondition.conditionType == 2 && vm.goodCondition.number >= 100000){
this.$message({ type: "warning", message: "包邮金额最大不能超过99999.99!" });
return;
}
if(vm.resultForm.goodConditionReqList.length > 0){ if(vm.resultForm.goodConditionReqList.length > 0){
// this.formData.tabs[0].contents = vm.resultForm.goodConditionReqList.filter(function (item) { // this.formData.tabs[0].contents = vm.resultForm.goodConditionReqList.filter(function (item) {
......
...@@ -647,32 +647,56 @@ ...@@ -647,32 +647,56 @@
<div class="basic-item-icon"> <div class="basic-item-icon">
<div class="part-tit">销售信息</div> <div class="part-tit">销售信息</div>
<div class="inline"> <div class="inline">
<el-form-item label="销售方式" prop="saleType">
<el-radio-group v-model="formData.saleType" size="small">
<el-radio :label="1">零售</el-radio>
<el-radio :label="2" :disabled="commissionFlag == 1">批发</el-radio>
</el-radio-group>
<!-- <el-select-->
<!-- v-model="formData.saleType"-->
<!-- placeholder="请选择销售方式"-->
<!-- size="small"-->
<!-- @change="getSaleType(formData.saleType,2)">-->
<!-- <el-option-->
<!-- v-for="item in saleTypeList"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- ></el-option>-->
<!-- </el-select>-->
</el-form-item>
</div>
<div class="inline" v-if="formData.saleType == 1">
<el-form-item label="零售价" prop="optPrice"> <el-form-item label="零售价" prop="optPrice">
<el-col :span="20"> <el-col :span="20">
<el-input <!-- <el-input-->
@input="$forceUpdate();" <!-- @input="$forceUpdate();"-->
size="small" <!-- size="small"-->
v-model="formData.optPrice" <!-- v-model="formData.optPrice"-->
placeholder="请输入零售价" <!-- placeholder="请输入零售价"-->
<!-- ></el-input>-->
></el-input> <el-input-number class="stock-com" @input="$forceUpdate();" v-model="formData.optPrice" size="small" :precision="2" :min="0.00" :max="99999.99"></el-input-number>
<!-- <span class="word-num">{{(formData.name).replace(/\s+/g,"").length}}/60</span> -->
<!-- <span class="word-num">{{(formData.name).replace(/\s+/g,"").length}}/60</span> -->
</el-col> </el-col>
</el-form-item> </el-form-item>
<!-- <el-form-item label="折扣价" prop="name"> </div>
<div class="inline" v-if="formData.saleType == 2">
<el-form-item label="批发价" prop="optPrice">
<el-col :span="20"> <el-col :span="20">
<el-input <!-- <el-input-->
size="small" <!-- @input="$forceUpdate();"-->
v-model="formData.name" <!-- size="small"-->
placeholder="请输入折扣价" <!-- v-model="formData.optPrice"-->
<!-- placeholder="请输入批发价"></el-input>-->
></el-input> <el-input-number class="stock-com" @input="$forceUpdate();" v-model="formData.optPrice" size="small" :precision="2" :min="0" :max="99999.99"></el-input-number>
</el-col> </el-col>
</el-form-item> --> </el-form-item>
</div> </div>
<div class="inline"> <div class="inline">
<el-form-item label="库存" prop="name" class="required-label"> <el-form-item label="库存" prop="stock" class="required-label">
<el-col :span="20"> <el-col :span="20">
<div class="stock-com"> <div class="stock-com">
<span class="sp sp-l" @click="changeStock(1)" :class="{'opac':formData.stock == 0}"><i class="el-icon-minus"></i></span> <span class="sp sp-l" @click="changeStock(1)" :class="{'opac':formData.stock == 0}"><i class="el-icon-minus"></i></span>
...@@ -692,21 +716,23 @@ ...@@ -692,21 +716,23 @@
</el-form-item> </el-form-item>
</div> </div>
<div class="inline"> <div class="inline" v-if="formData.saleType == 1">
<el-form-item label="最小起购件数" prop="name" class="required-label"> <el-form-item label="最小起购件数" prop="leastCount" class="required-label">
<el-col :span="20"> <el-col :span="20">
<div class="stock-com"> <div class="stock-com" style="width: 500px;display:flex">
<span class="sp sp-l" @click="minusCount(1)"><i class="el-icon-minus"></i></span> <el-input-number class="stock-com" @input="$forceUpdate();" v-model="formData.leastCount" size="small" :precision="0" :min="0" :max="9999"></el-input-number>
<!-- <span class="sp sp-l" @click="minusCount(1)"><i class="el-icon-minus"></i></span>
<span class="sp sp-c">{{formData.leastCount}}</span> <span class="sp sp-c">{{formData.leastCount}}</span>
<span class="sp sp-r" @click="plusCount(1)"><i class="el-icon-plus"></i></span> <span class="sp sp-r" @click="plusCount(1)"><i class="el-icon-plus"></i></span> -->
<span class="word-num" style="margin-left: 10px;">最高9999件哦</span>
</div> </div>
<p class="error-message" v-if="formData.leastCount <= 0">最小起购件数不能为0</p> <p class="error-message" v-if="formData.leastCount <= 0">最小起购件数不能为0</p>
</el-col> </el-col>
</el-form-item> </el-form-item>
</div> </div>
<div class="inline" v-if="formData.leastCount > 1"> <div class="inline" v-if="formData.saleType == 1 && formData.leastCount > 1">
<el-form-item label="递增方式" prop="incrType"> <el-form-item label="递增方式">
<el-col :span="24"> <el-col :span="24">
<el-radio size="mini" v-model="formData.incrType" :label="2">倍数递增</el-radio> <el-radio size="mini" v-model="formData.incrType" :label="2">倍数递增</el-radio>
<el-radio v-model="formData.incrType" :label="1">1件递增</el-radio> <el-radio v-model="formData.incrType" :label="1">1件递增</el-radio>
...@@ -714,14 +740,15 @@ ...@@ -714,14 +740,15 @@
</el-form-item> </el-form-item>
</div> </div>
<div class="inline"> <div class="inline" v-if="formData.saleType == 1">
<el-form-item label="单次购买上限" prop="name" class="required-label"> <el-form-item label="单次购买上限" prop="mostCount" class="required-label">
<el-col :span="20" style="width: 300%;"> <el-col :span="20" style="width: 300%;">
<div class="stock-com" style="width: 500px;"> <div class="stock-com" style="width: 500px;display:flex">
<span class="sp sp-l" @click="minusCount(2)"><i class="el-icon-minus"></i></span> <el-input-number class="stock-com" @input="$forceUpdate();" v-model="formData.mostCount" size="small" :precision="0" :min="-1" :max="9999"></el-input-number>
<!-- <span class="sp sp-l" @click="minusCount(2)"><i class="el-icon-minus"></i></span>
<span class="sp sp-c">{{formData.mostCount}}</span> <span class="sp sp-c">{{formData.mostCount}}</span>
<span class="sp sp-r" @click="plusCount(2)"><i class="el-icon-plus"></i></span> <span class="sp sp-r" @click="plusCount(2)"><i class="el-icon-plus"></i></span> -->
<span class="word-num" style="margin-left: 10px;">数值为-1时,代表单次购买上限已无限制</span> <span class="word-num" style="margin-left: 10px;">数值为-1时,代表单次购买上限已无限制(最高9999件哦)</span>
</div> </div>
<p class="error-message" v-if="formData.mostCount === 0">单次购买上限不能为0</p> <p class="error-message" v-if="formData.mostCount === 0">单次购买上限不能为0</p>
<!-- <p class="error-message" v-if="formData.mostCount <= -1">单次购买上限已无限制</p>--> <!-- <p class="error-message" v-if="formData.mostCount <= -1">单次购买上限已无限制</p>-->
...@@ -730,8 +757,8 @@ ...@@ -730,8 +757,8 @@
</div> </div>
<div class="inline"> <div class="inline" v-if="formData.saleType == 1">
<el-form-item label="第三方商品编码" prop="externalGoodsCode"> <el-form-item label="第三方商品编码">
<el-col :span="20"> <el-col :span="20">
<el-input <el-input
size="small" size="small"
...@@ -741,18 +768,31 @@ ...@@ -741,18 +768,31 @@
</el-col> </el-col>
</el-form-item> </el-form-item>
</div> </div>
</div> <div class="inline" v-if="formData.saleType == 2">
</el-form> <el-form-item label="最小起批" prop="minWhole" class="required-label">
<el-col :span="20">
<div class="stock-com">
<span class="sp sp-l" @click="minusCount(3)"><i class="el-icon-minus"></i></span>
<span class="sp sp-c">{{formData.minWhole}}</span>
<span class="sp sp-r" @click="plusCount(3)"><i class="el-icon-plus"></i></span>
</div>
<p class="error-message" v-if="formData.minWhole <= 0">最小起批不能为0</p>
</el-col>
</el-form-item>
</div>
<el-form </div>
ref="formData" <!-- </el-form>-->
:model="formData"
:rules="rules" <!-- <el-form-->
label-width="150px" <!-- ref="formData"-->
label-suffix=":" <!-- :model="formData"-->
class="basic-form" <!-- :rules="rules"-->
> <!-- label-width="150px"-->
<div class="basic-item-icon"> <!-- label-suffix=":"-->
<!-- class="basic-form"-->
<!-- >-->
<div class="basic-item-icon" v-if="formData.saleType == 1">
<div class="part-tit">限购条件</div> <div class="part-tit">限购条件</div>
<div v-for="(item, index) in buyLimitDtoList" :key="index" > <div v-for="(item, index) in buyLimitDtoList" :key="index" >
<el-form-item label="限制条件"> <el-form-item label="限制条件">
...@@ -895,10 +935,19 @@ ...@@ -895,10 +935,19 @@
label: '年', label: '年',
value: 365, value: 365,
}], }],
saleTypeList: [
{
value: 1,
label: "零售"
},
{
value: 2,
label: "批发"
}],
checkPackageIdList: [{name:'其他',content:0}], checkPackageIdList: [{name:'其他',content:0}],
hospitalTypeList: [{label:'村卫生室',value:1},{label:'乡镇卫生院/中心',value:2}], // 医疗机构类型 hospitalTypeList: [{label:'村卫生室',value:1},{label:'乡镇卫生院/中心',value:2}], // 医疗机构类型
checkTypeList: [{label:'常规检测',value:1}], // 检测类型 checkTypeList: [{label:'常规检测',value:1}], // 检测类型
suitableList: [{label:'儿童',value:'1'},{label:'青年',value:'2'},{label:'中年',value:'4'},{label:'老年',value:'8'}], // 适用人群 suitableList: [{label:'儿童',value:'1'},{label:'青年',value:'2'},{label:'中年',value:'4'},{label:'老年',value:'8'},{label:'40-74岁的结直肠癌高风险人群',value:'10'}], // 适用人群
// 不同类型服务的表单通用字段 // 不同类型服务的表单通用字段
// 不同类型服务的表单通用字段 // 不同类型服务的表单通用字段
...@@ -985,7 +1034,7 @@ ...@@ -985,7 +1034,7 @@
this.checkPackageIdList = res.data; this.checkPackageIdList = res.data;
}) })
} }
debugger; // debugger;
// 判空 // 判空
if (this.formData.leastCount == null || this.formData.leastCount === '') { if (this.formData.leastCount == null || this.formData.leastCount === '') {
this.formData.leastCount = 1; this.formData.leastCount = 1;
...@@ -1186,6 +1235,10 @@ ...@@ -1186,6 +1235,10 @@
this.fileIntrList = this.getImges(imageList,2) this.fileIntrList = this.getImges(imageList,2)
}); });
},
// 销售方式
getSaleType(saleType, type){
}, },
getGoodsTypes(goodsType,type){ getGoodsTypes(goodsType,type){
this.goodsType = goodsType; this.goodsType = goodsType;
...@@ -1329,7 +1382,10 @@ ...@@ -1329,7 +1382,10 @@
}, },
complete() { complete() {
this.formData1.leastCount = this.formData.leastCount;
this.formData1.mostCount = this.formData.mostCount;
let formNameList = ['formData', 'formData1', 'formData2']; let formNameList = ['formData', 'formData1', 'formData2'];
// let formName = "formData"; // let formName = "formData";
if(this.goodsType == 337 ){ if(this.goodsType == 337 ){
formNameList = ['formData', 'formData2']; formNameList = ['formData', 'formData2'];
...@@ -1378,12 +1434,23 @@ ...@@ -1378,12 +1434,23 @@
} }
let isTrue = false; let isTrue = false;
formNameList.map(item=>{ // formNameList.map(item=>{
this.$refs[item].validate((valid) => { // this.$refs[item].validate((valid,object) => {
// isTrue = valid;
// if (!valid) return false;
// });
// });
let item = "";
for(let i = 0; i < formNameList.length; i++){
item = formNameList[i];
this.$refs[item].validate((valid,object) => {
isTrue = valid; isTrue = valid;
if (!valid) return false; if (!valid) return false;
}); });
}); if(!isTrue){
return;
}
}
if(!isTrue){ if(!isTrue){
return false; return false;
...@@ -1592,6 +1659,11 @@ ...@@ -1592,6 +1659,11 @@
this.formData1.mostCount = this.formData.mostCount; this.formData1.mostCount = this.formData.mostCount;
} }
} }
else if(type === 3){
if (this.formData.minWhole >= 2) {
this.formData.minWhole -= 1;
}
}
// if (this.formData.mostCount < this.formData.leastCount) { // if (this.formData.mostCount < this.formData.leastCount) {
// this.formData.mostCount = this.formData.leastCount; // this.formData.mostCount = this.formData.leastCount;
// } // }
...@@ -1604,6 +1676,9 @@ ...@@ -1604,6 +1676,9 @@
this.formData.mostCount += 1; this.formData.mostCount += 1;
this.formData1.mostCount = this.formData.mostCount; this.formData1.mostCount = this.formData.mostCount;
} }
else if(type === 3){
this.formData.minWhole += 1;
}
// if (this.formData.mostCount < this.formData.leastCount) { // if (this.formData.mostCount < this.formData.leastCount) {
// this.formData.mostCount = this.formData.leastCount; // this.formData.mostCount = this.formData.leastCount;
// } // }
...@@ -1675,7 +1750,7 @@ ...@@ -1675,7 +1750,7 @@
checkCount(){ checkCount(){
let flag = true; let flag = true;
if(this.formData.mostCount == 0){ if(this.formData.saleType == 1 && this.formData.mostCount == 0){
flag = false; flag = false;
this.$message({ this.$message({
message: '单次购买上限不能为0', message: '单次购买上限不能为0',
...@@ -1684,7 +1759,7 @@ ...@@ -1684,7 +1759,7 @@
return flag; return flag;
} }
if(this.formData.mostCount != -1 && this.formData.mostCount < this.formData.leastCount){ if(this.formData.saleType == 1 && this.formData.mostCount != -1 && this.formData.mostCount < this.formData.leastCount){
flag = false; flag = false;
this.$message({ this.$message({
message: '单次购买上限不能小于最小起购件数', message: '单次购买上限不能小于最小起购件数',
...@@ -1784,7 +1859,7 @@ ...@@ -1784,7 +1859,7 @@
.word-num { .word-num {
font-size: 12px; font-size: 12px;
color: #999; color: #999;
padding-top: 5px; // padding-top: 5px;
} }
.line { .line {
...@@ -1901,4 +1976,28 @@ ...@@ -1901,4 +1976,28 @@
margin-right: 15px; margin-right: 15px;
position: relative; position: relative;
} }
//.el-input-number__increase {
// right: 1px;
// border-radius: 0 4px 4px 0;
// border-left: 1px solid #449284;
//}
.el-input-number__decrease, .el-input-number__increase {
position: absolute;
z-index: 1;
top: 1px;
width: 40px;
height: auto;
text-align: center;
background: #449284;
color: #606266;
cursor: pointer;
font-size: 13px;
}
.el-icon-plus {
color:#ffffff;
}
.el-icon-minus {
color:#ffffff;
}
</style> </style>
...@@ -63,7 +63,9 @@ const form = { ...@@ -63,7 +63,9 @@ const form = {
externalGoodsCode: '', externalGoodsCode: '',
leastCount:1, leastCount:1,
mostCount: -1, mostCount: -1,
incrType:1 incrType:1,
saleType:1,
minWhole:0
}; };
......
...@@ -65,6 +65,22 @@ ...@@ -65,6 +65,22 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6">
<el-form-item label="销售方式" v-if="commissionFlag == 2">
<el-select
v-model="searchForm.saleType"
placeholder="请选择销售方式"
size="small"
clearable>
<el-option
v-for="item in saleTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6" style="text-align: right"> <el-col :span="6" style="text-align: right">
<el-button type="primary" size="small" @click="searchList">查询</el-button> <el-button type="primary" size="small" @click="searchList">查询</el-button>
<el-button type="default" size="small" @click="resetForm" style="margin-left:0;">重置</el-button> <el-button type="default" size="small" @click="resetForm" style="margin-left:0;">重置</el-button>
...@@ -138,9 +154,10 @@ ...@@ -138,9 +154,10 @@
<span v-if="scope.row.proxyCommissionType == 2">{{scope.row.proxyCommissionPrice | priceNum}}</span> <span v-if="scope.row.proxyCommissionType == 2">{{scope.row.proxyCommissionPrice | priceNum}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="saleTypeStr" label="销售方式" width="170" align="center">
</el-table-column>
<el-table-column prop="saleTime" label="发布时间" width="170" align="center"> <el-table-column prop="saleTime" label="发布时间" width="170" align="center">
</el-table-column> </el-table-column>
<el-table-column label="操作" width="200" align="center" fixed="right"> <el-table-column label="操作" width="200" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.commissionFlag == 2"> <div v-if="scope.row.commissionFlag == 2">
...@@ -377,6 +394,7 @@ ...@@ -377,6 +394,7 @@
pageSize: 10, pageSize: 10,
storeId:0, storeId:0,
commissionType: 0, commissionType: 0,
saleType:0,
proxyCommissionType:0 proxyCommissionType:0
}, },
innerVisible:false, innerVisible:false,
...@@ -405,6 +423,19 @@ ...@@ -405,6 +423,19 @@
value: 2, value: 2,
label: "固定分佣" label: "固定分佣"
}], }],
saleTypeList: [
{
value: 0,
label: "全部"
},
{
value: 1,
label: "零售"
},
{
value: 2,
label: "批发"
}],
typeList: [], typeList: [],
//uploadUrl:getBaseUrl('store/goods/import'), //uploadUrl:getBaseUrl('store/goods/import'),
postData:{}, postData:{},
...@@ -769,6 +800,7 @@ ...@@ -769,6 +800,7 @@
this.searchForm.goodsName = '' this.searchForm.goodsName = ''
this.searchForm.goodsType = '' this.searchForm.goodsType = ''
this.searchForm.commissionType = 0; this.searchForm.commissionType = 0;
this.searchForm.saleType = 0;
this.searchForm.pageNo = 1 this.searchForm.pageNo = 1
this.searchForm.pageSize = 10 this.searchForm.pageSize = 10
...@@ -785,9 +817,9 @@ ...@@ -785,9 +817,9 @@
this.getLists(); this.getLists();
}, },
exportOpt() { exportOpt() {
const { goodsIdList, goodsType, goodsName, storeId } = this.searchForm; const { goodsIdList, goodsType, goodsName, storeId, saleType } = this.searchForm;
getGoodsExportUrl({ goodsIdList, goodsType, goodsName, storeId }).then(res => { getGoodsExportUrl({ goodsIdList, goodsType, goodsName, storeId, saleType }).then(res => {
if (res.code != '000000') { if (res.code != '000000') {
this.$message({ message: res.message, type: 'error' }); this.$message({ message: res.message, type: 'error' });
return; return;
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<div class="trade-status" v-if="showStatus == 2"><img src="../../assets/image/order/order_status2.png"/>已发货</div> <div class="trade-status" v-if="showStatus == 2"><img src="../../assets/image/order/order_status2.png"/>已发货</div>
<div class="trade-status" v-if="showStatus == 3"><img src="../../assets/image/order/order_status3.png"/>待发货</div> <div class="trade-status" v-if="showStatus == 3"><img src="../../assets/image/order/order_status3.png"/>待发货</div>
<div class="trade-status" v-if="showStatus == 4"><img src="../../assets/image/order/order_status4.png"/>等待买家付款</div> <div class="trade-status" v-if="showStatus == 4"><img src="../../assets/image/order/order_status4.png"/>等待买家付款</div>
<div class="trade-status" v-if="showStatus == 5"><img src="../../assets/image/order/order_status5.png"/>交易关闭</div> <div class="trade-status" v-if="showStatus == 5"><img src="../../assets/image/order/order_status5.png"/>退款/关闭</div>
<div class="trade-info"> <div class="trade-info">
<el-card class="left-card"> <el-card class="left-card">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
...@@ -29,6 +29,9 @@ ...@@ -29,6 +29,9 @@
<div v-if="storeType == 1"> <div v-if="storeType == 1">
<p>物流公司:{{orderDetailData.expressName}}</p> <p>物流公司:{{orderDetailData.expressName}}</p>
<p>快递单号:{{orderDetailData.expressNo}}</p> <p>快递单号:{{orderDetailData.expressNo}}</p>
<el-button type="text" @click="copyTxt">复制</el-button>
<el-button type="text" @click="updateOrderNo">修改物流单号</el-button>
<input type="text" id="copyInput" class="hidden-input" />
</div> </div>
<div v-if="storeType == 2"> <div v-if="storeType == 2">
<p>配送员姓名:{{orderDetailData.sender}}</p> <p>配送员姓名:{{orderDetailData.sender}}</p>
...@@ -67,6 +70,9 @@ ...@@ -67,6 +70,9 @@
<p v-if="showStatus == 1 || showStatus == 2 || showStatus == 3">支付时间:{{orderDetailData.paymentTime}}</p> <p v-if="showStatus == 1 || showStatus == 2 || showStatus == 3">支付时间:{{orderDetailData.paymentTime}}</p>
<p v-if="showStatus == 1 || showStatus == 2 || showStatus == 3">&nbsp;&nbsp;&nbsp;招募人:{{orderDetailData.ownerName}}</p> <p v-if="showStatus == 1 || showStatus == 2 || showStatus == 3">&nbsp;&nbsp;&nbsp;招募人:{{orderDetailData.ownerName}}</p>
<p v-if="showStatus == 1 || showStatus == 2 || showStatus == 3">所属药代:{{orderDetailData.brokerName}}</p> <p v-if="showStatus == 1 || showStatus == 2 || showStatus == 3">所属药代:{{orderDetailData.brokerName}}</p>
<p>下单人手机号:{{orderDetailData.prescriberMobile}}</p>
<p>订单类型:{{orderDetailData.saleTypeStr}}</p>
<p v-if="orderDetailData.refundReason">退款原因:{{orderDetailData.refundReason}}</p>
<!--<p>发货时间:{{orderDetailData.sendTime}}</p>--> <!--<p>发货时间:{{orderDetailData.sendTime}}</p>-->
<!--<p>成交时间:{{orderDetailData.finishTime}}</p>--> <!--<p>成交时间:{{orderDetailData.finishTime}}</p>-->
</div> </div>
...@@ -114,12 +120,34 @@ ...@@ -114,12 +120,34 @@
@closeSendSet="closeSendSet"> @closeSendSet="closeSendSet">
</send-set-dialog> </send-set-dialog>
</div> </div>
<el-dialog
class="tui-dialog"
title="修改物流单号"
:visible="showOrderNoFlag"
@close="showOrderNoFlag = false"
width="600px"
>
<el-form ref="orderDetailData" :model="orderDetailData" :rules="rulesExpress" label-width="120px">
<el-form-item label="快递公司" prop="expressName">
<el-input v-model="orderDetailData.expressName"></el-input>
</el-form-item>
<el-form-item label="快递单号" prop="expressNo">
<el-input v-model="orderDetailData.expressNo"></el-input>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="orderDetailData.remark"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="small" type="primary" @click="confirmExpressNo">完成</el-button>
</span>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
// import { openLoading, closeLoading } from "../../utils/utils"; // import { openLoading, closeLoading } from "../../utils/utils";
import BreadCrumb from "@/components/breadcrumb.vue"; import BreadCrumb from "@/components/breadcrumb.vue";
import { queryOrderDetail } from '@/utils/shop'; import { queryOrderDetail, updateExpressNo } from '@/utils/shop';
import SendSetDialog from "@/components/shop/send-set-dialog"; import SendSetDialog from "@/components/shop/send-set-dialog";
export default { export default {
components: { components: {
...@@ -155,12 +183,23 @@ ...@@ -155,12 +183,23 @@
payChannel: '',//支付方式 payChannel: '',//支付方式
ownerName:'',// 招募人姓名 ownerName:'',// 招募人姓名
brokerName:'',//药代名称 brokerName:'',//药代名称
prescriberMobile:'',//下单人手机号
// showStatus: null,//订单展示状态,1已完成,2已发货,3待发货,4待支付,5交易关闭 // showStatus: null,//订单展示状态,1已完成,2已发货,3待发货,4待支付,5交易关闭
saleTypeStr:'',// 订单类型
},
rulesExpress: {
expressName: [
{ required: true, message: '请输入快递公司', trigger: "blur"},
],
expressNo: [
{ required: true, message: '请输入快递单号', trigger: "blur"},
]
}, },
tableData: [], tableData: [],
sendGoodsDialog: false, sendGoodsDialog: false,
dialogTitle: '', dialogTitle: '',
sendSetForm: {}, sendSetForm: {},
showOrderNoFlag: false,
} }
}, },
created() { created() {
...@@ -209,6 +248,63 @@ ...@@ -209,6 +248,63 @@
} }
}) })
}, },
// 修改物流单号
updateOrderNo(){
this.showOrderNoFlag = true;
},
confirmExpressNo() {
if (this.orderDetailData.expressName == null || this.orderDetailData.expressName == "") {
this.$message.error("请填写快递公司");
return;
}
if (this.orderDetailData.expressNo == null || this.orderDetailData.expressNo == "") {
this.$message.error("请填写快递单号");
return;
}
updateExpressNo({
orderId: this.orderId,
expressName: this.orderDetailData.expressName,
expressNo: this.orderDetailData.expressNo,
remark: this.orderDetailData.remark
}).then(res => {
if (res.code == '000000') {
this.$message.success('操作成功');
this.showOrderNoFlag = false;
this.searchList();
} else {
this.$message.success(`操作失败:${res.message},请重试`);
}
});
},
copyTxt() {
let txt = document.getElementById("copyInput");
txt.value = this.orderDetailData.expressNo;
// if (navigator.userAgent.match(/(iPhone|iPod|iPad|Mac);?/i)) {
if (navigator.userAgent.indexOf("Safari") > -1 && navigator.userAgent.indexOf("Chrome") < 1) {
var el = document.createElement('input');
el.value = txt.value;//要复制的内容
el.style.opacity = '0';
document.body.appendChild(el);
var editable = el.contentEditable;
var readOnly = el.readOnly;
el.contentEditable = true;
el.readOnly = false;
const range = document.createRange();
range.selectNodeContents(el);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
el.setSelectionRange(0, 999999);
el.contentEditable = editable;
el.readOnly = readOnly;
var ret = document.execCommand('copy');
el.blur();
} else {
txt.select(); //选择对象
document.execCommand("copy");
}
this.$message.success('复制成功');
},
}, },
filters: { filters: {
toFixed2: function (value) { toFixed2: function (value) {
......
<template> <template>
<div class="order-manage-wrapper"> <div class="order-manage-wrapper">
<bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond"></bread-crumb> <bread-crumb
:curmbFirst="curmbFirst"
:curmbSecond="curmbSecond"
></bread-crumb>
<div class="order-manage-content screenSet" id="screenSet"> <div class="order-manage-content screenSet" id="screenSet">
<div class="header-title">订单管理</div> <div class="header-title">订单管理</div>
<el-form ref="searchForm" :model="searchForm" label-width="80px" label-suffix=":" :inline="true"> <el-form
ref="searchForm"
:model="searchForm"
label-width="80px"
label-suffix=":"
:inline="true"
>
<el-row :gutter="30" type="flex" style="margin-top: 10px"> <el-row :gutter="30" type="flex" style="margin-top: 10px">
<el-col :span="18"> <el-col :span="24">
<el-form-item label="商品名称"> <el-form-item label="商品名称">
<el-input v-model="searchForm.goodsName" size="small" placeholder="请输入商品名称"></el-input> <el-input
v-model="searchForm.goodsName"
size="small"
placeholder="请输入商品名称"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="订单号"> <el-form-item label="订单号">
<el-input v-model="searchForm.orderNo" size="small" placeholder="请输入订单号"></el-input> <el-input
v-model="searchForm.orderNo"
size="small"
placeholder="请输入订单号"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="买家名称"> <el-form-item label="买家名称">
<el-input v-model="searchForm.receiver" size="small" placeholder="请输入买家名称"></el-input> <el-input
v-model="searchForm.receiver"
size="small"
placeholder="请输入买家名称"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="创建人"> <el-form-item label="创建人">
<el-input v-model="searchForm.prescriberName" size="small" placeholder="请输入创建人名称"></el-input> <el-input
v-model="searchForm.prescriberName"
size="small"
placeholder="请输入创建人名称"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="30" type="flex" style="margin-top: 10px"> <el-row :gutter="30" type="flex" style="margin-top: 10px">
<el-col :span="18"> <el-col :span="24">
<el-form-item label="下单时间" class="t-b"> <el-form-item label="下单时间" class="t-b">
<el-date-picker <el-date-picker
v-model="createRangeTime" v-model="createRangeTime"
...@@ -30,8 +55,9 @@ ...@@ -30,8 +55,9 @@
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
style="width: 90%;" style="width: 90%"
:picker-options="pickerOptions1"> :picker-options="pickerOptions1"
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="招募人"> <el-form-item label="招募人">
...@@ -41,7 +67,6 @@ ...@@ -41,7 +67,6 @@
placeholder="请输入招募人" placeholder="请输入招募人"
@change="changeOwner" @change="changeOwner"
clearable clearable
style="width:110%;height: 32px;line-height: 32px;"
> >
<el-option <el-option
v-for="item in brokerOwnerList" v-for="item in brokerOwnerList"
...@@ -57,7 +82,6 @@ ...@@ -57,7 +82,6 @@
id="statusSelector" id="statusSelector"
placeholder="请输入药代姓名" placeholder="请输入药代姓名"
clearable clearable
style="width:110%;height: 32px;line-height: 32px;"
> >
<el-option <el-option
v-for="item in brokerList" v-for="item in brokerList"
...@@ -67,11 +91,52 @@ ...@@ -67,11 +91,52 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="订单类型">
<el-select
v-model="searchForm.saleType"
placeholder="请选择订单类型"
size="small"
clearable
>
<el-option
v-for="item in saleTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-col> </el-col>
<el-col :span="6" style="text-align: right"> <el-col :span="6" style="text-align: right">
<el-button type="primary" size="small" @click="searchList">查询</el-button> <div class="button-container">
<el-button type="default" size="small" @click="resetForm" style="margin-left:0;">重置</el-button> <el-button type="primary" size="small" @click="searchList"
<el-button type="primary" size="small" @click="exportOrder">导出订单</el-button> >查询</el-button
>
<el-button
type="default"
size="small"
@click="resetForm"
style="margin-left: 0"
>重置</el-button
>
<el-button type="primary" size="small" @click="exportOrder"
>导出订单</el-button
>
</div>
<div class="button-container">
<el-button
type="primary"
size="small"
@click="ShowExportDialog(1)"
>导入物流单号</el-button
>
<el-button
type="primary"
size="small"
@click="ShowExportDialog(2)"
>批量取消订单</el-button
>
</div>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
...@@ -81,95 +146,266 @@ ...@@ -81,95 +146,266 @@
<el-tab-pane label="等待发货" name="second"></el-tab-pane> <el-tab-pane label="等待发货" name="second"></el-tab-pane>
<el-tab-pane label="已发货" name="third"></el-tab-pane> <el-tab-pane label="已发货" name="third"></el-tab-pane>
<el-tab-pane label="交易成功" name="fourth"></el-tab-pane> <el-tab-pane label="交易成功" name="fourth"></el-tab-pane>
<el-tab-pane label="关闭交易" name="five"></el-tab-pane> <el-tab-pane label="退款/关闭" name="five"></el-tab-pane>
</el-tabs> </el-tabs>
<el-table :data="tableData" border max-height="1000" class="item-table" style="width: 100%;margin-top: 10px;"> <el-table
<el-table-column prop="id" label="订单号" min-width="100" align="center"></el-table-column> :data="tableData"
<el-table-column prop="goodsNameList" label="商品名称" min-width="150" align="center"> border
max-height="1000"
class="item-table"
style="width: 100%; margin-top: 10px"
>
<el-table-column
prop="id"
label="订单号"
min-width="100"
align="center"
></el-table-column>
<el-table-column
prop="goodsNameList"
label="商品名称"
min-width="150"
align="center"
>
<template slot-scope="scope"> <template slot-scope="scope">
<!--<span>{{ scope.row.goodsName }}</span>--> <!--<span>{{ scope.row.goodsName }}</span>-->
<p v-for="(item, index) in scope.row.goodsNameList" :key="index" class="p-normal">{{item}}</p> <p
v-for="(item, index) in scope.row.goodsNameList"
:key="index"
class="p-normal"
>
{{ item }}
</p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="showStatusStr" label="交易状态" min-width="100" align="center"> <el-table-column
prop="showStatusStr"
label="交易状态"
min-width="100"
align="center"
>
</el-table-column> </el-table-column>
<el-table-column prop="amount" label="实收款" min-width="100" align="center"> <el-table-column
prop="amount"
label="实收款"
min-width="100"
align="center"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.amount | toFixed2}}</span> <span>{{ scope.row.amount | toFixed2 }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="prescriberName" label="创建人" min-width="100" align="center"></el-table-column> <el-table-column
<el-table-column prop="receiver" label="买家" min-width="100" align="center"></el-table-column> prop="prescriberName"
<el-table-column prop="goodsQuantityList" label="数量" min-width="100" align="center"> label="创建人"
min-width="100"
align="center"
></el-table-column>
<el-table-column
prop="receiver"
label="买家"
min-width="100"
align="center"
></el-table-column>
<el-table-column
prop="goodsQuantityList"
label="数量"
min-width="100"
align="center"
>
<template slot-scope="scope"> <template slot-scope="scope">
<!--<span>{{ scope.row.goodsQuantity }}</span>--> <!--<span>{{ scope.row.goodsQuantity }}</span>-->
<p v-for="(item, index) in scope.row.goodsQuantityList" :key="index" class="p-normal">{{item}}</p> <p
v-for="(item, index) in scope.row.goodsQuantityList"
:key="index"
class="p-normal"
>
{{ item }}
</p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="sizeList" label="规格" min-width="100" align="center"> <el-table-column
prop="sizeList"
label="规格"
min-width="100"
align="center"
>
<template slot-scope="scope"> <template slot-scope="scope">
<!--<span>{{ scope.row.size }}</span>--> <!--<span>{{ scope.row.size }}</span>-->
<p v-for="(item, index) in scope.row.sizeList" :key="index" class="p-normal">{{item}}</p> <p
v-for="(item, index) in scope.row.sizeList"
:key="index"
class="p-normal"
>
{{ item }}
</p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="priceList" label="单价" min-width="100" align="center"> <el-table-column
prop="priceList"
label="单价"
min-width="100"
align="center"
>
<template slot-scope="scope"> <template slot-scope="scope">
<!--<span>{{ scope.row.price }}</span>--> <!--<span>{{ scope.row.price }}</span>-->
<p v-for="(item, index) in scope.row.priceList" :key="index" class="p-normal">{{item | toFixed2}}</p> <p
v-for="(item, index) in scope.row.priceList"
:key="index"
class="p-normal"
>
{{ item | toFixed2 }}
</p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="createTime" label="下单时间" min-width="100" align="center">
<!-- <el-table-column
prop="fanxxxx"
label="返现"
min-width="100"
align="center"
>
</el-table-column> -->
<el-table-column
prop="saleTypeStr"
label="销售方式"
width="170"
align="center"
>
</el-table-column>
<el-table-column
prop="createTime"
label="下单时间"
min-width="100"
align="center"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.createTime }}</span> <span>{{ scope.row.createTime }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="ownerName" label="招募人" min-width="100" align="center"></el-table-column> <el-table-column
<el-table-column prop="brokerName" label="药代姓名" min-width="100" align="center"></el-table-column> prop="ownerName"
<el-table-column prop="comments" label="备注" min-width="100" align="center"></el-table-column> label="招募人"
<el-table-column label="操作" min-width="250" align="center" fixed="right"> min-width="100"
align="center"
></el-table-column>
<el-table-column
prop="brokerName"
label="药代姓名"
min-width="100"
align="center"
></el-table-column>
<el-table-column
prop="comments"
label="备注"
min-width="100"
align="center"
></el-table-column>
<el-table-column
label="操作"
min-width="250"
align="center"
fixed="right"
>
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div>
<!--<el-button @click="closeTrade(scope.row)" type="text" size="small">关闭交易</el-button>--> <!--<el-button @click="closeTrade(scope.row)" type="text" size="small">关闭交易</el-button>-->
<!--<el-button @click="changePrice(scope.row)" type="text" size="small">修改价格</el-button>--> <!--<el-button @click="changePrice(scope.row)" type="text" size="small">修改价格</el-button>-->
<!-- <el-button @click="sendGoods(scope.row)" type="text" size="small">发货</el-button>--> <!-- <el-button @click="sendGoods(scope.row)" type="text" size="small">发货</el-button>-->
<el-button v-if="scope.row.storeType == 1 && scope.row.showStatus == 3 && scope.row.refundStatus == 0" @click="sendGoods(scope.row)" type="text" size="small">发货</el-button> <el-button
<el-button v-if="scope.row.storeType == 2 && scope.row.showStatus == 3 && scope.row.refundStatus == 0" @click="distribute(scope.row)" type="text" size="small">配送</el-button> v-if="
<el-button v-if="scope.row.storeType == 1 && (scope.row.showStatus == 1 || scope.row.showStatus == 2)" @click="viewLogistics(scope.row)" type="text" size="small">查看物流</el-button> scope.row.storeType == 1 &&
<el-button v-if="scope.row.storeType == 2 && scope.row.showStatus == 2" @click="distributeComplete(scope.row)" type="text" size="small">配送完成</el-button> scope.row.showStatus == 3 &&
<el-button @click="goDetail(scope.row)" type="text" size="small">查看详情</el-button> scope.row.refundStatus == 0
<el-button v-if="(scope.row.storeType == 1 || scope.row.storeType == 2) && scope.row.showStatus == 3 && scope.row.refundStatus == 0" @click="openTuiDialog(scope.row)" type="text" size="small">退款退货</el-button> "
@click="sendGoods(scope.row)"
type="text"
size="small"
>发货</el-button
>
<el-button
v-if="
scope.row.storeType == 2 &&
scope.row.showStatus == 3 &&
scope.row.refundStatus == 0
"
@click="distribute(scope.row)"
type="text"
size="small"
>配送</el-button
>
<el-button
v-if="
scope.row.storeType == 1 &&
(scope.row.showStatus == 1 || scope.row.showStatus == 2)
"
@click="viewLogistics(scope.row)"
type="text"
size="small"
>查看物流</el-button
>
<el-button
v-if="scope.row.storeType == 2 && scope.row.showStatus == 2"
@click="distributeComplete(scope.row)"
type="text"
size="small"
>配送完成</el-button
>
<el-button @click="goDetail(scope.row)" type="text" size="small"
>查看详情</el-button
>
<el-button
v-if="
(scope.row.storeType == 1 || scope.row.storeType == 2) &&
scope.row.showStatus == 3 &&
scope.row.refundStatus == 0
"
@click="openTuiDialog(scope.row)"
type="text"
size="small"
>退款退货</el-button
>
<!-- <el-button type="text" size="small">查看物流</el-button> -->
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="pagination"> <div class="pagination">
<el-pagination <el-pagination
background background
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleNumChange" @current-change="handleNumChange"
:current-page="searchForm.pageNo" :current-page="searchForm.pageNo"
:page-sizes="[10, 30, 50, 100]" :page-sizes="[10, 30, 50, 100]"
:page-size="searchForm.pageSize" :page-size="searchForm.pageSize"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
:total="totalRows" :total="totalRows"
></el-pagination> ></el-pagination>
</div> </div>
<el-dialog <el-dialog
title="确定关闭交易吗?" title="确定关闭交易吗?"
:visible="closeTradeDialog" :visible="closeTradeDialog"
@close="cancelTrade" @close="cancelTrade"
:show-close="false" :show-close="false"
width="600px" width="600px"
center> center
<p style="text-align: center;margin-top: -25px;color: #9B9997">关闭后买家将不能再付款</p> >
<div style="text-align: center;margin-top: 30px;"> <p style="text-align: center; margin-top: -25px; color: #9b9997">
<el-input type="textarea" 关闭后买家将不能再付款
v-model="reasonTxt" </p>
maxlength="400" <div style="text-align: center; margin-top: 30px">
rows="5" <el-input
placeholder="请输入备注内容" type="textarea"
style="width: 80%;"></el-input> v-model="reasonTxt"
<span class="word-num">{{reasonTxt.replace(/\s+/g,"").length}}/400</span> maxlength="400"
rows="5"
placeholder="请输入备注内容"
style="width: 80%"
></el-input>
<span class="word-num"
>{{ reasonTxt.replace(/\s+/g, "").length }}/400</span
>
</div> </div>
<!--<el-form ref="auditForm" :model="auditForm" label-width="120px"> <!--<el-form ref="auditForm" :model="auditForm" label-width="120px">
<el-form-item label="拒绝原因:"> <el-form-item label="拒绝原因:">
...@@ -190,66 +426,110 @@ ...@@ -190,66 +426,110 @@
</el-form-item> </el-form-item>
</el-form>--> </el-form>-->
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button size="small" @click="cancelTrade">取 消</el-button> <el-button size="small" @click="cancelTrade">取 消</el-button>
<el-button size="small" type="primary" @click="submitTrade">关闭交易</el-button> <el-button size="small" type="primary" @click="submitTrade"
</span> >关闭交易</el-button
>
</span>
</el-dialog> </el-dialog>
<el-dialog <el-dialog
title="修改价格" title="修改价格"
:visible="changePriceDialog" :visible="changePriceDialog"
@close="cancelPrice" @close="cancelPrice"
width="600px" width="600px"
center> center
<el-form ref="changePriceForm" :model="changePriceForm" label-width="120px" label-suffix=":"> >
<el-form
ref="changePriceForm"
:model="changePriceForm"
label-width="120px"
label-suffix=":"
>
<el-form-item label="目前价格"> <el-form-item label="目前价格">
<span>¥{{changePriceForm.nowPrice}}</span> <span>¥{{ changePriceForm.nowPrice }}</span>
</el-form-item> </el-form-item>
<el-form-item label="修改价格"> <el-form-item label="修改价格">
<el-input type="text" v-model="changePriceForm.updatePrice" placeholder="请输入修改后的价格" style="width: 70%"></el-input> <el-input
type="text"
v-model="changePriceForm.updatePrice"
placeholder="请输入修改后的价格"
style="width: 70%"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button size="small" type="primary" @click="submitPrice">完成</el-button> <el-button size="small" type="primary" @click="submitPrice"
</span> >完成</el-button
>
</span>
</el-dialog> </el-dialog>
<send-set-dialog <send-set-dialog
:sendGoodsDialog="sendGoodsDialog" :sendGoodsDialog="sendGoodsDialog"
:dialogTitle="dialogTitle" :dialogTitle="dialogTitle"
:sendSetFormData="sendSetForm" :sendSetFormData="sendSetForm"
@closeSendSet="closeSendSet"> @closeSendSet="closeSendSet"
>
</send-set-dialog> </send-set-dialog>
<el-dialog <el-dialog
title="查看物流" title="查看物流"
:visible="viewLogisticsDialog" :visible="viewLogisticsDialog"
@close="cancelView" @close="cancelView"
:show-close="false" :show-close="false"
width="600px" width="700px"
center> center
>
<div class="view-content"> <div class="view-content">
<i class="el-icon-truck" style="font-size: 18px"></i><span class="send-status">已发货</span> <div>
<span class="view-number">{{logisticeInfo}}</span> <i class="el-icon-truck" style="font-size: 18px"></i
<el-button type="text" @click="copyTxt">复制</el-button> ><span class="send-status">已发货</span>
<span class="view-number">{{ logisticeInfo }}</span>
</div>
<div>
<el-button type="text" @click="copyTxt">复制单号</el-button>
<el-button type="text" @click="updateOrderNo" v-if="showStatus == 2"
>修改物流单号</el-button
>
</div>
</div>
<div class="steps-logistics">
<el-steps direction="vertical" :active="0">
<el-step
v-for="(item, index) in expressData"
:title="item.time"
:description="item.context"
:key="index"
>
<div slot="icon">
<div class="dot"></div>
</div>
</el-step>
</el-steps>
</div> </div>
<input type="text" id="copyInput" class="hidden-input" /> <input type="text" id="copyInput" class="hidden-input" />
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button size="small" type="primary" @click="cancelView">我知道了</el-button> <el-button size="small" type="primary" @click="cancelView"
</span> >我知道了</el-button
>
</span>
</el-dialog> </el-dialog>
<el-dialog <el-dialog
title="" title=""
:visible="disCompleteDialog" :visible="disCompleteDialog"
@close="cancelDis" @close="cancelDis"
:show-close="false" :show-close="false"
width="600px" width="600px"
center> center
>
<div class="view-content"> <div class="view-content">
<p class="center-title">确认配送完成吗?</p> <p class="center-title">确认配送完成吗?</p>
<p class="center-subtitle">请确认线下已将商品送达</p> <p class="center-subtitle">请确认线下已将商品送达</p>
</div> </div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button size="small" @click="cancelDis">取消</el-button> <el-button size="small" @click="cancelDis">取消</el-button>
<el-button size="small" type="primary" @click="submitDisComplete">配送完成</el-button> <el-button size="small" type="primary" @click="submitDisComplete"
</span> >配送完成</el-button
>
</span>
</el-dialog> </el-dialog>
</div> </div>
<el-dialog <el-dialog
...@@ -259,8 +539,17 @@ ...@@ -259,8 +539,17 @@
@close="showTuiDialog = false" @close="showTuiDialog = false"
width="385px" width="385px"
> >
<div style="margin-bottom: 20px;margin-top: -20px;text-align: center;"><span style="color: red;">温馨提示:订单一旦退款,订单关联的预约单将被同步取消,请谨慎操作退款</span></div> <div style="margin-bottom: 20px; margin-top: -20px; text-align: center">
<el-form ref="tuiForm" :rules="rules" :model="tuiForm" label-width="120px"> <span style="color: red"
>温馨提示:订单一旦退款,订单关联的预约单将被同步取消,请谨慎操作退款</span
>
</div>
<el-form
ref="tuiForm"
:rules="rules"
:model="tuiForm"
label-width="120px"
>
<el-form-item label="退款退货方式:"> <el-form-item label="退款退货方式:">
<el-select v-model="tuiForm.type" placeholder="请选择退货方式"> <el-select v-model="tuiForm.type" placeholder="请选择退货方式">
<el-option <el-option
...@@ -281,467 +570,1113 @@ ...@@ -281,467 +570,1113 @@
v-for="item in userTypes" v-for="item in userTypes"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value"/> :value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="退款理由" prop="">
<el-input
:maxlength="20"
type="textarea"
:autosize="{ minRows: 2, maxRows: 4 }"
placeholder="请输入内容"
v-model="tuiForm.refundReason"
>
</el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="small" type="primary" @click="confirmTui"
>完成</el-button
>
</span>
</el-dialog>
<el-dialog
class="tui-dialog"
title="修改物流单号"
:visible="showOrderNoFlag"
@close="showOrderNoFlag = false"
width="600px"
>
<el-form
ref="expressForm"
:rules="rulesExpress"
:model="expressForm"
label-width="120px"
>
<el-form-item label="快递公司" prop="company">
<el-input v-model="expressForm.company"></el-input>
</el-form-item>
<el-form-item label="快递单号" prop="no">
<el-input v-model="expressForm.no"></el-input>
</el-form-item>
<el-form-item label="备注" prop="extendMessage">
<el-input v-model="expressForm.extendMessage"></el-input>
</el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button size="small" type="primary" @click="confirmTui">完成</el-button> <el-button size="small" type="primary" @click="confirmExpressNo"
>完成</el-button
>
</span> </span>
</el-dialog> </el-dialog>
<!-- 导入物流单号 dialog-->
<el-dialog
class="exportlogistics-dialog"
:title="ExportType == 1 ? '导入物流单号' : '批量取消订单'"
:visible="exportDialog"
@close="exportDialog = false"
width="600px"
>
<el-form label-width="120px">
<el-form-item label="导入文档:">
<el-upload
class="upload-excel"
action="#"
accept=".xlsx"
multiple
:limit="1"
:show-file-list="false"
:before-upload="uploadfile"
>
<div class="upload-container">
<el-input
class="file-name"
v-model="fileData.fileName"
size="mini"
readonly
></el-input
><el-button type="primary" size="mini">选择文件</el-button>
</div>
</el-upload>
</el-form-item>
<el-form-item label="模板:">
<a v-if="ExportType == 1" class="importUrl" :href="LogisticsUrl">
物流单号修改模板.xlxs</a
>
<a v-else class="importUrl" :href="CancelOrderUrl">
批量取消模板.xlxs</a
>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button size="small" @click="cancelExport">取消</el-button>
<el-button
size="small"
:loading="isLoading"
type="primary"
@click="confirmExport"
>确认</el-button
>
</div>
</el-dialog>
<!-- 导出进度loading -->
<el-dialog
class="exportlogistics-dialog"
:visible="progressFlag"
width="600px"
:close-on-click-modal="false"
:show-close="false"
>
<div>
<div class="progress-container">
<div class="progress-tag">
{{ ProgressData.doneNum }}/{{ ProgressData.totalNum }}
<div class="popper__arrow"></div>
</div>
<div class="progress-content">正在导入...</div>
</div>
</div>
</el-dialog>
<!-- 结果统计 -->
<el-dialog
class="exportlogistics-dialog"
title="导入完成"
:visible="statFlg"
@close="statFlg = false"
width="600px"
>
<div class="stat-container">
<div class="stat-title">模板数据共{{ ProgressData.totalNum }}条</div>
<div class="stat-result">
<div class="success">成功:{{ ProgressData.successNum }}条</div>
<div class="repetition">重复:{{ ProgressData.repeatNum }}条</div>
<div class="repetition">空行:{{ ProgressData.nullNum }}条</div>
<div class="failure">失败:{{ ProgressData.failNum }}条</div>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button size="small" @click="statFlg = false">取消</el-button>
<el-button size="small" type="primary" @click="showReasondialog"
>查看失败原因</el-button
>
</div>
</el-dialog>
<!-- 失败原因 -->
<el-dialog
class="exportlogistics-dialog"
title="失败记录"
:visible="FailureReasonFlag"
@close="FailureReasonFlag = false"
width="1000px"
>
<div class="FailureReasonFlag-container" v-if="ExportType == 1">
<el-table
:data="ProgressData.errorList"
border
height="300"
style="width: 100%"
>
<el-table-column
prop="subOrderId"
label="订单号"
align="center"
width="210"
></el-table-column>
<el-table-column
prop="expressName"
label="快递公司"
align="center"
></el-table-column>
<el-table-column prop="expressNo" label="快递单号" align="center">
</el-table-column>
<el-table-column prop="remark" label="备注" align="center">
</el-table-column>
<el-table-column prop="failInfo" label="失败原因" align="center">
</el-table-column>
<el-table-column
prop="operationGuide"
label="操作指引"
align="center"
>
</el-table-column>
</el-table>
</div>
<div class="FailureReasonFlag-container" v-else>
<el-table
:data="ProgressData.errorList"
border
height="300"
style="width: 100%"
>
<el-table-column
prop="subOrderId"
label="订单号"
align="center"
width="210"
></el-table-column>
<el-table-column
prop="refundReason"
label="取消原因"
align="center"
></el-table-column>
<el-table-column prop="failInfo" label="失败原因" align="center">
</el-table-column>
<el-table-column
prop="operationGuide"
label="操作指引"
align="center"
>
</el-table-column>
</el-table>
</div>
<div slot="footer" class="dialog-footer">
<el-button size="small" @click="FailureReasonFlag = false"
>取消</el-button
>
<a :href="ProgressData.errorFileUrl">
<el-button size="small" type="primary">导出失败记录</el-button>
</a>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { openLoading, closeLoading } from "../../utils/utils"; import { openLoading, closeLoading } from "../../utils/utils";
import BreadCrumb from "@/components/breadcrumb.vue"; import BreadCrumb from "@/components/breadcrumb.vue";
import SendSetDialog from "@/components/shop/send-set-dialog"; import SendSetDialog from "@/components/shop/send-set-dialog";
import { getOrdersExportUrl } from "@/utils/yqrange/yqrangeApi"; import {
import { queryOrderList, updateExpress, refundApply, brokerListAll, brokerOwnerListAll} from "@/utils/shop"; getOrdersExportUrl,
import { toDecimal2 } from '@/utils'; uploadExpress,
uploadRefund,
getUploadExpressProgress,
getUploadRefundProgress,
} from "@/utils/yqrange/yqrangeApi";
import {
queryOrderList,
updateExpress,
refundApply,
brokerListAll,
brokerOwnerListAll,
updateExpressNo,
expressInfo,
} from "@/utils/shop";
import { toDecimal2 } from "@/utils";
export default { export default {
components: { components: {
SendSetDialog, SendSetDialog,
BreadCrumb BreadCrumb,
}, },
data(){ data() {
return{ return {
createRangeTime: '', createRangeTime: "",
curmbFirst: '云鹊店铺', curmbFirst: "云鹊店铺",
curmbSecond: '订单管理', curmbSecond: "订单管理",
activeName: 'all', activeName: "all",
searchForm: { showStatus: -1,
showStatus: -1, searchForm: {
storeId: 0, showStatus: -1,
goodsName: '', storeId: 0,
orderNo: '', goodsName: "",
receiver: '', orderNo: "",
prescriberName: '', receiver: "",
orderTime:'', prescriberName: "",
orderBeginTime:'', orderTime: "",
orderEndTime: '', orderBeginTime: "",
brokerId:'', orderEndTime: "",
ownerId:'', brokerId: "",
pageNo: 1, ownerId: "",
pageSize: 10, pageNo: 1,
}, pageSize: 10,
totalRows: 0, saleType: 0,
tableData: [],
closeTradeDialog: false,
reasonTxt: '',
changePriceDialog: false,
changePriceForm: {
nowPrice: 45,
updatePrice: '',
},
sendGoodsDialog: false,
dialogTitle: '',
sendSetForm: {},
viewLogisticsDialog: false,
logisticeInfo: '',//复制物流信息
disCompleteDialog: false,
disCompleteData: {},
rules: {
name: [
{ required: true, message: '请输入快递公司', trigger: "blur"},
],
orderNum: [
{ required: true, message: '请输入快递单号', trigger: "blur"},
],
userName: [
{ required: true, message: '请选择退款对象', trigger: "blur"},
],
},
showTuiDialog: false,
tuiForm: {
order: null,
type: 0,
money: ''
},
tuiTypes: [
{
label: '仅退款,无需退货',
value: 0,
disabled: false
},
{
label: '仅退货,无需退款',
value: 1,
disabled: true
},
{
label: '退款退货',
value: 2,
disabled: true
}
],
userType: "", // 1.开单医生, 2.支付用户
userTypes: [
{
label: '开单医生',
value: 1,
},
{
label: '支付用户',
value: 2,
},
],
ownerId:'',
brokerList:[],
brokerOwnerList:[],
pickerOptions1: {
disabledDate: time => {
return (
time.getTime() > new Date().getTime()
); //减去一天的时间代表可以选择同一天;
}
},
}
},
created() {
console.log("order created() : enter");
this.searchForm.storeId = this.$route.query.storeId || 0,
this.searchList();
this.brokerListAll();
this.brokerOwnerListAll();
},
methods: {
searchList(){
this.searchForm.orderBeginTime = this.createRangeTime[0];
this.searchForm.orderEndTime = this.createRangeTime[1];
console.log("searchList搜索开始")
openLoading(this);
queryOrderList(this.searchForm).then(res => {
closeLoading(this);
if (res.code == '000000') {
console.log("searchList搜索结束")
this.tableData = res.data.orderSingleDtoList;
this.totalRows = res.data.totalNum;
}
})
},
resetForm() {
console.log("resetForm重置")
this.activeName = 'all';
this.createRangeTime = '';
this.searchForm = {
showStatus: -1,
storeId: this.$route.query.storeId,
goodsName: '',
prescriberName: '',
orderBeginTime:'',
orderEndTime: '',
orderNo: '',
receiver: '',
orderDate: '',
brokerId:'',
ownerId:'',
pageNo: 1,
pageSize: 10,
};
this.ownerId = "";
this.searchList();
this.brokerOwnerListAll();
this.brokerListAll();
},
handleSizeChange(val) {
this.searchForm.pageSize = val;
this.searchForm.pageNo = 1;
this.searchList();
},
handleNumChange(val) {
this.searchForm.pageNo = val;
this.searchList();
},
handleClick(tab, event) {
//-1全部,1已完成,2已发货,3待发货,4待支付,5交易关闭
if (this.activeName == 'all') {//全部
this.searchForm.showStatus = -1;
}else if (this.activeName == 'first') {//等待买家付款
this.searchForm.showStatus = 4;
}else if (this.activeName == 'second') {//待发货
this.searchForm.showStatus = 3;
}else if (this.activeName == 'third') {//已发货
this.searchForm.showStatus = 2;
}else if (this.activeName == 'fourth') {//交易成功
this.searchForm.showStatus = 1;
}else if (this.activeName == 'five') {//交易关闭
this.searchForm.showStatus = 5;
}
this.searchForm.pageNo = 1;
this.searchList();
}, },
//关闭交易 // 确认物流
closeTrade(row) { statFlg: false,
this.closeTradeDialog = true; exportDialog: false,
ExportType: 1, // 1导入物流信息 2、批量取消订单
FailureReasonFlag: false,
progressFlag: false,
totalRows: 0,
tableData: [],
FailureTable: [],
closeTradeDialog: false,
reasonTxt: "",
changePriceDialog: false,
changePriceForm: {
nowPrice: 45,
updatePrice: "",
}, },
cancelTrade() { sendGoodsDialog: false,
this.closeTradeDialog = false; dialogTitle: "",
}, sendSetForm: {},
submitTrade() { viewLogisticsDialog: false,
this.closeTradeDialog = false; logisticeInfo: "", //复制物流信息
}, disCompleteDialog: false,
//修改价格 disCompleteData: {},
changePrice(row) { rules: {
this.changePriceDialog = true; name: [{ required: true, message: "请输入快递公司", trigger: "blur" }],
}, orderNum: [
cancelPrice() { { required: true, message: "请输入快递单号", trigger: "blur" },
this.changePriceDialog = false; ],
}, userName: [
submitPrice() { { required: true, message: "请选择退款对象", trigger: "blur" },
this.changePriceDialog = false; ],
},
//发货
sendGoods(row) {
this.sendGoodsDialog = true;
this.dialogTitle = '发货设置';
this.sendSetForm = row;
},
closeSendSet(val) {
console.log("关闭,val.type:" + val.type);
//保存操作
if (val.type == 2) {
console.log("刷新列表resetForm");
this.resetForm();//更新列表
}
this.sendGoodsDialog = false;
}, },
//配送 expressData: [
distribute(row) { {
this.sendGoodsDialog = true; time: "2021-06-23 12:21:21",
this.dialogTitle = '配送设置'; context: "待揽收",
this.sendSetForm = row; },
],
showTuiDialog: false,
tuiForm: {
order: null,
type: 0,
refundReason: "",
money: "",
}, },
//查看物流 expressForm: {
viewLogistics(row) { order: null,
this.viewLogisticsDialog = true; company: "",
this.logisticeInfo = `${row.expressName} ${row.expressNo}`; no: "",
extendMessage: "",
}, },
cancelView() { rulesExpress: {
this.viewLogisticsDialog = false; company: [
{ required: true, message: "请输入快递公司", trigger: "blur" },
],
no: [{ required: true, message: "请输入快递单号", trigger: "blur" }],
}, },
copyTxt() { tuiTypes: [
let txt = document.getElementById("copyInput"); {
txt.value = this.logisticeInfo; label: "仅退款,无需退货",
// if (navigator.userAgent.match(/(iPhone|iPod|iPad|Mac);?/i)) { value: 0,
if (navigator.userAgent.indexOf("Safari") > -1 && navigator.userAgent.indexOf("Chrome") < 1) { disabled: false,
var el = document.createElement('input'); },
el.value = txt.value;//要复制的内容 {
el.style.opacity = '0'; label: "仅退货,无需退款",
document.body.appendChild(el); value: 1,
var editable = el.contentEditable; disabled: true,
var readOnly = el.readOnly; },
el.contentEditable = true; {
el.readOnly = false; label: "退款退货",
const range = document.createRange(); value: 2,
range.selectNodeContents(el); disabled: true,
var sel = window.getSelection(); },
sel.removeAllRanges(); ],
sel.addRange(range); userType: "", // 1.开单医生, 2.支付用户
el.setSelectionRange(0, 999999); userTypes: [
el.contentEditable = editable; {
el.readOnly = readOnly; label: "开单医生",
var ret = document.execCommand('copy'); value: 1,
el.blur(); },
} else { {
txt.select(); //选择对象 label: "支付用户",
document.execCommand("copy"); value: 2,
} },
this.$message.success('复制成功'); ],
saleTypeList: [
{
value: 0,
label: "全部",
},
{
value: 1,
label: "零售",
},
{
value: 2,
label: "批发",
},
],
fileData: {
fileBaseStr: "",
fileName: "",
}, },
//配送完成 ownerId: "",
distributeComplete(row) { brokerList: [],
this.disCompleteDialog = true; brokerOwnerList: [],
this.disCompleteData = row; showOrderNoFlag: false,
LogisticsUrl:
"https://pica-pro.oss-cn-shanghai.aliyuncs.com/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet/2021/08/12/20210812101318239-4c4e680b.xlsx",
CancelOrderUrl:
"https://pica-pro.oss-cn-shanghai.aliyuncs.com/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet/2021/08/12/2021081210125196-5a8743b1.xlsx",
timer: null,
pickerOptions1: {
disabledDate: (time) => {
return time.getTime() > new Date().getTime(); //减去一天的时间代表可以选择同一天;
},
}, },
cancelDis() {
this.disCompleteDialog = false; ProgressData: {
totalNum: "", //总数
nullNum:"",//空白行
status: "", // 1完成 0进行中
doneNum: "", // doneNum 完成数量
successNum: "", // 成功数量
failNum: "", //失败数量
repeatNum: "",
errorFileUrl: "", // 失败 原因文件
errorList: [], // 失败列表
}, },
//确认配送完成 isLoading: false,
submitDisComplete() { // errorFileUrl:"",
let para = this.disCompleteData; };
para.type = 3; },
updateExpress(para).then(res => { created() {
if (res.code == '000000') { console.log("order created() : enter");
this.$message.success('操作成功') (this.searchForm.storeId = this.$route.query.storeId || 0),
this.disCompleteDialog = false; this.searchList();
this.resetForm();//更新列表 this.brokerListAll();
}else { this.brokerOwnerListAll();
},
methods: {
// 确认导入
confirmExport() {
if (this.ExportType == 1) {
this.uploadExpress();
} else {
this.uploadRefund();
}
},
//
ShowExportDialog(type) {
this.ExportType = type;
this.exportDialog = true;
this.fileData = {
fileBaseStr: "",
fileName: "",
};
},
// 批量更新物流操作
uploadExpress() {
this.isLoading = true;
openLoading(this);
uploadExpress(this.fileData)
.then((res) => {
if (res && res.code == "000000") {
closeLoading(this);
this.getUploadExpressProgressInterval(
res.data.tradeBatchUploadLogId
);
} else {
this.isLoading = false;
this.$message.error(res.message); this.$message.error(res.message);
} }
});
},
//查看详情
goDetail(row) {
this.$router.push({
path: `/order-detail`,
query:{
id: row.id,
storeId: this.searchForm.storeId,
storeType: row.storeType,
}
}) })
}, .catch((err) => {
openTuiDialog(item) { this.isLoading = false;
this.tuiForm.order = item; closeLoading(this);
this.tuiForm.money = toDecimal2(item.amount); });
this.showTuiDialog = true; },
}, // 批量取消退款操作
confirmTui() { uploadRefund() {
if (this.userType == null || this.userType == "") { this.isLoading = true;
this.$message.error("请选择退款对象"); openLoading(this);
return; uploadRefund(this.fileData)
} .then((res) => {
refundApply({ orderId: this.tuiForm.order.id, userType: this.userType }).then(res => { console.log(res);
if (res.code == '000000') { if (res && res.code == "000000") {
this.$message.success('操作成功'); closeLoading(this);
this.showTuiDialog = false; this.getUploadRefundProgressInterval(res.data.tradeBatchUploadLogId);
this.searchList();
} else { } else {
this.$message.success(`操作失败:${res.message},请重试`); this.isLoading = false;
this.$message.error(res.message);
} }
})
.catch((err) => {
this.isLoading = false;
closeLoading(this);
}); });
}, },
exportOrder() {
const { goodsName, orderNo, receiver, orderDate, storeId, brokerId, ownerId, prescriberName, orderBeginTime, orderEndTime} = this.searchForm; // 获取物流上传进度
async getUploadExpressProgressInterval(id) {
clearInterval(this.timer);
let status = await this.getUploadExpressProgress(id);
if (status == 0) {
console.log("status------", status);
this.timer = setInterval(() => {
this.getUploadExpressProgress(id);
}, 2000);
}
},
getUploadExpressProgress(id) {
return getUploadExpressProgress(id).then((res) => {
if (res && res.code == "000000") {
this.isLoading = false;
this.exportDialog = false;
this.progressFlag = true;
this.ProgressData = res.data;
if (res.data.status == 1) {
clearInterval(this.timer);
setTimeout(() => {
this.progressFlag = false;
this.statFlg = true;
this.searchList();
getOrdersExportUrl({ goodsName, orderNo, receiver, orderDate, storeId,brokerId,ownerId,prescriberName, orderBeginTime, orderEndTime}).then(res => { }, 2000);
if (res.code != '000000') {
this.$message({ message: res.message, type: 'error' });
return;
} }
window.open(res.data); return res.data.status;
}); } else {
}, this.isLoading = false;
this.$message.error(res.message);
return;
}
});
},
// 云鹊店铺-订单管理-药代列表 // 获取批量取消进度
brokerListAll(){ async getUploadRefundProgressInterval(id) {
clearInterval(this.timer);
let status = await this.getUploadRefundProgress(id);
if (status == 0) {
this.timer = setInterval(() => {
this.getUploadRefundProgress(id);
}, 2000);
}
},
brokerListAll({ownerId:this.ownerId}).then(res => { getUploadRefundProgress(id) {
closeLoading(this); return getUploadRefundProgress(id).then((res) => {
if (res.code == '000000') { if (res && res.code == "000000") {
this.brokerList = res.data; this.exportDialog = false;
} this.progressFlag = true;
}) this.ProgressData = res.data;
}, this.isLoading = false;
//云鹊店铺-订单管理-招募人列表 if (res.data.status == 1) {
brokerOwnerListAll(){ clearInterval(this.timer);
brokerOwnerListAll().then(res => { setTimeout(() => {
closeLoading(this); this.progressFlag = false;
if (res.code == '000000') { this.statFlg = true;
this.brokerOwnerList = res.data; this.searchList()
}, 2000);
} }
}) return res.data.status;
}, } else {
this.isLoading = false;
this.$message.error(res.message);
return;
}
});
},
// 取消导入物流信息
cancelExport() {
(this.fileData = {
fileBaseStr: "",
fileName: "",
}),
(this.exportDialog = false);
},
// 导入物流单号
uploadfile(file) {
let _this = this;
let arr = file.type.split("/");
let ext = "." + arr[1];
let name = file.name;
let reader = new FileReader();
reader.onload = function (e) {
_this.fileData.fileName = name;
_this.fileData.fileBaseStr = e.target.result.substr(
e.target.result.indexOf("base64,") + 7
);
console.log("fileJson", _this.fileData);
};
reader.readAsDataURL(file);
},
// 确认取消订单
showReasondialog() {
this.statFlg = false;
this.FailureReasonFlag = true;
},
changeOwner(data) { searchList() {
this.ownerId = data; this.searchForm.orderBeginTime = this.createRangeTime[0];
this.brokerListAll(); this.searchForm.orderEndTime = this.createRangeTime[1];
console.log("searchList搜索开始");
openLoading(this);
queryOrderList(this.searchForm).then((res) => {
closeLoading(this);
if (res.code == "000000") {
console.log("searchList搜索结束");
this.tableData = res.data.orderSingleDtoList;
this.totalRows = res.data.totalNum;
}
});
},
resetForm() {
console.log("resetForm重置");
this.activeName = "all";
this.createRangeTime = "";
this.searchForm = {
showStatus: -1,
storeId: this.$route.query.storeId,
goodsName: "",
prescriberName: "",
orderBeginTime: "",
orderEndTime: "",
orderNo: "",
receiver: "",
orderDate: "",
brokerId: "",
ownerId: "",
saleType: 0,
pageNo: 1,
pageSize: 10,
};
this.ownerId = "";
this.searchList();
this.brokerOwnerListAll();
this.brokerListAll();
},
handleSizeChange(val) {
this.searchForm.pageSize = val;
this.searchForm.pageNo = 1;
this.searchList();
},
handleNumChange(val) {
this.searchForm.pageNo = val;
this.searchList();
},
handleClick(tab, event) {
//-1全部,1已完成,2已发货,3待发货,4待支付,5交易关闭
if (this.activeName == "all") {
//全部
this.searchForm.showStatus = -1;
} else if (this.activeName == "first") {
//等待买家付款
this.searchForm.showStatus = 4;
} else if (this.activeName == "second") {
//待发货
this.searchForm.showStatus = 3;
} else if (this.activeName == "third") {
//已发货
this.searchForm.showStatus = 2;
} else if (this.activeName == "fourth") {
//交易成功
this.searchForm.showStatus = 1;
} else if (this.activeName == "five") {
//交易关闭
this.searchForm.showStatus = 5;
} }
this.searchForm.pageNo = 1;
this.searchList();
},
//关闭交易
closeTrade(row) {
this.closeTradeDialog = true;
},
cancelTrade() {
this.closeTradeDialog = false;
},
submitTrade() {
this.closeTradeDialog = false;
},
//修改价格
changePrice(row) {
this.changePriceDialog = true;
},
cancelPrice() {
this.changePriceDialog = false;
},
submitPrice() {
this.changePriceDialog = false;
},
//发货
sendGoods(row) {
this.sendGoodsDialog = true;
this.dialogTitle = "发货设置";
this.sendSetForm = row;
},
closeSendSet(val) {
console.log("关闭,val.type:" + val.type);
//保存操作
if (val.type == 2) {
console.log("刷新列表resetForm");
this.resetForm(); //更新列表
}
this.sendGoodsDialog = false;
},
//配送
distribute(row) {
this.sendGoodsDialog = true;
this.dialogTitle = "配送设置";
this.sendSetForm = row;
},
//查看物流
viewLogistics(row) {
console.log("row-----", row);
expressInfo({ expressNo: row.expressNo,receiverMobile:row.receiverMobile }).then((res) => {
if (res.code == "000000") {
this.expressData = [...res.data.data, ...this.expressData];
this.logisticeInfo = `${row.expressName} ${row.expressNo}`;
this.expressForm.order = row;
this.expressForm.company = `${row.expressName}`;
this.expressForm.no = `${row.expressNo}`;
this.expressForm.extendMessage = `${row.remark}`;
this.showStatus = row.showStatus;
this.viewLogisticsDialog = true;
}
});
},
cancelView() {
this.viewLogisticsDialog = false;
},
copyTxt() {
let txt = document.getElementById("copyInput");
txt.value = this.logisticeInfo;
// if (navigator.userAgent.match(/(iPhone|iPod|iPad|Mac);?/i)) {
if (
navigator.userAgent.indexOf("Safari") > -1 &&
navigator.userAgent.indexOf("Chrome") < 1
) {
var el = document.createElement("input");
el.value = txt.value; //要复制的内容
el.style.opacity = "0";
document.body.appendChild(el);
var editable = el.contentEditable;
var readOnly = el.readOnly;
el.contentEditable = true;
el.readOnly = false;
const range = document.createRange();
range.selectNodeContents(el);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
el.setSelectionRange(0, 999999);
el.contentEditable = editable;
el.readOnly = readOnly;
var ret = document.execCommand("copy");
el.blur();
} else {
txt.select(); //选择对象
document.execCommand("copy");
}
this.$message.success("复制成功");
},
//配送完成
distributeComplete(row) {
this.disCompleteDialog = true;
this.disCompleteData = row;
},
cancelDis() {
this.disCompleteDialog = false;
},
//确认配送完成
submitDisComplete() {
let para = this.disCompleteData;
para.type = 3;
updateExpress(para).then((res) => {
if (res.code == "000000") {
this.$message.success("操作成功");
this.disCompleteDialog = false;
this.resetForm(); //更新列表
} else {
this.$message.error(res.message);
}
});
},
//查看详情
goDetail(row) {
this.$router.push({
path: `/order-detail`,
query: {
id: row.id,
storeId: this.searchForm.storeId,
storeType: row.storeType,
},
});
},
openTuiDialog(item) {
this.tuiForm.order = item;
this.tuiForm.money = toDecimal2(item.amount);
this.showTuiDialog = true;
},
confirmTui() {
if (this.userType == null || this.userType == "") {
this.$message.error("请选择退款对象");
return;
}
refundApply({
orderId: this.tuiForm.order.id,
userType: this.userType,
refundReason: this.tuiForm.refundReason,
}).then((res) => {
if (res.code == "000000") {
this.$message.success("操作成功");
this.showTuiDialog = false;
this.searchList();
} else {
this.$message.success(`操作失败:${res.message},请重试`);
}
});
},
// 修改物流单号
updateOrderNo() {
this.viewLogisticsDialog = false;
this.showOrderNoFlag = true;
},
confirmExpressNo() {
if (this.expressForm.company == null || this.expressForm.company == "") {
this.$message.error("请填写快递公司");
return;
}
if (this.expressForm.no == null || this.expressForm.no == "") {
this.$message.error("请填写快递单号");
return;
}
updateExpressNo({
orderId: this.expressForm.order.id,
expressName: this.expressForm.company,
expressNo: this.expressForm.no,
remark: this.expressForm.extendMessage,
}).then((res) => {
if (res.code == "000000") {
this.$message.success("操作成功");
this.showOrderNoFlag = false;
this.searchList();
} else {
this.$message.success(`操作失败:${res.message},请重试`);
}
});
},
exportOrder() {
const {
goodsName,
orderNo,
receiver,
orderDate,
storeId,
brokerId,
ownerId,
prescriberName,
orderBeginTime,
orderEndTime,
saleType,
} = this.searchForm;
getOrdersExportUrl({
goodsName,
orderNo,
receiver,
orderDate,
storeId,
brokerId,
ownerId,
prescriberName,
orderBeginTime,
orderEndTime,
saleType,
}).then((res) => {
if (res.code != "000000") {
this.$message({ message: res.message, type: "error" });
return;
}
window.open(res.data);
});
},
// 云鹊店铺-订单管理-药代列表
brokerListAll() {
brokerListAll({ ownerId: this.ownerId }).then((res) => {
closeLoading(this);
if (res.code == "000000") {
this.brokerList = res.data;
}
});
}, },
filters: { //云鹊店铺-订单管理-招募人列表
toFixed2: function (value) { brokerOwnerListAll() {
let val; brokerOwnerListAll().then((res) => {
if (value) { closeLoading(this);
val = (value/100).toFixed(2); if (res.code == "000000") {
}else { this.brokerOwnerList = res.data;
val = 0.00
} }
return val; });
},
changeOwner(data) {
this.ownerId = data;
this.brokerListAll();
},
},
filters: {
toFixed2: function (value) {
let val;
if (value) {
val = (value / 100).toFixed(2);
} else {
val = 0.0;
} }
return val;
}, },
} },
};
</script> </script>
<style lang="scss"> <style lang="scss">
.order-manage-wrapper{ .order-manage-wrapper {
.order-manage-content{ .el-step__icon {
background: #fff; border: none;
padding: 10px; background: transparent;
.header-title{ }
padding: 10px 12px; .el-step__title {
font-size: 13px; font-size: 14px;
color: #449284; }
border-bottom: 1px solid #efefef;
} .el-step:last-of-type .el-step__line {
display: block !important;
height: 30%;
}
.dot {
border-radius: 50%;
height: 8px;
width: 8px;
border: 1px solid #999999;
background-color: #b8b8b8;
}
.order-manage-content {
background: #fff;
padding: 10px;
.button-container {
margin-bottom: 10px;
} }
.el-button--text{ .header-title {
padding: 10px 12px;
font-size: 13px;
color: #449284; color: #449284;
font-size: 14px; border-bottom: 1px solid #efefef;
&::after{ }
content: ''; }
.el-button--text {
color: #449284;
font-size: 14px;
&::after {
content: "";
position: relative;
height: 14px;
/*border-right: 1px solid #EBEEF5;*/
border-right: 1px solid #aaaaaa;
padding-right: 10px;
}
&:last-of-type {
&::after {
content: "";
position: relative; position: relative;
width: 1px;
height: 14px; height: 14px;
/*border-right: 1px solid #EBEEF5;*/ border-right: none;
border-right: 1px solid #aaaaaa;
padding-right: 10px;
}
&:last-of-type{
&::after{
content: '';
position: relative;
width: 1px;
height: 14px;
border-right: none;
}
} }
} }
} }
.el-tabs__item.is-active{ }
color: #449284; .el-tabs__item.is-active {
color: #449284;
}
.el-tabs__active-bar {
background-color: #449284;
}
.el-tabs__item:hover {
color: #449284;
}
.view-content {
display: flex;
justify-content: space-between;
.send-status {
margin-left: 5px;
} }
.el-tabs__active-bar{ .view-number {
background-color: #449284; color: #999999;
margin-left: 15px;
margin-right: 15px;
} }
.el-tabs__item:hover{ .center-title {
color: #449284; text-align: center;
} }
.center-subtitle {
.view-content{ text-align: center;
.send-status{ font-size: 13px;
margin-left: 5px; margin-top: 10px;
} color: #999999;
.view-number{
color: #999999;
margin-left: 15px;
margin-right: 15px;
}
.center-title{
text-align: center;
}
.center-subtitle{
text-align: center;
font-size: 13px;
margin-top: 10px;
color: #999999;
}
} }
.hidden-input { }
height: 0; .steps-logistics {
height: 350px;
overflow-y: scroll;
}
.hidden-input {
height: 0;
}
.p-normal {
line-height: 26px;
border-bottom: 1px solid #e4e7ed;
text-overflow: -o-ellipsis-lastline;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
margin: 10px 0;
text-align: center;
&:last-child {
border-bottom: none;
} }
.p-normal{ }
line-height: 26px; .tui-dialog {
border-bottom: 1px solid #E4E7ED; .el-dialog__header {
text-overflow: -o-ellipsis-lastline;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
margin: 10px 0;
text-align: center; text-align: center;
}
.is-disabled {
width: 193px;
}
}
.exportlogistics-dialog {
}
.upload-container {
display: flex;
justify-content: flex-start;
align-items: center;
.file-name {
margin-right: 5px;
}
}
.progress-container {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.progress-content {
width: 150px;
height: 40px;
background: #449284;
border-radius: 5px;
display: flex;
justify-content: center;
align-items: center;
color: #fff;
}
.progress-tag {
width: 150px;
height: 40px;
border: 1px solid #ebeef5;
display: flex;
justify-content: center;
align-items: center;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
margin-bottom: 10px;
position: relative;
.popper__arrow {
position: absolute;
bottom: 0px;
left: 50%;
margin-right: 3px;
transform: translateX(-3px);
&:last-child{ border-bottom-width: 0;
border-bottom: none; &::after {
position: absolute;
display: block;
width: 0;
height: 0;
border-top-color: #fff;
border-left-color: transparent;
border-bottom-color: transparent;
border-right-color: transparent;
border-style: solid;
content: " ";
border-width: 6px;
} }
} }
.tui-dialog { }
.el-dialog__header { .stat-container {
text-align: center; display: flex;
} flex-direction: column;
.is-disabled { justify-content: center;
width: 193px; align-items: center;
.stat-title {
color: #333;
font-size: 16px;
font-weight: bold;
margin-bottom: 10px;
}
.stat-result {
display: flex;
justify-content: space-between;
width: 360px;
.failure {
color: #e63c3c;
} }
} }
}
.importUrl {
color: #449284;
}
</style> </style>
const checkBarcode = (rule, value, cb) => { const checkBarcode = (rule, value, cb) => {
const valedBarcode = new RegExp("[\\u4E00-\\u9FFF]+","g"); const valedBarcode = new RegExp("[\\u4E00-\\u9FFF]+","g");
if(value && valedBarcode.test(value)) cb(new Error('条形码不能输入中文')); if(value && valedBarcode.test(value)) cb(new Error('条形码不能输入中文'));
cb(); cb();
}; };
...@@ -100,7 +100,16 @@ const rules = { ...@@ -100,7 +100,16 @@ const rules = {
{ required: true, message: "请选择商品类型", trigger: "change" } { required: true, message: "请选择商品类型", trigger: "change" }
], ],
optPrice: [ optPrice: [
{ required: true, message: "请输入零售价", trigger: "blur" }, { required: true, message: "请输入价格", trigger: "blur" },
],
saleType:[
{ required: true, message: "请选择销售方式", trigger: "change" }
],
stock: [
{ required: true, message: "请输入库存", trigger: "blur" },
],
minWhole: [
{ required: true, message: "请输入最小起批", trigger: "blur" },
], ],
// introduce: [ // introduce: [
// { required: true, message: "请输入圈子介绍", trigger: "blur" }, // { required: true, message: "请输入圈子介绍", trigger: "blur" },
...@@ -119,4 +128,3 @@ export const originRules1 = rules1; ...@@ -119,4 +128,3 @@ export const originRules1 = rules1;
export const originRules2 = rules2; export const originRules2 = rules2;
export const originRules = rules; export const originRules = rules;
\ No newline at end of file
...@@ -171,7 +171,7 @@ ...@@ -171,7 +171,7 @@
uploadPersonExcel uploadPersonExcel
} from "@/utils/education/educationApi"; } from "@/utils/education/educationApi";
import Sortable from "sortablejs"; import Sortable from "sortablejs";
let vm = null; let vm = null;
export default { export default {
components: { components: {
...@@ -198,7 +198,7 @@ ...@@ -198,7 +198,7 @@
callback(new Error(`请输入0~100正整数`)); callback(new Error(`请输入0~100正整数`));
} }
}; };
let checkOrgListName = (rule, value, callback) => { let checkOrgListName = (rule, value, callback) => {
console.log(rule, value, callback); console.log(rule, value, callback);
// const val = parseFloat(value); // const val = parseFloat(value);
...@@ -210,7 +210,7 @@ ...@@ -210,7 +210,7 @@
// callback(new Error(`请输入0~100正整数`)); // callback(new Error(`请输入0~100正整数`));
// } // }
}; };
return { return {
idTypeProject: "", idTypeProject: "",
...@@ -238,7 +238,7 @@ ...@@ -238,7 +238,7 @@
}, },
projectId: null, projectId: null,
peopleLevel: null, peopleLevel: null,
orgListIndex: 0, orgListIndex: 0,
pickerOptions0: { pickerOptions0: {
disabledDate: time => { disabledDate: time => {
...@@ -260,7 +260,7 @@ ...@@ -260,7 +260,7 @@
} }
}, },
fileList: [], fileList: [],
//设定机构 数据 //设定机构 数据
getRowKeys(row) { getRowKeys(row) {
return row.id; return row.id;
...@@ -410,9 +410,9 @@ ...@@ -410,9 +410,9 @@
this.formOrganization.pageNum = 1; this.formOrganization.pageNum = 1;
this.formOrganization.name = ""; this.formOrganization.name = "";
this.formOrganization.administrativeIdList = ["0"]; this.formOrganization.administrativeIdList = ["0"];
this.formOrganization.level = "-1"; this.formOrganization.level = "-1";
}, },
//初始化范围树 //初始化范围树
setTreeData(administrative) { setTreeData(administrative) {
let treeIdList = []; let treeIdList = [];
...@@ -502,7 +502,7 @@ ...@@ -502,7 +502,7 @@
halfCheckedTree halfCheckedTree
); );
//重构内容 //重构内容
this.allSelectedKeys = allSelectedKeys; this.allSelectedKeys = allSelectedKeys;
this.initCheckList(allSelectedKeys); this.initCheckList(allSelectedKeys);
//console.log("allSelectedKeys", allSelectedKeys); //console.log("allSelectedKeys", allSelectedKeys);
...@@ -511,7 +511,6 @@ ...@@ -511,7 +511,6 @@
this.updatedTree = true; this.updatedTree = true;
}, },
getTreeCheck() { getTreeCheck() {
debugger
//重构归并树 //重构归并树
let checkedTree = operationData.getSimpleCheckedNodes( let checkedTree = operationData.getSimpleCheckedNodes(
this.$refs.tree.store this.$refs.tree.store
...@@ -535,7 +534,7 @@ ...@@ -535,7 +534,7 @@
console.log(treeKeyList); console.log(treeKeyList);
this.$refs.tree.setCheckedKeys(treeKeyList); this.$refs.tree.setCheckedKeys(treeKeyList);
}, },
//删除label节点 同步树结构 //删除label节点 同步树结构
handleCloseTree(tag) { handleCloseTree(tag) {
if (this.status4Flag != 1) { if (this.status4Flag != 1) {
...@@ -617,7 +616,7 @@ ...@@ -617,7 +616,7 @@
); );
console.log("", this.changedPerson, "", this.changedPerson2); console.log("", this.changedPerson, "", this.changedPerson2);
}, },
//改变小生态 table check //改变小生态 table check
selectionChangeEcology(rows) { selectionChangeEcology(rows) {
this.changedEcology = []; this.changedEcology = [];
...@@ -775,7 +774,7 @@ ...@@ -775,7 +774,7 @@
if (res.code == "000000") { if (res.code == "000000") {
this.tableOrganization = res.data.organizationList; this.tableOrganization = res.data.organizationList;
this.totalOrganization = res.data.total; this.totalOrganization = res.data.total;
vm.initOrganizationStatus(); vm.initOrganizationStatus();
} else { } else {
vm.$message(res.message); vm.$message(res.message);
...@@ -800,7 +799,7 @@ ...@@ -800,7 +799,7 @@
if (res.code == "000000") { if (res.code == "000000") {
this.tableOrganization = res.data.organizationList; this.tableOrganization = res.data.organizationList;
this.totalOrganization = res.data.total; this.totalOrganization = res.data.total;
vm.initOrganizationStatus(); vm.initOrganizationStatus();
} else { } else {
vm.$message(res.message); vm.$message(res.message);
...@@ -844,7 +843,7 @@ ...@@ -844,7 +843,7 @@
console.log("scope", scope); console.log("scope", scope);
return scope; return scope;
}, },
//选择搜索机构方式 //选择搜索机构方式
searchPeople() { searchPeople() {
this.formPerson.pageNum = 1; this.formPerson.pageNum = 1;
...@@ -857,7 +856,7 @@ ...@@ -857,7 +856,7 @@
this.getPeopleChoose(); this.getPeopleChoose();
} }
}, },
//判断项目范围选择 //判断项目范围选择
showScopeType() { showScopeType() {
if (this.projectStatus == "" || this.projectStatus == 1) { if (this.projectStatus == "" || this.projectStatus == 1) {
...@@ -916,7 +915,7 @@ ...@@ -916,7 +915,7 @@
this.changedOrganization = []; this.changedOrganization = [];
this.changedOrganization2 = []; this.changedOrganization2 = [];
}, },
initTags(value) { initTags(value) {
//console.log('value',value,'optionsComponent',this.optionsComponent); //console.log('value',value,'optionsComponent',this.optionsComponent);
this.tagsComponent = []; this.tagsComponent = [];
...@@ -937,13 +936,13 @@ ...@@ -937,13 +936,13 @@
} }
console.log("this.optionsComponent值:", this.optionsComponent); console.log("this.optionsComponent值:", this.optionsComponent);
}, },
// add 校验输入是否为整数 // add 校验输入是否为整数
checkIntFun(str) { checkIntFun(str) {
let r = /^\+?[0-9]*$/; let r = /^\+?[0-9]*$/;
return r.test(str); return r.test(str);
}, },
hideErrorInfo(str) { hideErrorInfo(str) {
if (str) { if (str) {
this.customError[str] = { this.customError[str] = {
...@@ -954,14 +953,14 @@ ...@@ -954,14 +953,14 @@
this.customError = {}; this.customError = {};
} }
}, },
dioErrorPop(str) { dioErrorPop(str) {
return this.$message({ return this.$message({
message: str, message: str,
type: "warning" type: "warning"
}); });
}, },
blurName() { blurName() {
vm.visibleName = false; vm.visibleName = false;
setTimeout(function() { setTimeout(function() {
...@@ -1338,4 +1337,3 @@ ...@@ -1338,4 +1337,3 @@
left: 0; left: 0;
} }
</style> </style>
\ No newline at end of file
...@@ -4414,12 +4414,12 @@ vjs.SeekBar.prototype.onMouseMove = function(event){ ...@@ -4414,12 +4414,12 @@ vjs.SeekBar.prototype.onMouseMove = function(event){
}; };
vjs.SeekBar.prototype.onMouseUp = function(event){ vjs.SeekBar.prototype.onMouseUp = function(event){
debugger
vjs.Slider.prototype.onMouseUp.call(this, event); vjs.Slider.prototype.onMouseUp.call(this, event);
this.player_.scrubbing = false; this.player_.scrubbing = false;
if (this.videoWasPlaying) { if (this.videoWasPlaying) {
debugger
this.player_.play(); this.player_.play();
} }
}; };
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册