YY 2 anos atrás
pai
commit
4757aaf17f

+ 1 - 1
src/views/selfShop/order/detail_orderDetail.vue

@@ -332,7 +332,7 @@ export default {
       if (this.$checkRes(res)) {
         this.$set(this, `order_processList`, res.data);
       }
-      // 减免方式
+      // 快递类型
       res = await this.dictQuery({ code: 'transport_type' });
       if (this.$checkRes(res)) {
         this.$set(this, `transport_typeList`, res.data);

+ 18 - 20
src/views/zr/zrGoods/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="goods">
-    <template v-if="view === 'list'">
+    <span v-if="view === 'list'">
       <data-search :fields="searchFields" v-model="searchInfo" @query="search">
         <template #status>
           <el-option v-for="i in statusList" :key="i.value" :label="i.label" :value="i.value"></el-option>
@@ -18,25 +18,23 @@
         @puton="toPuton"
         @delete="toDelete"
       ></data-table>
-    </template>
-    <template v-else>
-      <el-row>
-        <el-col :span="24" style="margin: 0 0 10px 0">
-          <el-col :span="2"><el-button type="primary" size="mini" @click="toBack()">返回</el-button></el-col>
-          <el-col :span="2"><el-button type="primary" size="mini" @click="toSave(form)">保存</el-button></el-col>
-        </el-col>
-        <el-col :span="24">
-          <data-form :fields="infoFields" :rules="rules" v-model="form" labelWidth="150px" @save="toSave">
-            <template #status>
-              <el-option v-for="i in statusList" :key="i.value" :label="i.label" :value="i.value"></el-option>
-            </template>
-            <template #brief>
-              <editor v-model="form.brief" url="/files/point/zrGoods/upload" />
-            </template>
-          </data-form>
-        </el-col>
-      </el-row>
-    </template>
+    </span>
+    <el-row v-if="view === 'info'">
+      <el-col :span="24" style="margin: 0 0 10px 0">
+        <el-col :span="2"><el-button type="primary" size="mini" @click="toBack()">返回</el-button></el-col>
+        <el-col :span="2"><el-button type="primary" size="mini" @click="toSave(form)">保存</el-button></el-col>
+      </el-col>
+      <el-col :span="24">
+        <data-form :fields="infoFields" :rules="rules" v-model="form" labelWidth="150px" @save="toSave">
+          <template #status>
+            <el-option v-for="i in statusList" :key="i.value" :label="i.label" :value="i.value"></el-option>
+          </template>
+          <template #brief>
+            <editor v-model="form.brief" url="/files/point/zrGoods/upload" />
+          </template>
+        </data-form>
+      </el-col>
+    </el-row>
   </div>
 </template>
 

+ 60 - 37
src/views/zr/zrOrder/detail_orderDetail.vue

@@ -49,28 +49,20 @@
             <el-col :span="6">下单时间</el-col>
             <el-col :span="18" class="other">{{ form.buy_time }}</el-col>
           </el-col>
-          <el-col :span="24" class="bode">
+          <el-col :span="24" class="bode" v-if="form.status == '3'">
             <el-col :span="6">寄出运单号</el-col>
             <el-col :span="18" class="other">{{ transport.shop_transport_no || '暂无单号' }}</el-col>
           </el-col>
-          <el-col :span="24" class="bode">
+          <el-col :span="24" class="bode" v-if="form.status == '3'">
             <el-col :span="6">寄出快递公司</el-col>
             <el-col :span="18" class="other">{{ transport.shop_transport_name || '暂无快递信息' }}</el-col>
           </el-col>
           <el-col :span="24" class="form">
             <el-form :model="form" ref="form" label-width="100px" class="demo-ruleForm">
-              <el-form-item
-                label="寄出运单号"
-                prop="shop_transport_no"
-                v-if="(form.status == '1' || form.status == '2') && (!transport.shop_transport_no || !transport.shop_transport_name)"
-              >
+              <el-form-item label="寄出运单号" prop="shop_transport_no">
                 <el-input v-model="form.shop_transport_no" placeholder="请输入运单号,快递公司,同时填入" size="small"></el-input>
               </el-form-item>
-              <el-form-item
-                label="快递公司"
-                prop="shop_transport_type"
-                v-if="(form.status == '1' || form.status == '2') && (!transport.shop_transport_no || !transport.shop_transport_name)"
-              >
+              <el-form-item label="快递公司" prop="shop_transport_type">
                 <el-select
                   v-model="form.shop_transport_type"
                   filterable
@@ -86,13 +78,15 @@
                   <el-option v-for="item in shop_transport_typeList" :key="item.id" :label="item.label" :value="item.value"> </el-option>
                 </el-select>
               </el-form-item>
-              <el-form-item label="订单状态" prop="status">
-                <el-select v-model="form.status" clearable filterable placeholder="请选择订单状态" size="small" style="width: 100%">
-                  <el-option v-for="i in order_processList" :key="i.label" :label="i.label" :value="i.value"> </el-option>
+              <el-form-item label="快递类型" prop="transport_type">
+                <el-select v-model="form.transport_type" clearable filterable placeholder="请选择快递类型" size="small" style="width: 100%">
+                  <el-option v-for="i in transport_typeList" :key="i.label" :label="i.label" :value="i.value"> </el-option>
                 </el-select>
               </el-form-item>
               <el-form-item>
-                <el-button type="primary" @click="onSubmit()">保存</el-button>
+                <el-button type="primary" @click="onSubmit('2')" v-if="form.status == '1'"> 发货 </el-button>
+                <el-button type="primary" @click="onSubmit('3')" v-if="form.status == '2'"> 确认收货 </el-button>
+                <el-button type="primary" @click="onSubmit('2')" v-if="form.status == '2'"> 保存 </el-button>
               </el-form-item>
             </el-form>
           </el-col>
@@ -129,7 +123,7 @@ const { mapActions: sot } = createNamespacedHelpers('zrSot');
 
 export default {
   name: 'form-1',
-  props: {},
+  props: { id: { type: String } },
   components: {},
   data: function () {
     return {
@@ -154,6 +148,7 @@ export default {
       order_processList: [],
       // 快递公司
       shop_transport_typeList: [],
+      transport_typeList: [],
       loading: false,
     };
   },
@@ -181,8 +176,15 @@ export default {
           let arr = await this.dictQuery({ code: 'transport_company', value: res.data.transport.shop_transport_type });
           if (this.$checkRes(arr)) {
             let type = arr.data.find((i) => i.value == res.data.transport.shop_transport_type);
-            if (type) res.data.transport.shop_transport_name = type.label;
+            if (type) {
+              res.data.transport.shop_transport_name = type.label;
+              this.querySearch(type.label);
+            }
             this.$set(this, `transport`, res.data.transport);
+            this.$set(this.form, `shop_transport_type`, this.transport.shop_transport_type);
+            if (this.transport.transport_type == undefined) this.$set(this.form, `transport_type`, '0');
+            else this.$set(this.form, `transport_type`, this.transport.transport_type);
+            this.$set(this.form, `shop_transport_no`, this.transport.shop_transport_no);
           }
           res = await this.sotFetch(this.id);
           if (this.$checkRes(res)) {
@@ -206,24 +208,44 @@ export default {
     },
     handleSelect() {},
     // 提交
-    async onSubmit() {
-      let form = this.form;
-      let transport = {};
-      let res;
-      if (form.shop_transport_no && form.shop_transport_type) {
-        transport.shop_transport_no = form.shop_transport_no;
-        transport.shop_transport_type = form.shop_transport_type;
-        form.transport = transport;
-      }
-      if (form.id) res = await this.update(form);
-      if (this.$checkRes(res)) {
-        this.$message({ type: `success`, message: `维护信息成功` });
-        this.search();
+    async onSubmit(val) {
+      var form = this.form;
+      var transport = {};
+      var res;
+      if (form.shop_transport_no != undefined) transport.shop_transport_no = form.shop_transport_no;
+      if (form.shop_transport_type != undefined) transport.shop_transport_type = form.shop_transport_type;
+      if (form.transport_type) transport.transport_type = form.transport_type;
+      form.transport = transport;
+      if (val != undefined || val != '') form.status = val;
+      if (form.shop_transport_no == undefined || form.shop_transport_type == undefined) {
+        this.$confirm('快递信息未填写完整,是否保存发货', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning',
+        }).then(async () => {
+          if (form.id) res = await this.update(form);
+          if (this.$checkRes(res)) {
+            this.$message({ type: `success`, message: `维护信息成功` });
+            this.search();
+          }
+        });
+      } else {
+        this.$confirm('是否确认保存', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning',
+        }).then(async () => {
+          if (form.id) res = await this.update(form);
+          if (this.$checkRes(res)) {
+            this.$message({ type: `success`, message: `维护信息成功` });
+            this.search();
+          }
+        });
       }
     },
     // 返回
     toBack() {
-      window.history.go('-1');
+      this.$emit('toBack');
     },
     // 查询其他信息
     async searchOther() {
@@ -233,13 +255,14 @@ export default {
       if (this.$checkRes(res)) {
         this.$set(this, `order_processList`, res.data);
       }
+      // 快递类型
+      res = await this.dictQuery({ code: 'transport_type' });
+      if (this.$checkRes(res)) {
+        this.$set(this, `transport_typeList`, res.data);
+      }
     },
   },
-  computed: {
-    id() {
-      return this.$route.query.id;
-    },
-  },
+  computed: {},
   metaform() {
     return { title: this.$route.meta.title };
   },

+ 20 - 4
src/views/zr/zrOrder/index.vue

@@ -2,9 +2,12 @@
   <div id="card-1">
     <el-row>
       <el-col :span="24" class="main animate__animated animate__backInRight">
-        <el-col :span="24" class="one"> <span>尊荣订单</span> </el-col>
-        <detail-1 v-if="num == '1'" @toDeliver="toDeliver" :statusList="statusList"></detail-1>
-        <detail-2 v-else-if="num == '2'" :deliverList="list" @toBack="toBack"></detail-2>
+        <span v-if="view === 'list'">
+          <el-col :span="24" class="one"> <span>尊荣订单</span> </el-col>
+          <detail-1 v-if="num == '1'" @toDeliver="toDeliver" :statusList="statusList" @toDetail="toDetail"></detail-1>
+          <detail-2 v-else-if="num == '2'" :deliverList="list" @toBack="toBack"></detail-2>
+        </span>
+        <detail_orderDetail v-if="view === 'info'" :id="id" @toBack="toBacks"></detail_orderDetail>
       </el-col>
     </el-row>
   </div>
@@ -18,13 +21,19 @@ const { mapActions: dictData } = createNamespacedHelpers('dictData');
 export default {
   name: 'card-1',
   props: {},
-  components: { detail1: () => import('./parts/detail-1.vue'), detail2: () => import('./parts/detail-2.vue') },
+  components: {
+    detail1: () => import('./parts/detail-1.vue'),
+    detail2: () => import('./parts/detail-2.vue'),
+    detail_orderDetail: () => import('./detail_orderDetail.vue'),
+  },
   data: function () {
     return {
+      view: 'list',
       num: '1',
       list: [],
       // 订单状态
       statusList: [],
+      id: '',
     };
   },
   async created() {
@@ -50,9 +59,16 @@ export default {
         this.$set(this, 'num', '2');
       }
     },
+    toDetail(data) {
+      this.$set(this, `id`, data);
+      this.$set(this, `view`, 'info');
+    },
     toBack() {
       this.$set(this, 'num', '1');
     },
+    toBacks() {
+      this.view = 'list';
+    },
   },
   computed: {
     ...mapState(['user']),

+ 2 - 1
src/views/zr/zrOrder/parts/detail-1.vue

@@ -92,7 +92,8 @@ export default {
     },
     // 详情
     toDetail({ data }) {
-      this.$router.push({ path: '/zr/zrOrder/detail_orderDetail', query: { id: data._id } });
+      this.$emit('toDetail', data._id);
+      // this.$router.push({ path: '/zr/zrOrder/detail_orderDetail', query: { id: data._id } });
     },
     toClose() {
       this.searchForm = {};