戴艳蓉 3 years ago
parent
commit
81d055815a
27 changed files with 2056 additions and 2249 deletions
  1. BIN
      public/static/收货地址模板.xlsx
  2. 6 6
      src/apis/service/sheetOrder/zxReturn/index.js
  3. 329 0
      src/components/addr-add-edit-modal/index.vue
  4. 0 0
      src/components/addr-add-edit-modal/收货地址新建OR编辑
  5. 78 142
      src/components/in-addr-model/index.vue
  6. 2 1
      src/styles/index.scss
  7. 1 1
      src/views/sheetOrder/zxAfterSale/components/returnExpress.vue
  8. 39 104
      src/views/sheetOrder/zxAfterSaleOrder/columns.js
  9. 77 128
      src/views/sheetOrder/zxAfterSaleOrder/components/addEdit.vue
  10. 228 0
      src/views/sheetOrder/zxAfterSaleOrder/components/addEditModel.vue
  11. 162 411
      src/views/sheetOrder/zxAfterSaleOrder/components/return-record.vue
  12. 8 18
      src/views/sheetOrder/zxAfterSaleOrder/components/returnCheck.vue
  13. 29 61
      src/views/sheetOrder/zxAfterSaleOrder/detail.vue
  14. 91 209
      src/views/sheetOrder/zxAfterSaleOrder/index.vue
  15. 0 23
      src/views/sheetOrder/zxDiffOrder/index.vue
  16. 67 547
      src/views/sheetOrder/zxOrder/addEdit.vue
  17. 24 101
      src/views/sheetOrder/zxOrder/components/addForm.vue
  18. 3 16
      src/views/sheetOrder/zxOrder/components/order-out-table.vue
  19. 24 20
      src/views/sheetOrder/zxOrder/detail.vue
  20. 33 74
      src/views/sheetOrder/zxReturn/columns.js
  21. 284 0
      src/views/sheetOrder/zxReturn/components/addEdit.vue
  22. 39 0
      src/views/sheetOrder/zxReturn/components/columnsForm.js
  23. 58 0
      src/views/sheetOrder/zxReturn/components/showForm.vue
  24. 281 0
      src/views/sheetOrder/zxReturn/detail.vue
  25. 103 177
      src/views/sheetOrder/zxReturn/index.vue
  26. 90 187
      src/views/sheetOrder/zxSheet/components/addForm.vue
  27. 0 23
      src/views/sheetOrder/zxSheet/index.vue

BIN
public/static/收货地址模板.xlsx


+ 6 - 6
src/apis/service/sheetOrder/zxReturn/index.js

@@ -3,18 +3,18 @@ import http from "@/apis/axios";
 const api = "admin/";
 export default {
   // 添加
-  add: (data, params) => http(api + "add", data, "post", params),
+  add: (data, params) => http(api + "reorderzx", data, "post", params),
   // 删除
-  delete: (data, params) => http(api + "delete", data, "post", params),
+  delete: (data, params) => http(api + "reorderdel", data, "post", params),
   // 分页查询
-  list: (data, params) => http(api + "list", data, "post", params),
+  list: (data, params) => http(api + "reorderlist", data, "post", params),
   // 详情
-  detail: (data, params) => http(api + "detail", data, "post", params),
+  detail: (data, params) => http(api + "reorderinfo", data, "post", params),
   // 更新
   update: (data, params) => http(api + "update", data, "post", params),
   // 修改状态
-  status: (data, params) => http(api + "accountstatus", data, "post", params),
-  // 
+  status: (data, params) => http(api + "reorderexam", data, "post", params),
+  // 获取原因
   getReason: (data, params) => http(api + "resultlist", data, "post", params),
 
 };

+ 329 - 0
src/components/addr-add-edit-modal/index.vue

@@ -0,0 +1,329 @@
+<template>
+  <el-dialog
+    :title="title"
+    :center="true"
+    align="left"
+    top="8vh"
+    width="600px"
+    @close="closeModel"
+    :close-on-click-modal="false"
+    :visible.sync="showModelThis"
+    v-loading="loading"
+    element-loading-text="拼命加载中"
+    element-loading-spinner="el-icon-loading"
+    element-loading-background="rgba(0, 0, 0, 0.8)"
+    append-to-body
+  >
+    <el-card style="margin-top: -20px">
+      <el-form
+        ref="ruleForm"
+        :model="ruleForm"
+        status-icon
+        :rules="rulesThis"
+        label-width="135px"
+        class="demo-ruleForm"
+      >
+        <el-form-item label="收货总数" prop="receipt_quantity">
+          <el-input
+            v-model="ruleForm.receipt_quantity"
+            placeholder="收货总数"
+          />
+        </el-form-item>
+        <el-form-item label="最晚收货日期" prop="arrive_time">
+          <el-date-picker
+            v-model="ruleForm.arrive_time"
+            type="date"
+            style="width: 100%"
+            placeholder="最晚收货日期"
+            value-format="yyyy-MM-dd"
+            :picker-options="pickerOptions"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="收货联系人" prop="contactor">
+          <el-input v-model="ruleForm.contactor" maxlength="250" placeholder="收货联系人" />
+        </el-form-item>
+
+        <el-form-item label="收货联系电话" prop="mobile">
+          <el-input v-model="ruleForm.mobile" placeholder="收货联系电话" />
+        </el-form-item>
+        <el-form-item v-if="type == '1'" label="省市区(文件导入)" prop="in_addr">
+          <el-input
+            v-model="ruleForm.in_addr"
+            disabled
+            placeholder="省市区(文件导入)"
+          />
+        </el-form-item>
+        <el-form-item
+          :label="type == '1' ? '省市区(系统解析)' : '收货省市区'"
+          prop="addr_code"
+        >
+          <select-area
+            :value="ruleForm.addr_code"
+            placeholder="收货省市区"
+            @selectChange="select_area_change($event)"
+          />
+        </el-form-item>
+        <el-form-item label="详细地址" prop="addr">
+          <el-input v-model="ruleForm.addr" maxlength="250" placeholder="详细地址" />
+        </el-form-item>
+        <div style="text-align: right">
+          <el-button type="primary" @click="submitForm">保 存 </el-button>
+          <el-button @click="showModelThis = false">{{
+            isDetail ? "关 闭" : "取 消"
+          }}</el-button>
+        </div>
+      </el-form>
+    </el-card>
+  </el-dialog>
+</template>
+
+<script>
+import { isnumber, isMobile } from "@/utils/validate";
+import { province_list, city_list, county_list } from "@/assets/js/area-data";
+export default {
+  name: "AddrAddEditModal",
+  props: ["showModel", "index", "sitem", "type"],
+  data() {
+    const validateWeight = (rule, value, callback) => {
+      if (value === "") {
+        callback(new Error("不能为空!"));
+      } else {
+        if (!isnumber(value)) {
+          callback(new Error("仅支持整数!"));
+        } else {
+          callback();
+        }
+      }
+    };
+    const validatemobile = (rule, value, callback) => {
+      if (value === "") {
+        callback(new Error("手机号不能为空!"));
+      } else {
+        if (!isMobile(value)) {
+          callback(new Error("手机号格式不正确!"));
+        } else {
+          callback();
+        }
+      }
+    };
+    return {
+      roleList: [],
+      loading: false,
+      title: "",
+      organizeList: [],
+      pickerOptions: {
+        disabledDate: (time) => {
+          return time.getTime() < new Date().valueOf();
+        },
+      },
+      showModelThis: this.showModel,
+      ruleForm: {
+        arrive_time: "",
+        receipt_quantity: "",
+        contactor: "",
+        mobile: "",
+        addr_code: [],
+        addr: "",
+        id: "",
+      },
+      rulesThis: this.rules,
+      rules: {
+        arrive_time: [
+          {
+            required: true,
+            message: "最晚收货日期不能为空",
+            trigger: "change",
+          },
+        ],
+        receipt_quantity: [
+          {
+            required: true,
+            validator: validateWeight,
+            trigger: "blur",
+          },
+        ],
+
+        contactor: [
+          {
+            required: true,
+            trigger: "blur",
+            message: "联系人不能为空",
+          },
+        ],
+        mobile: [
+          {
+            required: true,
+            validator: validatemobile,
+            trigger: "blur",
+          },
+        ],
+
+        addr_code: [
+          {
+            type: "array",
+            required: true,
+            message: "收货省市区不能为空",
+            trigger: "change",
+          },
+        ],
+        addr: [
+          {
+            required: true,
+            message: "详细地址不能为空",
+            trigger: "blur",
+          },
+        ],
+      },
+    };
+  },
+  watch: {
+    showModel: function (val) {
+      this.showModelThis = val;
+      if (val) {
+        this.initForm();
+      }
+    },
+    showModelThis(val) {
+      if (!val) {
+        this.$emit("cancel");
+      }
+    },
+  },
+  methods: {
+    closeModel() {
+      console.log("closeModel!!");
+    },
+    itemidChange(e) {
+      this.ruleForm.itemid = e;
+      this.$refs.ruleForm.validateField("itemid");
+    },
+    async initForm() {
+      this.loading = true;
+
+      if (this.index === -1) {
+        this.title = "添加收货地址";
+      } else {
+        this.title = "修改收货地址";
+      }
+      this.rulesThis = this.rules;
+      await this.resetForm();
+      this.loading = false;
+    },
+
+    async resetForm() {
+      // 重置
+      await this.$nextTick(() => {
+        if (this.$refs.ruleForm) {
+          this.$refs.ruleForm.resetFields();
+          this.$refs.ruleForm.clearValidate();
+          console.log(this.sitem);
+          const {
+            arrive_time,
+            receipt_quantity,
+            contactor,
+            mobile,
+            addr_code,
+            addr_code_name,
+            addr,
+            in_addr,
+            id,
+          } = this.sitem;
+          this.ruleForm = {
+            arrive_time: arrive_time || "",
+            receipt_quantity,
+            contactor,
+            mobile,
+            in_addr: in_addr || "",
+            addr_code: addr_code && addr_code.length === 3 ? addr_code : [],
+            addr_code_name: addr_code_name || "",
+            addr,
+            id: id || "",
+          };
+        }
+      });
+    },
+    async submitForm() {
+      await this.$refs.ruleForm.validate(async (valid) => {
+        if (valid) {
+          this.showModelThis = false;
+          this.$emit("refresh", {
+            index: this.index,
+            item: JSON.parse(JSON.stringify(this.ruleForm)),
+          });
+        } else {
+          console.log("error submit!!");
+          return false;
+        }
+      });
+    },
+    //省市区选择
+    select_area_change(e) {
+      this.ruleForm.addr_code = e;
+      this.$refs.ruleForm.validateField("addr_code");
+      if (e && e.length === 3) {
+        this.ruleForm.addr_code_name = this.get_code(e[0], e[1], e[2]).name;
+      } else {
+        this.ruleForm.addr_code_name = "";
+      }
+    },
+    get_code(name1, name2, name3) {
+      let name = "",
+        code = [];
+      if (name1 && name2 && name3) {
+        for (let x in province_list) {
+          if (name1 === province_list[x]) {
+            code.push(x);
+            name += province_list[x];
+            break;
+          }
+        }
+        if (code.length === 1) {
+          for (let y in city_list) {
+            if (name2 === city_list[y]) {
+              code.push(y);
+              name += "/" + city_list[y];
+              break;
+            }
+          }
+        }
+        if (code.length === 2) {
+          for (let z in county_list) {
+            if (name3 === county_list[z]) {
+              code.push(z);
+              name += "/" + county_list[z];
+              break;
+            }
+          }
+        }
+
+        if (code.length === 3) {
+          let str1 = "",
+            str2 = "",
+            isok = false;
+          str1 = code[0].slice(0, 2);
+          str2 = code[1].slice(2, 4);
+          if (
+            code[1].indexOf(str1) === 0 &&
+            code[2].indexOf(str1) === 0 &&
+            code[2].indexOf(str2) == 2
+          ) {
+            isok = true;
+          }
+          if (!isok) {
+            name = "";
+            code = [];
+          }
+        } else {
+          name = "";
+          code = [];
+        }
+      }
+      return { name: name, code: code };
+    },
+  },
+};
+</script>
+
+  <style>
+</style>

+ 0 - 0
src/components/addr-add-edit-modal/收货地址新建OR编辑


+ 78 - 142
src/components/in-addr-model/index.vue

@@ -22,144 +22,47 @@
           border
           :size="'mini'"
           style="width: 100%"
+          max-height="400px"
           row-key="key"
         >
-          <el-table-column prop="receipt_quantity" label="收货总数" width="100">
-            <template slot-scope="scope">
-              <el-form-item
-                :prop="'order_addr.' + scope.$index + '.' + 'receipt_quantity'"
-                :rules="scope.row.edit ? rulesThis.receipt_quantity : {}"
-                :size="'mini'"
-                :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
-              >
-                <el-input
-                  v-model="scope.row.receipt_quantity"
-                  :disabled="!scope.row.edit"
-                />
-              </el-form-item>
-            </template>
-          </el-table-column>
+          <el-table-column
+            prop="receipt_quantity"
+            label="收货总数"
+            width="100"
+            show-overflow-tooltip
+          />
 
-          <el-table-column prop="arrive_time" label="最晚收货日期" width="150">
-            <template slot-scope="scope">
-              <el-form-item
-                :prop="'order_addr.' + scope.$index + '.' + 'arrive_time'"
-                :rules="scope.row.edit ? rulesThis.arrive_time : {}"
-                :size="'mini'"
-                :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
-              >
-                <el-date-picker
-                  :disabled="!scope.row.edit"
-                  v-model="scope.row.arrive_time"
-                  type="date"
-                  style="width: 100%"
-                  value-format="yyyy-MM-dd"
-                  :picker-options="pickerOptions"
-                >
-                </el-date-picker>
-              </el-form-item>
-            </template>
-          </el-table-column>
-          <el-table-column prop="contactor" label="收件联系人" width="90">
-            <template slot-scope="scope">
-              <el-form-item
-                :prop="'order_addr.' + scope.$index + '.' + 'contactor'"
-                :rules="scope.row.edit ? rulesThis.contactor : {}"
-                :size="'mini'"
-                :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
-              >
-                <el-input
-                  v-model="scope.row.contactor"
-                  :disabled="!scope.row.edit"
-                />
-              </el-form-item>
-            </template>
-          </el-table-column>
+          <el-table-column
+            prop="arrive_time"
+            label="最晚收货日期"
+            width="100"
+            show-overflow-tooltip
+          />
+          <el-table-column prop="contactor" label="收件联系人"  show-overflow-tooltip width="85" />
 
-          <el-table-column prop="mobile" label="收货联系电话" min-width="130">
-            <template slot-scope="scope">
-              <el-form-item
-                :prop="'order_addr.' + scope.$index + '.' + 'mobile'"
-                :rules="scope.row.edit ? rulesThis.mobile : {}"
-                :size="'mini'"
-                :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
-              >
-                <el-input
-                  v-model="scope.row.mobile"
-                  :disabled="!scope.row.edit"
-                />
-              </el-form-item>
-            </template>
-          </el-table-column>
+          <el-table-column prop="mobile" label="收货联系电话"  show-overflow-tooltip width="100" />
           <el-table-column
             show-overflow-tooltip
             prop="in_addr"
             label="收货省市区(文件导入)"
-            width="140"
+            width="150"
           />
           <el-table-column
-            prop="addr_code"
+           show-overflow-tooltip
+            prop="addr_code_name"
             label="收货省市区(系统解析)"
-            min-width="230"
-          >
-            <template slot-scope="scope">
-              <el-form-item
-                :prop="'order_addr.' + scope.$index + '.' + 'addr_code'"
-                :rules="scope.row.edit ? rulesThis.addr_code : {}"
-                :size="'mini'"
-                :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
-              >
-                <select-area
-                  :value="scope.row.addr_code"
-                  :disabled="!scope.row.edit"
-                  :size="'mini'"
-                  @selectChange="select_area_change($event, scope.$index)"
-                />
-              </el-form-item>
-            </template>
-          </el-table-column>
-          <el-table-column prop="addr" label="详细地址" width="170">
-            <template slot-scope="scope">
-              <el-form-item
-                :prop="'order_addr.' + scope.$index + '.' + 'addr'"
-                :rules="scope.row.edit ? rulesThis.addr : {}"
-                :size="'mini'"
-                :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
-              >
-                <el-input
-                  v-model="scope.row.addr"
-                  :disabled="!scope.row.edit"
-                />
-              </el-form-item>
-            </template>
-          </el-table-column>
+            width="150"
+          />
+          <el-table-column prop="addr" label="详细地址" show-overflow-tooltip />
 
           <el-table-column fixed="right" width="80" label="操作">
             <template slot-scope="scope">
-              <el-tooltip
-                effect="dark"
-                content="编辑"
-                v-if="!scope.row.edit"
-                placement="top"
-              >
+              <el-tooltip effect="dark" content="编辑" placement="top">
                 <i
                   class="el-icon-edit tb-icon"
                   @click="openHouseModal(scope.$index)"
                 ></i>
               </el-tooltip>
-
-              <el-tooltip
-                effect="dark"
-                content="保存"
-                v-if="scope.row.edit"
-                placement="top"
-              >
-                <i
-                  class="el-icon-circle-check tb-icon"
-                  @click="checkRow(scope.$index)"
-                ></i>
-              </el-tooltip>
-
               <el-tooltip effect="dark" content="删除" placement="top">
                 <i
                   class="el-icon-delete tb-icon"
@@ -170,6 +73,14 @@
           </el-table-column>
         </el-table>
       </el-form>
+      <addr-add-edit-modal
+        :showModel="showAddrAddEditModal"
+        :index="AddrAddEditModalIndex"
+        :sitem="AddrAddEditModalSitem"
+        @cancel="showAddrAddEditModal = false"
+        :type="'1'"
+        @refresh="showAddrAddEditModalRefresh"
+      />
       <div class="tr" style="padding: 10px 0 0 0">
         <el-button type="primary" size="small" @click="submitForm"
           >保 存
@@ -181,14 +92,13 @@
 <script>
 import resToken from "@/mixins/resToken";
 import { province_list, city_list, county_list } from "@/assets/js/area-data";
-import {
-  isnumber,
-  isMobile,
-} from "@/utils/validate";
+import { isnumber, isMobile } from "@/utils/validate";
+import AddrAddEditModal from "@/components/addr-add-edit-modal";
 export default {
   name: "inAddrModel",
   props: ["showModel", "id", "sitem"],
   mixins: [resToken],
+  components: { AddrAddEditModal },
   data() {
     const validatemobile = (rule, value, callback) => {
       if (value === "") {
@@ -213,6 +123,9 @@ export default {
       }
     };
     return {
+      showAddrAddEditModal: false,
+      AddrAddEditModalIndex: -1,
+      AddrAddEditModalSitem: {},
       tableData: [],
       tableHeader: [],
       title: "",
@@ -312,19 +225,32 @@ export default {
     deleteRow(index, rows) {
       rows.splice(index, 1);
     },
-    //省市区选择
-    select_area_change(e, index) {
-      this.ruleForm.order_addr[index].addr_code = e;
-    },
-    //省市区保存某一行
-    checkRow(rowIndex) {
-      this.$refs.ruleForm.validate((valid) => {
-        if (valid) {
-          this.ruleForm.order_addr[rowIndex].edit = false;
-        } else {
-          return false;
-        }
-      });
+    showAddrAddEditModalRefresh(e) {
+      const { index, item } = e;
+
+      if (index === -1) {
+        this.ruleForm.order_addr.push(JSON.parse(JSON.stringify(item)));
+      } else {
+        const {
+          arrive_time,
+          receipt_quantity,
+          contactor,
+          mobile,
+          addr_code,
+          addr_code_name,
+          addr,
+          id,
+        } = JSON.parse(JSON.stringify(item));
+        this.ruleForm.order_addr[index].receipt_quantity = receipt_quantity;
+        this.ruleForm.order_addr[index].arrive_time = arrive_time;
+        this.ruleForm.order_addr[index].contactor = contactor;
+        this.ruleForm.order_addr[index].mobile = mobile;
+        this.ruleForm.order_addr[index].addr_code = addr_code;
+        this.ruleForm.order_addr[index].addr_code_name = addr_code_name;
+        this.ruleForm.order_addr[index].addr = addr;
+        this.ruleForm.order_addr[index].id = id;
+      }
+      this.$refs.ruleForm.validateField("order_addr");
     },
     beforeUpload(file) {
       const isLt1M = file.size / 1024 / 1024 < 1;
@@ -385,7 +311,7 @@ export default {
           contactor: b[2] + "",
           mobile: b[3] + "",
           in_addr: b[4] + "/" + b[5] + "/" + b[6],
-          addr_name: item.name + "",
+          addr_code_name: item.name + "",
           addr_code: item.code,
           addr: b[7] + "",
           edit: false,
@@ -397,13 +323,23 @@ export default {
       }
     },
     openHouseModal(index) {
-      let findex = this.ruleForm.order_addr.findIndex((v) => v.edit === true);
-      if (findex !== -1) {
-        this.$message.warning("当前已有地址在编辑,请保存后再试!");
-        return;
+      this.AddrAddEditModalIndex = index;
+
+      if (index === -1) {
+        this.AddrAddEditModalSitem = {};
       } else {
-        this.ruleForm.order_addr[index].edit = true;
+        this.AddrAddEditModalSitem = JSON.parse(
+          JSON.stringify(this.ruleForm.order_addr[index])
+        );
       }
+      this.showAddrAddEditModal = true;
+      // let findex = this.ruleForm.order_addr.findIndex((v) => v.edit === true);
+      // if (findex !== -1) {
+      //   this.$message.warning("当前已有地址在编辑,请保存后再试!");
+      //   return;
+      // } else {
+      //   this.ruleForm.order_addr[index].edit = true;
+      // }
     },
     unique(arr) {
       let hash = [];

+ 2 - 1
src/styles/index.scss

@@ -506,8 +506,9 @@ aside {
   background: #f0f9eb !important;
 }
 
-.zxSheetDetail,.zxDiffOrderDetail {
+.zxSheetDetail,.zxDiffOrderDetail,.zxReturnDetail {
   .modal-form-style {
+
     #demo-sitem.el-form {
       .el-row {
         border-left: 1px solid #ebeef5 !important;

+ 1 - 1
src/views/sheetOrder/zxAfterSale/components/returnExpress.vue

@@ -50,7 +50,7 @@
       </el-col>
       <el-col :span="12" v-if="ruleForm.own === '2' || ruleForm.own === '3'">
         <el-form-item label="物流费用" prop="post_fee">
-          <el-input placeholder="请输入物流费用" v-model="ruleForm.post_fee">
+          <el-input placeholder="物流费用" v-model="ruleForm.post_fee">
             <template slot="append">元</template>
           </el-input>
         </el-form-item>

+ 39 - 104
src/views/sheetOrder/zxAfterSaleOrder/columns.js

@@ -1,110 +1,45 @@
 export default [
-        {
-          prop: "orderCode",
-          label: "订单编号",
-          width:"160"
-        },
-        {
-          prop: "thNo",
-          label: "退货单编号",
-          width:"160"
-        },
-        // {确认单编号}
-        // {order_type类型}
-       
+  {
+    prop: "thNo",
+    label: "售后退货单编号",
+    width: "160"
+  },
 
-        {
-          prop: "outCode",
-          label: "出库单编号",
-          width:"160"
+  {
+    prop: "status",
+    label: "状态",
+    _slot_: "status",
+    width: "120px",
+  },
 
-        },
-        {
-          prop: "returnCode",
-          label: "售后单编号",
-          width:"160"
+  {
+    prop: "customer_code",
+    label: "客户编号",
+    width: "125"
+  },
+  {
+    prop: "return_num",
+    label: "退货数量",
+  },
+  {
+    prop: "normal_num",
+    label: "正常数量",
+  },
+  {
+    prop: "received_num",
+    label: "收货数量",
+  },
 
-        },
-        {
-          prop: "customer_code",   
-          label: "客户编号",
-          width:"140"
 
-        },
-        {
-          prop: "return_num",
-          label: "退货数量",
-        },
-        {
-            prop:"normal_num",
-            label:"正常数量",
-        },
-        {
-            prop:"received_num",
-            label:"收货数量",
-        },
-        // {
-        //   prop: "contactor",
-        //   label: "收货人",
-        // },
-        // {
-        //   prop: "mobile",
-        //   label: "联系电话",
-        // },
-        // {
-        //   prop: "addr",
-        //   label: "收货人地址",
-        // },
-        // {地址code}
-        {
-          prop: "post_fee",
-          label: "邮费",
-        },
-        {
-          prop: "post_code",
-          label: "快递单号",
-          width:"160"
-        },
-         {
-          prop: "post_company",
-          label: "物流公司",
-        },
-        {
-            prop:"remark",
-            label:"备注",
-        },
-        {
-          prop: "return_code",
-          label: "退货原因",
-        },
-        {
-            prop:"good_code",
-            label:"商品属性编号",
-            width:"150"
-        },
-        {
-            prop:"good_name",
-            label:"商品名称",
-            width:"150"
-        },
-        {
-          prop: "status",
-          label: "状态",
-          _slot_: "status",
-          width: "130px",
-        },
-        {
-          prop: "addtime",
-          label: "申请时间",
-          sortable: true,
-          width:150
-        },
-        {
-          prop: "",
-          label: "操作",
-          fixed: "right",
-          _noset_: true,
-          _slot_: "operation",
-        },
-      
+
+ 
+  {
+    prop: "",
+    label: "操作",
+    fixed: "right",
+    width: 50,
+    _noset_: true,
+    _slot_: "operation",
+  },
+
 ]

+ 77 - 128
src/views/sheetOrder/zxAfterSaleOrder/components/addEdit.vue

@@ -1,107 +1,90 @@
 <template>
-  <el-dialog
-    :title="title"
-    :center="true"
-    align="left"
-    top="5vh"
-    width="1040px"
-    @close="closeModel"
-    :close-on-click-modal="false"
-    :visible.sync="showModelThis"
-    v-loading="loading"
-    element-loading-text="拼命加载中"
-    element-loading-spinner="el-icon-loading"
-    element-loading-background="rgba(0, 0, 0, 0.8)"
+  <el-form
+    :model="ruleForm"
+    ref="ruleForm"
+    label-width="110px"
+    class="demo-ruleForm"
   >
-    <el-card>
-      this.showModel,{{ showModel }} showModelThis:{{ showModelThis }}
-      <el-row :gutter="10">
-        <el-col :span="24">
-          <el-form
-            :model="ruleForm"
-            status-icon
-            :rules="rulesThis"
-            ref="ruleForm"
-            label-width="110px"
-            class="demo-ruleForm"
+    <el-row>
+           <el-col :span="12">
+        <el-form-item label="商品分类" prop="numbers">
+          <el-input
+            disabled
+            v-model="ruleForm.numbers"
+            placeholder="商品分类"
+          ></el-input>
+        </el-form-item>
+      </el-col>
+           <el-col :span="12">
+        <el-form-item label="商品名称" prop="numbers">
+          <el-input
+            disabled
+            v-model="ruleForm.numbers"
+            placeholder="商品名称"
+          ></el-input>
+        </el-form-item>
+      </el-col>
+           <el-col :span="12">
+        <el-form-item label="购买方公司" prop="numbers">
+          <el-input
+            disabled
+            v-model="ruleForm.numbers"
+            placeholder="购买方公司"
+          ></el-input>
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item label="12" prop="numbers">
+          <el-input
+            disabled
+            v-model="ruleForm.numbers"
+            placeholder="请输入异常数量"
+          ></el-input>
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item label="异常原因" prop="reason">
+          <el-select
+            style="width: 100%"
+            disabled
+            v-model="ruleForm.reason"
+            placeholder="请选择异常原因"
           >
-            <el-row>
-              <el-col :span="12">
-                <el-form-item label="异常数量" prop="numbers">
-                  <el-input
-                    :disabled="disabled"
-                    v-model="ruleForm.numbers"
-                    placeholder="请输入异常数量"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="12">
-                <el-form-item label="异常原因" prop="reason">
-                  <el-select
-                    @change="handleValue"
-                    style="width: 100%"
-                    :disabled="disabled"
-                    v-model="ruleForm.reason"
-                    placeholder="请选择异常原因"
-                  >
-                    <el-option
-                      v-for="item in reason_options"
-                      :key="item.id"
-                      :label="item.result"
-                      :value="item.result_code"
-                      :disabled="item.status == 0"
-                    >
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="12">
-                <el-form-item label="异常备注" prop="remark">
-                  <el-input
-                    type="textarea"
-                    placeholder="请输入异常原因备注"
-                    v-model="ruleForm.remark"
-                    :disabled="disabled"
-                    maxlength="250"
-                    show-word-limit
-                  />
-                </el-form-item>
-              </el-col>
-            </el-row>
-          </el-form>
-        </el-col>
-        <el-col :span="24" style="text-align: right">
-          <el-button type="primary" @click="submitForm" v-if="!isDetail"
-            >保 存
-          </el-button>
-          <el-button @click="showModelThis = false">{{
-            isDetail ? "关 闭" : "取 消"
-          }}</el-button>
-        </el-col>
-      </el-row>
-    </el-card>
-  </el-dialog>
+            <el-option
+              v-for="item in reason_options"
+              :key="item.id"
+              :label="item.result"
+              :value="item.result_code"
+              :disabled="item.status == 0"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item label="异常备注" prop="remark">
+          <el-input
+            type="textarea"
+            disabled
+            placeholder="请输入异常原因备注"
+            v-model="ruleForm.remark"
+            maxlength="250"
+            show-word-limit
+          />
+        </el-form-item>
+      </el-col>
+    </el-row>
+  </el-form>
 </template>
    <script>
-import asyncRequest from "@/apis/service/sellOut/returnOrder";
+import asyncRequest from "@/apis/service/sheetOrder/zxAfterSaleOrder";
 import resToken from "@/mixins/resToken";
-import { isnumber } from "@/utils/validate";
 export default {
   name: "returnOrder",
   props: ["showModel", "id", "isDetail", "sitem"],
   mixins: [resToken],
   data() {
-    const validatenumbers = (rule, value, callback) => {
-      if (value === "") {
-        callback(new Error("异常数量不能为空!"));
-      } else {
-        if (!isnumber(value)) {
-          callback(new Error("异常数量必须为数字"));
-        } else {
-          callback();
-        }
-      }
-    };
+
     return {
       loading: false,
       title: "添加异常情况",
@@ -114,31 +97,7 @@ export default {
         status: "1",
       },
       reason_options: [],
-      rulesThis: this.rules,
-      rules: {
-        numbers: [
-          {
-            required: true,
-            validator: validatenumbers,
-            trigger: "blur",
-          },
-        ],
-        reason: [
-          {
-            required: true,
-            // validator: validateusername,
-            message: "请输入异常原因",
-            trigger: "blur",
-          },
-        ],
-        remark: [
-          {
-            required: true,
-            message: "请填写异常原因备注",
-            trigger: "blur",
-          },
-        ],
-      },
+     
     };
   },
   watch: {
@@ -165,7 +124,6 @@ export default {
     async initForm() {
       await this.getReason();
       this.loading = true;
-      this.rulesThis = this.rules;
       await this.resetForm();
       this.loading = false;
     },
@@ -217,15 +175,6 @@ export default {
         this.$message.warning(res.message);
       }
     },
-    handleValue(e) {
-      console.log(e);
-      this.reason_options.forEach((item) => {
-        if (item.result_code === e) {
-          this.ruleForm.name = item.result;
-        }
-      });
-      console.log(this.ruleForm.name);
-    },
   },
 };
 </script>

+ 228 - 0
src/views/sheetOrder/zxAfterSaleOrder/components/addEditModel.vue

@@ -0,0 +1,228 @@
+<template>
+  <el-dialog
+    :title="title"
+    :center="true"
+    align="left"
+    top="15vh"
+    width="600px"
+    @close="closeModel"
+    :close-on-click-modal="false"
+    :visible.sync="showModelThis"
+    v-loading="loading"
+    element-loading-text="拼命加载中"
+    element-loading-spinner="el-icon-loading"
+    element-loading-background="rgba(0, 0, 0, 0.8)"
+  >
+    <el-card style="margin: -20px 0 0 0">
+      <el-row :gutter="10">
+        <el-col :span="24">
+          <el-form
+            :model="ruleForm"
+            status-icon
+            :rules="rulesThis"
+            ref="ruleForm"
+            label-width="80px"
+            class="demo-ruleForm"
+          >
+            <el-row>
+              <el-col :span="24">
+                <el-form-item label="异常数量" prop="error_num">
+                  <el-input
+                    v-model="ruleForm.error_num"
+                    placeholder="请输入异常数量"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="异常原因" prop="error_code">
+                  <el-select
+                    @change="handleValue"
+                    style="width: 100%"
+                    v-model="ruleForm.error_code"
+                    placeholder="请选择异常原因"
+                  >
+                    <el-option
+                      v-for="item in error_code_options"
+                      :key="item.id"
+                      :label="item.result"
+                      :value="item.result_code"
+                      :disabled="item.status == 0"
+                    >
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="异常备注" prop="error_remark">
+                  <el-input
+                    type="textarea"
+                    :rows="3"
+                    placeholder="请输入异常原因备注"
+                    v-model="ruleForm.error_remark"
+                    maxlength="250"
+                    show-word-limit
+                  />
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+        </el-col>
+        <el-col :span="24" style="text-align: right">
+          <el-button type="primary" @click="submitForm" v-if="!isDetail"
+            >保 存
+          </el-button>
+          <el-button @click="showModelThis = false">{{
+            isDetail ? "关 闭" : "取 消"
+          }}</el-button>
+        </el-col>
+      </el-row>
+    </el-card>
+  </el-dialog>
+</template>
+   <script>
+import asyncRequest from "@/apis/service/sellOut/returnOrder";
+import resToken from "@/mixins/resToken";
+import { isnumber } from "@/utils/validate";
+export default {
+  name: "returnOrder",
+  props: ["showModel", "id", "sitem"],
+  mixins: [resToken],
+  data() {
+    const validateerror_num = (rule, value, callback) => {
+      if (value === "") {
+        callback(new Error("异常数量不能为空!"));
+      } else {
+        if (!isnumber(value)) {
+          callback(new Error("异常数量必须为数字"));
+        } else {
+          callback();
+        }
+      }
+    };
+    return {
+      loading: false,
+      title: "",
+      showModelThis: this.showModel,
+      ruleForm: {
+        error_num: "", //异常数量
+        error_code: "", //异常原因
+        error_remark: "", //异常备注
+        name: "",
+        status: "1",
+      },
+      error_code_options: [],
+      rulesThis: this.rules,
+      rules: {
+        error_num: [
+          {
+            required: true,
+            validator: validateerror_num,
+            trigger: "blur",
+          },
+        ],
+        error_code: [
+          {
+            required: true,
+            message: "请输入异常原因",
+            trigger: "change",
+          },
+        ],
+        error_remark: [
+          {
+            required: true,
+            message: "请填写异常原因备注",
+            trigger: "blur",
+          },
+        ],
+      },
+    };
+  },
+  watch: {
+    showModel: function (val) {
+      this.showModelThis = val;
+      if (val) {
+        this.initForm();
+      }
+    },
+    showModelThis(val) {
+      if (!val) {
+        this.$emit("cancel");
+      }
+    },
+  },
+
+  methods: {
+    async initForm() {
+      await this.geterror_code();
+      this.loading = true;
+      this.rulesThis = this.rules;
+      if (this.id === -1) {
+        this.title = "添加异常情况";
+      } else {
+        this.title = "编辑异常情况";
+      }
+      await this.resetForm();
+      this.loading = false;
+    },
+    async resetForm() {
+      // 重置
+      await this.$nextTick(() => {
+        if (this.$refs.ruleForm) {
+          this.$refs.ruleForm.resetFields();
+          this.$refs.ruleForm.clearValidate();
+          const { error_num, error_code, error_remark, error_code_name } =
+            this.sitem;
+            console.log(this.sitem)
+          this.ruleForm = {
+            error_num: error_num || "", //异常数量
+            error_code: error_code || "", //异常原因
+            error_remark: error_remark || "", //异常备注
+            error_code_name: error_code_name || "",
+          };
+        }
+      });
+    },
+
+    async submitForm() {
+      await this.$refs.ruleForm.validate(async (valid) => {
+        if (valid) {
+          this.showModelThis = false;
+          this.$emit("refresh", { index: this.id, item: this.ruleForm });
+        } else {
+          console.log("error submit!!");
+          return false;
+        }
+      });
+    },
+    // 异常原因
+    async geterror_code() {
+      let model = {
+        type: "5",
+        page: 1,
+        size: 100,
+      };
+      const res = await asyncRequest.resultlist(model);
+      this.loading = false;
+      if (res && res.code === 0) {
+        this.error_code_options = res.data.list;
+      } else if (res && res.code >= 100 && res.code <= 104) {
+        await this.logout();
+      } else {
+        this.$message.warning(res.message);
+      }
+    },
+    handleValue(e) {
+      let findex = this.error_code_options.findIndex(
+        (v) => v.result_code === e
+      );
+      if (findex) {
+        this.ruleForm.error_code_name = this.error_code_options[findex].result;
+      }
+    },
+  },
+};
+</script>
+
+   <style lang="scss" scoped>
+</style>
+   

+ 162 - 411
src/views/sheetOrder/zxAfterSaleOrder/components/return-record.vue

@@ -12,27 +12,25 @@
     <p>sitem:{{ status }}</p>
     <el-row>
       <el-col :span="12">
-        <el-form-item label="收货总数量" prop="get_goods_numbers">
+        <el-form-item label="退货总数量" prop="return_num">
           <el-input
-            :disabled="status != '1' && status != '0'"
-            v-model="ruleForm.get_goods_numbers"
-            placeholder="货总数量"
+            disabled
+            v-model="ruleForm.return_num"
+            placeholder="退货总数量"
           ></el-input>
         </el-form-item>
       </el-col>
       <el-col :span="12">
-        <el-form-item label="可销售数量" prop="can_sell_numbers">
+        <el-form-item label="可销售数量" prop="normal">
           <el-input
-            :disabled="status != '1' && status != '0'"
-            v-model="ruleForm.can_sell_numbers"
+            v-model="ruleForm.normal"
             placeholder="可销售数量"
           ></el-input>
         </el-form-item>
       </el-col>
-      <el-col :span="12">
+      <el-col :span="24">
         <el-form-item label="其他备注" prop="remark">
           <el-input
-            :disabled="status != '1' && status != '0'"
             type="textarea"
             maxlength="250"
             show-word-limit
@@ -43,204 +41,97 @@
         </el-form-item>
       </el-col>
       <el-col :span="24">
-        <el-form-item label="异常情况记录">
-          <!-- <span>异常情况记录</span> -->
-          <!-- <AnomalousRecord :sitem="sitem"></AnomalousRecord> -->
-          <el-row>
-            <el-col :span="24">
-              <el-form
-                :model="ruleForm"
-                :rules="tableFormThis"
-                ref="ruleForm"
-                :size="'mini'"
-                class="demo-tableForm product_go"
-              >
-                <!-- {{ tableForm.product_go }} -->
+        <el-form-item label="异常情况记录" :size="'mini'">
+          <el-form
+            :model="ruleForm"
+            :rules="tableFormThis"
+            ref="ruleForm"
+            :size="'mini'"
+            class="demo-tableForm product_go"
+          >
+            <el-table
+              :data="ruleForm.product_go"
+              border
+              :size="'mini'"
+              row-key="key"
+            >
+              <el-table-column label="异常数量" prop="error_num" />
 
-                <!-- {{ options }} -->
-                <el-table
-                  :data="ruleForm.product_go"
-                  border
-                  :size="'mini'"
-                  row-key="key"
+              <el-table-column label="异常原因" prop="error_code_name" />
+
+              <el-table-column label="异常备注" prop="error_remark" />
+
+              <el-table-column fixed="right" label="操作" width="80">
+                <template slot="header" slot-scope="scope">
+                    <!-- v-if="status == '1' || status == '0'" -->
+                  <span>操作</span>
+                  <el-tooltip
+                    class="fr"
+                    style="margin: 3px 0 0 0"
+                    effect="dark"
+                    content="添加"
+                    placement="top"
+                  >
+                    <i
+                    
+                      class="el-icon-circle-plus-outline tb-icon"
+                      style="color: #63cbe7"
+                      @click="openModal(-1)"
+                    ></i>
+                  </el-tooltip>
+                </template>
+                 <!-- v-if="status == '1' || status == '0'" -->
+                <template
+                  slot-scope="scope"
+                 
                 >
-                  <el-table-column label="异常数量">
-                    <template slot-scope="scope">
-                      <el-form-item
-                        :style="!scope.row.edit ? 'margin:0' : ''"
-                        :prop="
-                          'product_go.' + scope.$index + '.anomalous_numbers'
-                        "
-                        :rules="{
-                          required: true,
-                          message: '异常数量不能为空',
-                          trigger: 'blur',
-                        }"
-                      >
-                        <el-input
-                          :disabled="!scope.row.edit"
-                          v-model="scope.row.anomalous_numbers"
-                          placeholder="请输入异常数量"
-                        ></el-input>
-                      </el-form-item>
-                    </template>
-                  </el-table-column>
-                  <el-table-column label="异常原因">
-                    <template slot-scope="scope">
-                      <el-form-item
-                        :style="!scope.row.edit ? 'margin:0' : ''"
-                        :prop="
-                          'product_go.' + scope.$index + '.anomalous_reason'
-                        "
-                      >
-                        <el-select
-                          style="width: 100%"
-                          :disabled="!scope.row.edit"
-                          v-model="scope.row.anomalous_reason_code"
-                          placeholder="异常原因"
-                        >
-                          <el-option
-                            :disabled="item.status == 0"
-                            v-for="item in options"
-                            :key="item.id"
-                            :label="item.result"
-                            :value="item.result_code"
-                          >
-                          </el-option>
-                        </el-select>
-                      </el-form-item>
-                    </template>
-                  </el-table-column>
-                  <el-table-column label="异常备注">
-                    <template slot-scope="scope">
-                      <el-form-item
-                        :style="!scope.row.edit ? 'margin:0' : ''"
-                        :prop="
-                          'product_go.' + scope.$index + '.anomalous_remark'
-                        "
-                        :rules="{
-                          required: true,
-                          message: '异常备注不能为空',
-                          trigger: 'blur',
-                        }"
-                      >
-                        <el-input
-                          placeholder="异常备注"
-                          :disabled="!scope.row.edit"
-                          v-model="scope.row.anomalous_remark"
-                        ></el-input>
-                      </el-form-item>
-                    </template>
-                  </el-table-column>
+                  <el-tooltip
+                    effect="dark"
+                    content="编辑"
+                    v-if="!scope.row.edit"
+                    placement="top"
+                  >
+                    <i
+                      class="el-icon-edit tb-icon"
+                      @click="openModal(scope.$index)"
+                    ></i>
+                  </el-tooltip>
 
-                  <el-table-column fixed="right" label="操作" width="80">
-                    <template slot="header" slot-scope="scope">
-                      <span>操作</span>
-                      <el-tooltip
-                        class="fr"
-                        style="margin: 3px 0 0 0"
-                        effect="dark"
-                        content="添加"
-                        placement="top"
-                      >
-                        <i
-                          v-if="status == '1' || status == '0'"
-                          class="el-icon-circle-plus-outline tb-icon"
-                          style="color: #63cbe7"
-                          @click="openModal('add', '028')"
-                        ></i>
-                      </el-tooltip>
-                    </template>
-                    <template
-                      slot-scope="scope"
-                      v-if="status == '1' || status == '0'"
-                    >
-                      <el-tooltip
-                        effect="dark"
-                        content="编辑"
-                        v-if="!scope.row.edit"
-                        placement="top"
-                      >
-                        <i
-                          class="el-icon-edit tb-icon"
-                          @click="editRow(scope.$index)"
-                        ></i>
-                      </el-tooltip>
-                      <el-tooltip
-                        effect="dark"
-                        content="保存"
-                        v-if="scope.row.edit"
-                        placement="top"
-                      >
-                        <i
-                          class="el-icon-circle-check tb-icon"
-                          @click="checkRow(scope.$index)"
-                        ></i>
-                      </el-tooltip>
-                      <el-tooltip
-                        v-if="scope.row.edit"
-                        effect="dark"
-                        content="重置"
-                        placement="top"
-                      >
-                        <i
-                          class="el-icon-refresh-left tb-icon"
-                          @click="resetRow(scope.$index)"
-                        ></i>
-                      </el-tooltip>
-                    </template>
-                  </el-table-column>
-                </el-table>
-              </el-form>
-            </el-col>
-          </el-row>
+                  <el-tooltip
+                    v-if="scope.row.edit"
+                    effect="dark"
+                    content="重置"
+                    placement="top"
+                  >
+                    <i
+                      class="el-icon-delete tb-icon"
+                      @click="deleteRow(scope.$index, ruleForm.product_go)"
+                    ></i>
+                  </el-tooltip>
+                </template>
+              </el-table-column>
+            </el-table>
+          </el-form>
         </el-form-item>
       </el-col>
     </el-row>
 
     <el-row>
       <el-col :span="24" style="text-align: right; margin: 10px 0 20px 0">
+         <!-- v-if="status == '0' || status == '1'" -->
         <el-button
-          v-if="status == '0' || status == '1'"
+         
           type="primary"
           class="fr"
           :size="'mini'"
           @click="submitForm"
           >保 存
         </el-button>
-        <el-button
-          type="primary"
-          @click="statusConfirm('1', '发起审核流程')"
-          v-if="status === '0' && powers.some((item) => item == '012')"
-          >发起审核流程
-        </el-button>
-        <el-button
-          @click="statusConfirm('0', '取消审核流程')"
-          plain
-          v-if="status === '1' && powers.some((item) => item == '014')"
-          >取消审核流程</el-button
-        >
-        <el-button
-          @click="statusConfirm('-1', '作废该条信息')"
-          type="danger"
-          plain
-          v-if="
-            (status === '0' || status === '1') &&
-            powers.some((item) => item == '015')
-          "
-          >作废该条信息</el-button
-        >
-        <el-button
-          @click="statusConfirm('2', '通过审核')"
-          type="primary"
-          v-if="status === '1' && powers.some((item) => item == '016')"
-          >通过审核</el-button
-        >
       </el-col>
     </el-row>
-    <add-edit
+    <add-edit-model
       :id="modelId"
-      :sitem="sitem"
+      :sitem="s_item"
       :show-model="showModel"
       @refresh="handleValue"
       @cancel="showModel = false"
@@ -250,14 +141,14 @@
 <script>
 import asyncRequest from "@/apis/service/sellOut/returnOrder";
 import resToken from "@/mixins/resToken";
-import { isnumber } from "@/utils/validate.js";
-import addEdit from "./addEdit.vue";
+import { isnumber } from "@/utils/validate";
+import addEdit from "./addEdit";
+import addEditModel from "./addEditModel";
 export default {
   name: "returnRecord",
   props: ["id", "showModelThis", "newTime", "sitem"],
   mixins: [resToken],
-  components: { addEdit },
-  // props: ["sitem"],
+  components: { addEdit, addEditModel },
   data() {
     const validatenumbers = (rule, value, callback) => {
       if (value === "") {
@@ -272,18 +163,17 @@ export default {
     };
     return {
       arr: [],
+      s_item: null,
       sitemGetNumber: "", //详情总收货量
       isShow: false, //用于情况1
       returnNO: "", //退货编号
       ruleForm: {
-        get_goods_numbers: "", //收货总数量
-        can_sell_numbers: "", //可销售数量
+        return_num: "", //收货总数量
+        normal: "", //可销售数量
         remark: "", //其他备注
         product_go: [], //表格参数
       },
-      anomalous_numbers: "", //异常数量
-      anomalous_reason_code: "", //异常原因
-      anomalous_remark: "", //异常备注
+
       // --
       btn_code: "",
       modelId: "",
@@ -298,14 +188,14 @@ export default {
       rulesThis: this.rules,
       // 验证规则
       rules: {
-        get_goods_numbers: [
+        return_num: [
           {
             required: true,
             trigger: "blur",
             validator: validatenumbers,
           },
         ],
-        can_sell_numbers: [
+        normal: [
           {
             required: true,
             trigger: "blur",
@@ -336,15 +226,10 @@ export default {
     },
   },
 
-  created() {
+  mounted() {
     this.initForm();
   },
   watch: {
-    id: function (val) {
-      if (val) {
-        this.initForm();
-      }
-    },
     newTime: function (val) {
       if (val) {
         this.initForm();
@@ -352,11 +237,6 @@ export default {
     },
   },
   methods: {
-    //   关闭弹窗,直接隐藏表单
-    // async closeAddEdit() {
-    //   this.$emit("closeModel", false); //抛出一个事件,关闭弹窗
-    //
-    // },
     async initForm() {
       this.loading = true;
       this.rulesThis = this.rules;
@@ -373,24 +253,16 @@ export default {
           this.$refs.ruleForm.clearValidate();
           this.status = "";
           this.arr = [];
-          console.log(this.sitem);
-          let { child, status, received_num, normal_num, remark } = this.sitem;
+          let { child, status, normal_num, remark, return_num } = this.sitem;
           this.status = status;
-          console.log(child);
-          child.forEach((ele) => {
-            let obj = {
-              anomalous_numbers: ele.error_num,
-              anomalous_reason_code: ele.error_code,
-              anomalous_remark: ele.error_remark,
-              id: ele.id,
-            };
-            // console.log("1");
-            this.arr.push(obj);
+          this.arr =
+            child && child.length > 0 ? JSON.parse(JSON.stringify(child)) : [];
+          this.arr.forEach((v) => {
+            v.is_del = "0";
           });
-          console.log(this.arr);
           this.ruleForm = {
-            get_goods_numbers: received_num, //收货总数量
-            can_sell_numbers: normal_num, //可销售数量
+            return_num: return_num || "",
+            normal: normal_num || "", //可销售数量
             remark: remark, //其他备注
             product_go: this.arr, //表格参数this.arr
           };
@@ -402,116 +274,52 @@ export default {
       await this.$refs.ruleForm.validate(async (valid) => {
         if (valid) {
           this.loading = true;
+
           let model = JSON.parse(JSON.stringify(this.ruleForm));
-          let thNo = "";
-          if (this.sitem) {
-            thNo = this.sitem.thNo;
+          let list = JSON.parse(JSON.stringify(this.arr));
+          let { return_num, normal, product_go,remark } = model;
+          let errorT = 0;
+          if (product_go && product_go.length > 0) {
+            product_go.forEach((v) => {
+              errorT += parseInt(v.error_num);
+            });
+          }
+
+          if (parseInt(normal) + errorT !== parseInt(return_num)) {
+            this.$message.warning("可销售数量+异常总数量不等于退货总数量!");
+            this.loading = false;
+            return;
           }
-          let arr = [];
-          console.log(this.arr);
-          this.arr.map((ele) => {
-            let obj = {
-              error_num: ele.anomalous_numbers,
-              error_code: ele.anomalous_reason_code,
-              error_remark: ele.anomalous_remark,
-            };
-            arr.push(obj);
+          product_go.forEach((x) => {
+            let index = list.findIndex((y) => x.id === y.id);
+            if (index !== -1) {
+              list.splice(index, 1);
+            }
+          });
+          list.forEach((v) => {
+            v.is_del = "1";
           });
-          let _model = {
-            thNo: thNo, //	退货编号
-            receive: model.get_goods_numbers, //收货数量
-            normal: model.can_sell_numbers, //正常数量
-            remark: model.remark, //
-            errorlist: arr, //
+          let item = {
+            thNo: this.sitem.thNo,
+            normal,
+            remark,
+            errorlist: [].concat(product_go).concat(list),
           };
-          console.log(_model);
-          // return;
-          const { get_goods_numbers, can_sell_numbers } = this.ruleForm;
-          // 判断收获总数量是否等于可销售数量(情况1:没有异常数量)
-          if (Number(get_goods_numbers) === Number(can_sell_numbers)) {
-            const res = await asyncRequest.returnCheck({}); //_model
-            if (res && res.code === 0) {
-              console.log("submit");
-              this.$notify.success({
-                title: res.message,
-                message: "",
-              });
-              this.$emit("refresh");
-              console.log("抛出事件给详情页");
-            } else if (res && res.code >= 100 && res.code <= 104) {
-              await this.logout();
-            } else {
-              this.$message.warning(res.message);
-            }
-          } else if (Number(get_goods_numbers) < Number(can_sell_numbers)) {
-            console.log(+get_goods_numbers, +can_sell_numbers);
-            this.$message.warning("可销售数量不能大于收货总数量!");
-          } else {
-            this.ruleForm.product_go.forEach((item) => {
-              if (!item.edit) {
-                this.edit = true;
-              }
-              this.totalNumber += Number(item.anomalous_numbers);
+
+          const res = await asyncRequest.returnCheck(item);
+          this.loading = false;
+          if (res && res.code === 0) {
+            console.log("submit");
+            this.$notify.success({
+              title: res.message,
+              message: "",
             });
-            if (
-              this.edit &&
-              Number(this.totalNumber) + Number(can_sell_numbers) ==
-                Number(get_goods_numbers)
-            ) {
-              const res = await asyncRequest.returnCheck(_model);
-              if (res && res.code === 0) {
-                console.log("submit");
-                this.$notify.success({
-                  title: res.message,
-                  message: "",
-                });
-                this.$emit("refresh");
-              } else if (res && res.code >= 100 && res.code <= 104) {
-                await this.logout();
-              } else {
-                this.$message.warning(res.message);
-              }
-            } else {
-              this.$message.warning("异常数量不正确或者当前表格在编辑!");
-            }
-            this.totalNumber = 0;
+            this.$emit("refresh");
+          } else if (res && res.code >= 100 && res.code <= 104) {
+            await this.logout();
+          } else {
+            this.$message.warning(res.message);
           }
-
-          this.totalNumber = 0;
-          // if (!this.tableForm.product_go.edit) {
-          //   console.log(this.$refs.ruleForm);
-          //   this.$refs.ruleForm.validateField("tableCheck");
-          // }
-          // let res = {};
-          // if (this.id === "add") {
-          //   delete model["id"];
-          //   res = await asyncRequest.add(model);
-          // } else {
-          //   res = await asyncRequest.update(model);
-          // }
-
-          //   this.loading = false;
-          //   if (res && res.code === 0) {
-          //     const title = this.id === "add" ? "添加成功!" : "修改成功!";
-          //     this.$notify.success({
-          //       title,
-          //       message: "",
-          //     });
-
-          //     if (this.id === "add") {
-          //       this.showModelThis = false;
-          //       this.$emit("refresh", false);
-          //     } else {
-          //       this.initForm();
-          //     }
-          //   } else if (res && res.code >= 100 && res.code <= 104) {
-          //     await this.logout();
-          //   } else {
-          //     this.$message.warning(res.message);
-          //   }
-          // } else {
-          //   console.log("error submit!!");
-          //   return false;
         }
       });
     },
@@ -532,96 +340,39 @@ export default {
         this.$message.warning(res.message);
       }
     },
-    //保存某一行
-    checkRow(rowIndex) {
-      const { anomalous_numbers, anomalous_reason_code, anomalous_remark } =
-        this.ruleForm.product_go[rowIndex];
-      if (anomalous_numbers == "" && anomalous_remark == "") {
-        this.$message.warning("异常数量和异常备注不能为空!");
-        return;
-      }
-      if (!isnumber(anomalous_numbers)) {
-        this.$message.warning("异常数量必须为整数!");
-        return;
-      } else if (
-        +anomalous_numbers + +this.ruleForm.can_sell_numbers <
-        +this.ruleForm.get_goods_numbers
-      ) {
-        this.$message.warning("当前可销售数量+异常数量小于总收货数量!");
-      } else if (
-        +anomalous_numbers + +this.ruleForm.can_sell_numbers >
-        +this.ruleForm.get_goods_numbers
-      ) {
-        this.$message.warning("可销售数量+异常数量不能大于总收货数量!");
-        return;
-      }
-      if (anomalous_remark.length > 20) {
-        this.$message.warning("异常备注字数不能超过250个!");
-      }
-      if (anomalous_numbers == 0) {
-        this.$message.info("异常数量为零,不用选择异常原因!");
-        this.ruleForm.product_go[rowIndex].edit = false;
-        return;
-      }
-      if (anomalous_reason_code == "") {
-        this.$message.warning("请选择异常原因!");
-        return;
-      }
 
-      this.ruleForm.product_go[rowIndex].edit = false;
-    },
-    //编辑某一行
-    editRow(rowIndex) {
-      let index = this.ruleForm.product_go.findIndex((v) => v.edit);
-      console.log(index);
-      if (index !== -1) {
-        this.$message.warning("请完成其他行的编辑!");
-        return;
-      } else {
-        console.log(this.ruleForm.product_go[rowIndex]);
-        this.ruleForm.product_go[rowIndex].edit = true;
+    // 删除行操作
+    deleteRow(index, rows) {
+      console.log(rows[index]);
+      if (this.id !== "add" && rows[index].id) {
+        this.delList.push(rows[index]);
       }
+      rows.splice(index, 1);
+      this.$refs.ruleForm.validateField("product_go");
     },
-    //重置行内参数
-    resetRow(rowIndex) {
-      this.ruleForm.product_go[rowIndex].anomalous_numbers = "";
-      this.ruleForm.product_go[rowIndex].anomalous_reason_code = "";
-      this.ruleForm.product_go[rowIndex].anomalous_remark = "";
-    },
-    //
-    openModal(code, btn_code) {
-      console.log(code, btn_code);
-      this.btn_code = btn_code;
-      this.modelId = code;
+    openModal(index) {
+      this.s_item =
+        index === -1
+          ? {}
+          : JSON.parse(JSON.stringify(this.ruleForm.product_go[index]));
+      console.log(this.s_item);
+      this.modelId = index;
       this.showModel = true;
     },
     // 获取弹窗的值
     handleValue(e) {
-      console.log(e);
-      if (e) {
-        const { numbers, reason, remark, name } = e;
-        let v = {
-          anomalous_numbers: numbers || "",
-          anomalous_reason: name || "",
-          anomalous_reason_code: reason || "", //异常原因code
-          anomalous_remark: remark || "",
-        };
-        let list = JSON.parse(JSON.stringify(this.voList));
-        list.forEach((v) => {
-          v.edit = false;
-          this.ruleForm.product_go.push(v);
-        });
-        this.voList = [];
-        this.voList.push(v);
+      const { index, item } = e;
+      if (index === -1) {
+        this.ruleForm.product_go.push(JSON.parse(JSON.stringify(item)));
+      } else {
+        const { error_num, error_code, error_remark, error_code_name } =
+          JSON.parse(JSON.stringify(item));
+        this.ruleForm.product_go[index].error_num = error_num;
+        this.ruleForm.product_go[index].error_code = error_code;
+        this.ruleForm.product_go[index].error_remark = error_remark;
+        this.ruleForm.product_go[index].error_code_name = error_code_name;
       }
-      // this.initForm();
-      let list = JSON.parse(JSON.stringify(this.voList));
-      console.log(this.ruleForm.product_go);
-      list.forEach((v) => {
-        v.edit = false;
-        this.ruleForm.product_go.push(v);
-      });
-      this.voList = [];
+      this.$refs.ruleForm.validateField("product_go");
     },
   },
 };

+ 8 - 18
src/views/sheetOrder/zxAfterSaleOrder/components/returnCheck.vue

@@ -8,8 +8,6 @@
         :size="'mini'"
         class="demo-tableForm product_go"
       >
-        <!-- {{ tableForm.product_go }} -->
-        <!-- <p>{{ sitem }}</p> -->
         <el-form-item label="入库情况">
           <el-table
             :data="tableForm.product_go"
@@ -154,7 +152,6 @@
    <script>
 import asyncRequest from "@/apis/service/sellOut/returnOrder";
 import resToken from "@/mixins/resToken";
-import { isnumber } from "@/utils/validate";
 import config from "./columns"; //表格列参数
 export default {
   name: "return-check",
@@ -215,13 +212,6 @@ export default {
     async initForm() {
       this.loading = true;
       this.columns = [];
-      // console.log(this.newTime);
-      // console.log(this.sitem);
-      // console.log(this.sitem);
-      // console.log(this.sitem);
-      // await this.getresultlist();
-      // this.thNo = this.sitem.thNo;
-      // console.log(this.thNo);
       await this.resetForm();
       this.loading = false;
     },
@@ -229,15 +219,14 @@ export default {
       // 重置
       await this.$nextTick(() => {
         if (this.$refs.tableForm) {
+          this.voList = [];
+          this.tableForm.product_go = [];
           this.$refs.tableForm.resetFields();
           this.$refs.tableForm.clearValidate();
-          console.log(this.sitem);
-          // console.log(this.sitem);
-
           let { child, thNo, status } = this.sitem;
           this.status = status;
           this.thNo = thNo;
-          console.log(child);
+          // console.log(child);
 
           child.map((ele) => {
             let obj = {
@@ -246,8 +235,9 @@ export default {
               anomalous_reason: ele.error_code,
               anomalous_reason_code: ele.error_code, //异常原因code
               anomalous_remark: ele.error_remark,
-              check_value: ele.status,
-              check_remark: ele.error_remark,
+              check_value: ele.status === "0" ? "1" : ele.status,
+              check_remark: ele.exam_remark,
+              is_del: "0",
             };
             this.voList.push(obj);
           });
@@ -287,7 +277,7 @@ export default {
       let _model = {
         thNo: this.thNo,
         errorlist: arr,
-        status:'3', //1待验货2待验货审核3待业务审核4完成 this.status + 1
+        status: "3", //1待验货2待验货审核3待业务审核4完成 this.status + 1
       };
       console.log(_model);
       const res = await asyncRequest.check(_model);
@@ -327,7 +317,7 @@ export default {
     },
     resetRow(rowIndex) {
       this.tableForm.product_go[rowIndex].check_remark = "";
-      this.tableForm.product_go[rowIndex].check_value = "agree";
+      this.tableForm.product_go[rowIndex].check_value = "1";
     },
   },
 };

+ 29 - 61
src/views/sheetOrder/zxAfterSaleOrder/detail.vue

@@ -4,9 +4,7 @@
       style="width: 100%"
       v-if="powers && powers.length > 0 && powers.some((item) => item == '001')"
     >
-      <p>zxAfterSaleOrderDetail页面{{ powers }}</p>
-      <p>status{{ status }}</p>
-      <p>{{ newTime }}</p>
+      <p>{{ status }}---{{ powers }}</p>
       <status-bar
         v-if="newTime !== ''"
         :newTime="newTime"
@@ -14,38 +12,34 @@
         :status="status"
       />
       <el-collapse v-model="activeNames">
+        <el-collapse-item title="售后退后单详情" name="-1">
+          <add-edit v-if="newTime !== ''" :newTime="newTime" :sitem="sitem" />
+        </el-collapse-item>
         <el-collapse-item title="退货验收记录" name="0">
-          <!-- <add-edit-form :sitem="sitem"></add-edit-form> -->
           <return-record
-            :sitem="s_sitem"
+            v-if="newTime !== ''"
+            :sitem="sitem"
             @refresh="initData"
             :newTime="newTime"
-          ></return-record>
+          />
         </el-collapse-item>
 
         <el-collapse-item title="退货验收审核" name="1">
-          <!-- <return-check :sitem="sitem"></return-check> -->
-          <!--  -->
           <return-check
-            v-if="newTime != '' && status == '2'"
+            v-if="newTime !== ''"
             :newTime="newTime"
-            :sitem="s_sitem"
+            :sitem="sitem"
             @refresh="initData"
-          ></return-check>
+          />
         </el-collapse-item>
-        <el-collapse-item
-          title="业务审核"
-          name="2"
-          v-if="powers.some((item) => item == '001')"
-        >
-          {{ status }}
+        <el-collapse-item title="业务审核" name="2">
           <exam-form
-            v-if="status == '3'"
+            v-if="newTime !== ''"
             :statusList="statusList"
             :newTime="newTime"
             :disabled="false"
             :isMust="true"
-            @searchChange="examForm"
+            @searchChange="exam_form_change"
           />
         </el-collapse-item>
         <el-collapse-item title="审批记录" name="10">
@@ -67,15 +61,16 @@
 import mixinPage from "@/mixins/elPaginationHandle";
 import resToken from "@/mixins/resToken";
 import asyncRequest from "@/apis/service/sheetOrder/zxAfterSaleOrder";
-import ReturnRecord from "./components/return-record.vue";
-import ReturnCheck from "./components/returnCheck.vue";
-
+import ReturnRecord from "./components/return-record";
+import ReturnCheck from "./components/returnCheck";
+import addEdit from "./components/addEdit";
 export default {
   name: "zxAfterSaleOrderDetail",
   mixins: [mixinPage, resToken],
   components: {
     ReturnRecord,
     ReturnCheck,
+    addEdit,
   },
   computed: {
     powers() {
@@ -93,38 +88,24 @@ export default {
   data() {
     return {
       statusOptions: [
-        { value: "0", label: "取消" },
-        { value: "1", label: "退货商品验收" },
-        // { value: "2", label: "反馈物流费" },
-        { value: "2", label: "退货验收审核" },
-        { value: "3", label: "退货业务审核" },
-
-        { value: "4", label: "退货完成" },
-
-        // { id: "0", label: "待申请" },
-        // { id: "1", label: "待验收" },
-        // { id: "2", label: "待验收审核" },
-        // { id: "3", label: "待业务审核" },
-        // { id: "4", label: "完成退货" },
+        { value: "0", label: "待申请" },
+        { value: "1", label: "待验收" },
+        { value: "2", label: "待验收审核" },
+        { value: "3", label: "待业务审核" },
+        { value: "4", label: "完成退货" },
       ],
-      s_sitem: null, //传给组件
-      // --
       orderCode: "",
-      activeNames: ["0", "1", "2", "10"],
+      activeNames: ["-1", "0", "1", "2", "10"],
       sitem: null,
       status: "", //存储详情接口状态
       statusList: [
         {
           value: "1",
-          label: "待验货",
+          label: "退货验收",
         },
         {
           value: "2",
-          label: "待验货审核",
-        },
-        {
-          value: "3",
-          label: "待业务审核",
+          label: "退货验收审核",
         },
       ],
       newTime: "",
@@ -134,7 +115,6 @@ export default {
   },
   mounted() {
     this.qid = this.$route.query.id;
-    // console.log(this.sitem);
     this.initData();
   },
   methods: {
@@ -142,30 +122,19 @@ export default {
       this.newTime = new Date().valueOf();
     },
     // 点击业务审核的保存按钮
-    async examForm(e) {
-      console.log(e);
+    async exam_form_change(e) {
       if (!this.loading) {
         let type = e.state === "1" ? "4" : e.rebut;
-        console.log(type);
         await this.setstatus(type, "提交业务审核", e.remark);
       }
     },
-    //
     async setstatus(type, detail, remark) {
-      await this.$confirm(`确定要${type === "4" ? "同意" : "驳回"}?`, {
+      await this.$confirm(`确定要${detail}?`, {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning",
       })
         .then(async () => {
-          console.log(type);
-          console.log(remark);
-          // let { returnCode } = this.sitem;
-          // const model = {
-          //   remark,
-          //   returnCode,
-          //   status: type,
-          // };
           let _model = {
             thNo: this.qid,
             status: type,
@@ -198,9 +167,8 @@ export default {
       const res = await asyncRequest.detail(model);
       if (res && res.code === 0 && res.data) {
         this.status = res.data.status;
-        this.s_sitem = res.data;
-        console.log(res.data);
-        this.orderCode =res.data.orderCode;
+        this.sitem = res.data;
+        this.orderCode = res.data.orderCode;
         this.getNewTime();
       } else if (res && res.code >= 100 && res.code <= 104) {
         await this.logout();

+ 91 - 209
src/views/sheetOrder/zxAfterSaleOrder/index.vue

@@ -3,10 +3,8 @@
     <div
       v-if="powers && powers.length > 0 && powers.some((item) => item == '001')"
     >
-      <!-- loading -->
-      powers:{{ powers }}
       <ex-table
-        v-loading="false"
+        v-loading="loading"
         :table="table"
         :data="tableData"
         :columns="columns"
@@ -28,37 +26,47 @@
         <template #table-header="{}">
           <div style="width: 100%">
             <el-row style="padding: 0 0 0 80px">
-              <!-- 时间区间 -->
-              <el-col :span="6" style="width: 303px; padding: 0 0 0 0px">
-                <period-date-picker
-                  :type="1"
-                  :width="'135px'"
+              <el-col :span="4" style="width: 410px">
+                <search-customer
                   :size="searchSize"
-                  :start="parmValue.start"
-                  :end="parmValue.end"
-                  @timeReturned="handleTime"
+                  :value="parmValue.customer_code"
+                  :placeholder="'购买方公司'"
+                  :disabled="false"
+                  :isDetail="false"
+                  @searchChange="customer_code_change"
                 />
               </el-col>
+
               <!-- 快递公司 -->
-              <el-col :span="4" style="width: 180px; padding: 0 0 0 0px">
+              <el-col :span="4" style="width: 370px; padding: 0 0 0 10px">
                 <search-express
                   :size="searchSize"
-                  :value="parmValue.parmValue"
+                  :value="parmValue.post_compay"
                   :placeholder="'物流公司'"
                   :names="''"
                   :is-detail="false"
                   @searchChange="handleCompany"
                 />
               </el-col>
-
-              <!-- 节点查询 -->
-              <el-col :span="4" style="width: 150px; padding: 0 0 0 10px">
+              <el-col :span="3" style="width: 66px; float: right">
+                <el-button
+                  :size="searchSize"
+                  type="primary"
+                  style="float: right; margin-left: 5px"
+                  @click="searchList"
+                >
+                  刷新
+                </el-button>
+              </el-col>
+            </el-row>
+            <el-row style="padding: 10px 0 0 0">
+              <el-col :span="4" style="width: 150px">
                 <el-select
                   :size="searchSize"
                   v-model="parmValue.status"
                   filterable
                   clearable
-                  placeholder="状态"
+                  placeholder="售后退货状态"
                   style="width: 100%"
                   @change="
                     pageInfo.curr = 1;
@@ -74,77 +82,48 @@
                   />
                 </el-select>
               </el-col>
-
-              <el-col
-                :span="3"
-                style="width: 66px; float: right"
-                v-if="powers.some((item) => item == '003')"
-              >
-                <el-button
-                  @click="openModal('add', false, {})"
-                  :size="searchSize"
-                  type="success"
-                  style="float: right; margin-left: 5px"
-                >
-                  添加
-                </el-button>
-              </el-col>
-
-              <el-col :span="3" style="width: 66px; float: right">
-                <el-button
+              <el-col :span="6" style="width: 303px; padding: 0 0 0 10px">
+                <period-date-picker
+                  :type="1"
+                  :width="'135px'"
                   :size="searchSize"
-                  type="primary"
-                  style="float: right; margin-left: 5px"
-                  @click="searchList"
-                >
-                  刷新
-                </el-button>
+                  :start="parmValue.start"
+                  :end="parmValue.end"
+                  @timeReturned="handleTime"
+                />
               </el-col>
-            </el-row>
-
-            <el-row style="padding: 10px 0 0 0">
-              <el-col :span="18">
+              <el-col :span="18" style="width: 440px; padding: 0 0 0 10px">
                 <el-input
                   clearable
                   :size="searchSize"
-                  placeholder="请输入内容"
+                  placeholder="关键字"
                   v-model="s_input"
                   class="input-with-select"
                 >
                   <el-select
-                    style="width: 150px"
+                    style="width: 137px"
                     v-model="select"
                     slot="prepend"
                     placeholder="请选择"
                   >
-                    <el-option label="快递单号" value="expressNo"></el-option>
-
-                    <el-option label="客户编号" value="customerNo"></el-option>
-                    <el-option label="售后单编号" value="serviceNo"></el-option>
-                    <el-option
-                      label="出库单编号"
-                      value="outOrderNo"
-                    ></el-option>
-
-                    <el-option label="退货单编号" value="returnNo"></el-option>
-                    <el-option label="订单编号" value="orderNo"></el-option>
+                    <el-option label="售后退货单编号" value="1" />
+                    <el-option label="售后单编号" value="2" />
+                    <el-option label="出库单编号" value="3" />
+                    <el-option label="咨询订单编号" value="4" />
+                    <el-option label="快递单号" value="5" />
                   </el-select>
                   <el-button
                     slot="append"
                     icon="el-icon-search"
-                    @click="handleValue"
+                    @click="
+                      pageInfo.curr = 1;
+                      parmValue.page = 1;
+                      searchList();
+                    "
                   ></el-button>
                 </el-input>
               </el-col>
-              <!-- <el-col :span="4" style="width: 54px">
-                <el-button
-                  :size="searchSize"
-                  type="primary"
-                  class="fr"
-                  icon="el-icon-search"
-                  @click="searchList"
-              /></el-col> -->
-              <el-col :span="6" style="width: 66px">
+              <el-col :span="6" style="width: 66px" class="fr">
                 <el-button
                   type="warning"
                   class="fr"
@@ -162,7 +141,7 @@
             :size="tablebtnSize"
             :type="scope.row.status == '0' ? 'warning' : ''"
             v-text="
-              (statusOptions.find((item) => item.id == scope.row.status) || {})
+              (statusList.find((item) => item.value == scope.row.status) || {})
                 .label || '--'
             "
           ></el-tag>
@@ -176,10 +155,11 @@
           >
             <i
               class="el-icon-view tb-icon"
-              @click="routeGoto('zxAfterSaleOrderDetail', { id: scope.row.thNo })"
+              @click="
+                routeGoto('zxAfterSaleOrderDetail', { id: scope.row.thNo })
+              "
             ></i>
           </el-tooltip>
-         
         </template>
       </ex-table>
       <add-edit
@@ -227,7 +207,7 @@ export default {
   data() {
     return {
       s_input: "",
-      select: "",
+      select: "1",
       statusList: [
         { value: "0", label: "待申请" },
         { value: "1", label: "待验收" },
@@ -236,34 +216,24 @@ export default {
         { value: "4", label: "完成退货" },
       ],
       sitem: null,
-      // 状态
-      statusOptions: [
-        { id: "0", label: "待申请" },
-        { id: "1", label: "待验收" },
-        { id: "2", label: "待验收审核" },
-        { id: "3", label: "待业务审核" },
-        { id: "4", label: "完成退货" },
-      ],
-      // statusList: statusList,
       loading: true,
       showModel: false,
       isDetail: false,
       modelId: 0,
       parmValue: {
         order_type: "2",
-        order_code: "", //销售订单编号
+        page: 1, // 页码
+        size: 15, // 每页显示条数
         thNo: "", //退货编号
+        status: "", //状态节点
+        post_code: "", //物流单号
+        post_compay: [], //物流公司
+        customer_code: [], //退货客户编号
+        order_code: "", //咨询订单编号
         out_code: "", //销售出库编号
         return_code: "", //售后申请编号
-        post_compay: [], //物流公司
-        post_code: "", //物流单号
         start: "", //
         end: "", //
-        status: "", //状态节点
-        customer_code: "", //退货客户编号
-        // --
-        page: 1, // 页码
-        size: 15, // 每页显示条数
       },
       tableData: [],
       passwordModel: false,
@@ -293,24 +263,22 @@ export default {
 
   methods: {
     restSearch() {
+      this.select = "1";
+      this.s_input = "";
       this.parmValue = {
-        return_code: "", //售后申请编号
-        outCode:"",
-            status: "", //状态节点
-        order_code: "", //销售订单编号
-
-
+        order_type: "2",
+        page: 1, // 页码
+        size: 15, // 每页显示条数
         thNo: "", //退货编号
-        out_code: "", //销售出库编号
-        
-        // post_compay: [], //物流公司
+        status: "", //状态节点
         post_code: "", //物流单号
+        post_compay: [], //物流公司
+        customer_code: [], //退货客户编号
+        order_code: "", //咨询订单编号
+        out_code: "", //销售出库编号
+        return_code: "", //售后申请编号
         start: "", //
         end: "", //
-    
-        order_type: "2",
-        page: 1, // 页码
-        size: 15, // 每页显示条数
       };
       // 表格 - 分页
       this.pageInfo = {
@@ -320,46 +288,29 @@ export default {
       };
       this.searchList();
     },
-
-    openModal(id, isDetail, sitem) {
-      this.showModel = true;
-      this.modelId = id;
-      this.isDetail = isDetail;
-      this.sitem = sitem;
-    },
-    async deleteById(id, status) {
-      await this.$confirm("确定要删除?", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      })
-        .then(async () => {
-          const model = {
-            id: id,
-            status: status === "1" ? "0" : "1",
-          };
-          const res = await asyncRequest.status(model);
-          if (res && res.code === 0) {
-            this.$notify.success({
-              title: "删除成功",
-              message: "",
-            });
-            this.searchList();
-          } else if (res && res.code >= 100 && res.code <= 104) {
-            await this.logout();
-          } else {
-            this.$message.warning(res.message);
-          }
-        })
-        .catch(() => {
-          console.log("取消");
-        });
+    async customer_code_change(e) {
+      if (e && e.id) {
+        this.parmValue.customer_code = [e.code];
+      } else {
+        this.parmValue.customer_code = [];
+      }
+      this.parmValue.page = 1;
+      this.pageInfo.curr = 1;
+      await this.searchList();
     },
+
     async searchList() {
       this.loading = true;
       let model = JSON.parse(JSON.stringify(this.parmValue));
       console.log(model);
-      model . post_compay= model.post_compay.toString(); //	快递公司
+      model.post_compay = model.post_compay.toString(); //	快递公司
+      model.customer_code = model.customer_code.toString();
+      model.thNo = this.select === "1" ? this.s_input : "";
+      model.return_code = this.select === "2" ? this.s_input : "";
+      model.out_code = this.select === "3" ? this.s_input : "";
+      model.order_code = this.select === "4" ? this.s_input : "";
+      model.post_code = this.select === "5" ? this.s_input : "";
+
       const res = await asyncRequest.list(model);
       if (res && res.code === 0 && res.data) {
         this.tableData = res.data.list;
@@ -373,45 +324,11 @@ export default {
       this.loading = false;
     },
 
-    async statusConfirm(id, status) {
-      let str = status === "1" ? "禁用" : "启用";
-      await this.$confirm("确定要改为" + str + "?", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      })
-        .then(async () => {
-          this.loading = true;
-          const model = {
-            id: id,
-            status: status === "1" ? "0" : "1",
-          };
-          const res = await asyncRequest.status(model);
-          if (res && res.code === 0) {
-            this.loading = false;
-            this.$notify.success({
-              title: "状态修改成功!",
-              message: "",
-            });
-            await this.searchList();
-          } else if (res && res.code >= 100 && res.code <= 104) {
-            await this.logout();
-          } else {
-            this.$message.warning(res.message);
-          }
-        })
-        .catch(() => {
-          console.log("取消");
-        });
-    },
     //物流公司查询
     async handleCompany(e) {
-      console.log(e, "要求传快递简称,不传id"); //
-      if (e && e.code) {
-        this.parmValue.post_compay = [e.shortName];
-        this.parmValue.page = 1;
-      }
-      console.log(this.parmValue.post_compay);
+      this.parmValue.post_compay = e && e.code ? [e.label] : [];
+      this.parmValue.page = 1;
+      this.pageInfo.curr = 1;
       await this.searchList();
     },
     // 时间
@@ -426,41 +343,6 @@ export default {
       } else {
         this.parmValue.end = "";
       }
-      // await this.handleClick(this.sselect);
-    },
-    async handleValue() {
-      console.log(this.select);
-      console.log(this.s_input);
-      switch (this.select) {
-        case "expressNo":
-          this.parmValue.post_code = this.s_input;
-          await this.searchList();
-          break;
-        case "customerNo":
-          this.parmValue.customer_code = this.s_input;
-          await this.searchList();
-
-          break;
-        case "serviceNo":
-          this.parmValue.return_code = this.s_input;
-          await this.searchList();
-
-          break;
-        case "outOrderNo":
-          this.parmValue.out_code = this.s_input;
-          await this.searchList();
-          break;
-        case "returnNo":
-          this.parmValue.thNo = this.s_input;
-          await this.searchList();
-          break;
-        default:
-          //订单编号
-          this.parmValue.order_code = this.s_input;
-          await this.searchList();
-
-          break;
-      }
     },
   },
 };

+ 0 - 23
src/views/sheetOrder/zxDiffOrder/index.vue

@@ -151,29 +151,6 @@
               @click="routeGoto('zxDiffOrderDetail', { id: scope.row.id })"
             ></i>
           </el-tooltip>
-          <!-- <el-tooltip
-            v-if="powers.some((item) => item == '007')"
-            effect="dark"
-            content="创建咨询订单"
-            placement="top"
-          >
-            <i
-              class="el-icon-circle-plus-outline tb-icon"
-              @click="addModal(scope.row.id, true)"
-            ></i>
-          </el-tooltip>
-
-          <el-tooltip
-            v-if="powers.some((item) => item == '006')"
-            effect="dark"
-            content="删除"
-            placement="top"
-          >
-            <i
-              class="el-icon-delete tb-icon"
-              @click="deleteById(scope.row.id, scope.row.status)"
-            ></i>
-          </el-tooltip> -->
         </template>
       </ex-table>
     </div>

+ 67 - 547
src/views/sheetOrder/zxOrder/addEdit.vue

@@ -3,8 +3,8 @@
     :title="title"
     :center="true"
     align="left"
-    top="5vh"
-    width="1040px"
+    top="15vh"
+    width="600px"
     @close="closeModel"
     :close-on-click-modal="false"
     :visible.sync="showModelThis"
@@ -13,10 +13,7 @@
     element-loading-spinner="el-icon-loading"
     element-loading-background="rgba(0, 0, 0, 0.8)"
   >
-    id:{{ id }} isDetail:{{ isDetail }},
-    <!-- sitem:{{ sitem }}, -->
-    入参:{{ ruleForm }}
-    <el-card>
+    <el-card style="margin: -20px 0 0 0">
       <el-row :gutter="10">
         <el-col :span="24">
           <el-form
@@ -24,17 +21,20 @@
             status-icon
             :rules="rulesThis"
             ref="ruleForm"
-            label-width="110px"
+            label-width="80px"
             class="demo-ruleForm"
           >
-            <el-form-item
-              label="退货原因"
-              prop="returnReason"
-              v-if="id === 'add' || isDetail"
-            >
+            <el-form-item label="退货数量" prop="num">
+              <el-input
+                maxlength="250"
+                placeholder="退货数量"
+                v-model="ruleForm.num"
+              />
+            </el-form-item>
+            <el-form-item label="退货原因" prop="errorCode">
               <el-select
                 style="width: 100%"
-                v-model="ruleForm.returnReason"
+                v-model="ruleForm.errorCode"
                 placeholder="退换货原因"
               >
                 <el-option
@@ -42,290 +42,19 @@
                   :key="item.value"
                   :label="item.label"
                   :value="item.value"
-                >
-                </el-option>
+                />
               </el-select>
             </el-form-item>
 
-            <el-form-item label="退货备注" prop="return_remark">
-              <!-- <el-input v-model="ruleForm.tel" :disabled="isDetail"></el-input> -->
+            <el-form-item label="退货备注" prop="remark">
               <el-input
                 type="textarea"
                 maxlength="250"
                 show-word-limit
                 placeholder="请填写备注"
-                v-model="ruleForm.return_remark"
+                v-model="ruleForm.remark"
               />
             </el-form-item>
-            <el-form-item label="仓库信息">
-              <el-table
-                :data="tableForm.product_go"
-                border
-                :size="'mini'"
-                row-key="key"
-              >
-                <el-table-column label="商品总数量" width="100">
-                  <template slot-scope="scope">
-                    <!-- :prop="'product_go.' + scope.$index + '.wsend_num'" -->
-                    <el-form-item :style="!scope.row.edit ? 'margin:0' : ''">
-                      <p>{{ scope.row.num }}</p>
-                    </el-form-item>
-                  </template>
-                </el-table-column>
-                <el-table-column label="已发货数量" width="100">
-                  <template slot-scope="scope">
-                    <!-- :prop="'product_go.' + scope.$index + '.send_num'" -->
-                    <el-form-item :style="!scope.row.edit ? 'margin:0' : ''">
-                      <p>
-                        {{ scope.row.send_num }}
-                      </p>
-                    </el-form-item>
-                  </template>
-                </el-table-column>
-                <el-table-column label="未发货数量" width="100">
-                  <template slot-scope="scope">
-                    <!-- :prop="'product_go.' + scope.$index + '.wsend_num'" -->
-                    <el-form-item :style="!scope.row.edit ? 'margin:0' : ''">
-                      <p>{{ scope.row.wsend_num }}</p>
-                    </el-form-item>
-                  </template>
-                </el-table-column>
-                <el-table-column label="退货数量">
-                  <template slot-scope="scope">
-                    <!-- :prop="'product_go.' + scope.$index + '.return_num'" -->
-                    <el-form-item
-                      :style="!scope.row.edit ? 'margin:0' : ''"
-                      :rules="{
-                        required: true,
-                        message: '退货数量不能为空',
-                        trigger: 'blur',
-                      }"
-                    >
-                      <el-input
-                        :disabled="!scope.row.edit"
-                        v-model="ruleForm.return_num"
-                      ></el-input>
-                    </el-form-item>
-                  </template>
-                </el-table-column>
-                <el-table-column label="采购编码" width="180">
-                  <template slot-scope="scope">
-                    <!-- :prop="'product_go.' + scope.$index + '.wsend_num'" -->
-                    <el-form-item :style="!scope.row.edit ? 'margin:0' : ''">
-                      <p>{{ scope.row.orderCode }}</p>
-                    </el-form-item>
-                  </template>
-                </el-table-column>
-                <el-table-column label="仓库名称" width="150">
-                  <template slot-scope="scope">
-                    <!-- :prop="'product_go.' + scope.$index + '.wsm_name'" -->
-                    <el-form-item :style="!scope.row.edit ? 'margin:0' : ''">
-                      <p>{{ scope.row.wsm_name }}</p>
-                    </el-form-item>
-                  </template>
-                </el-table-column>
-                <el-table-column label="仓库供应商" width="220">
-                  <template slot-scope="scope">
-                    <!-- :prop="'product_go.' + scope.$index + '.wsend_num'" -->
-                    <el-form-item :style="!scope.row.edit ? 'margin:0' : ''">
-                      <p>{{ scope.row.wsm_supplier }}</p>
-                    </el-form-item>
-                  </template>
-                </el-table-column>
-                <el-table-column label="仓库编码" width="200">
-                  <template slot-scope="scope">
-                    <!-- :prop="'product_go.' + scope.$index + '.wsend_num'" -->
-                    <el-form-item :style="!scope.row.edit ? 'margin:0' : ''">
-                      <p>{{ scope.row.wsm_code }}</p>
-                    </el-form-item>
-                  </template>
-                </el-table-column>
-
-                <!-- <el-table-column label="仓库供应商">
-                  <template slot-scope="scope">
-                    <el-form-item :style="!scope.row.edit ? 'margin:0' : ''">
-                      <p>{{ scope.row.wsm_supplierNo }}</p>
-                    </el-form-item>
-                  </template>
-                </el-table-column> -->
-
-                <el-table-column fixed="right" label="操作" width="80">
-                  <template slot-scope="scope">
-                    <el-tooltip
-                      effect="dark"
-                      content="编辑"
-                      v-if="!scope.row.edit"
-                      placement="top"
-                    >
-                      <i
-                        class="el-icon-edit tb-icon"
-                        @click="editRow(scope.$index, 'return')"
-                      ></i>
-                    </el-tooltip>
-
-                    <el-tooltip
-                      effect="dark"
-                      content="保存"
-                      v-if="scope.row.edit"
-                      placement="top"
-                    >
-                      <i
-                        class="el-icon-circle-check tb-icon"
-                        @click="checkRow(scope.$index, 'return')"
-                      ></i>
-                    </el-tooltip>
-
-                    <el-tooltip effect="dark" content="重置" placement="top">
-                      <i
-                        v-if="scope.row.edit"
-                        class="el-icon-refresh-left tb-icon"
-                        @click="resetRow(scope.$index)"
-                      ></i>
-                    </el-tooltip>
-                  </template>
-                </el-table-column>
-              </el-table>
-              <!-- <el-col
-                :span="24"
-                style="text-align: right; padding: 30px 0 10px 0"
-              >
-                <el-button type="primary" :size="'mini'" @click="submitForm"
-                  >保 存
-                </el-button>
-              </el-col> -->
-            </el-form-item>
-            <el-form-item label="收货信息">
-              <el-table
-                :data="tableForm.get_product_go"
-                border
-                :size="'mini'"
-                row-key="key"
-              >
-                <el-table-column label="收货总数量">
-                  <template slot-scope="scope">
-                    <!-- :prop="'product_go.' + scope.$index + '.send_num'" -->
-                    <el-form-item :style="!scope.row.edit ? 'margin:0' : ''">
-                      <p>
-                        {{ scope.row.receipt_quantity }}
-                      </p>
-                    </el-form-item>
-                  </template>
-                </el-table-column>
-                <el-table-column label="已发货数量">
-                  <template slot-scope="scope">
-                    <!-- :prop="'product_go.' + scope.$index + '.send_num'" -->
-                    <el-form-item :style="!scope.row.edit ? 'margin:0' : ''">
-                      <p>
-                        {{ scope.row.send_num }}
-                      </p>
-                    </el-form-item>
-                  </template>
-                </el-table-column>
-                <el-table-column label="未发货数量">
-                  <template slot-scope="scope">
-                    <!-- :prop="'product_go.' + scope.$index + '.wsend_num'" -->
-                    <el-form-item :style="!scope.row.edit ? 'margin:0' : ''">
-                      <p>{{ scope.row.wsend_num }}</p>
-                    </el-form-item>
-                  </template>
-                </el-table-column>
-                <el-table-column label="退货数量">
-                  <template slot-scope="scope">
-                    <!-- :prop="'product_go.' + scope.$index + '.return_num'" -->
-                    <el-form-item
-                      :style="!scope.row.edit ? 'margin:0' : ''"
-                      :rules="{
-                        required: true,
-                        message: '退货数量不能为空',
-                        trigger: 'blur',
-                      }"
-                    >
-                      <el-input
-                        :disabled="!scope.row.edit"
-                        v-model="ruleForm.get_return_num"
-                      ></el-input>
-                    </el-form-item>
-                  </template>
-                </el-table-column>
-                <el-table-column label="采购编码" width="200">
-                  <template slot-scope="scope">
-                    <!-- :prop="'product_go.' + scope.$index + '.send_num'" -->
-                    <el-form-item :style="!scope.row.edit ? 'margin:0' : ''">
-                      <p>
-                        {{ scope.row.orderCode }}
-                      </p>
-                    </el-form-item>
-                  </template>
-                </el-table-column>
-                <!-- <el-table-column label="仓库供应商">
-                  <template slot-scope="scope">
-                    <el-form-item :style="!scope.row.edit ? 'margin:0' : ''">
-                      <p>{{ scope.row.wsm_supplierNo }}</p>
-                    </el-form-item>
-                  </template>
-                </el-table-column> -->
-                <el-table-column label="收货联系人 ">
-                  <template slot-scope="scope">
-                    <!-- :prop="'product_go.' + scope.$index + '.wsm_name'" -->
-                    <el-form-item :style="!scope.row.edit ? 'margin:0' : ''">
-                      <p>{{ scope.row.contactor }}</p>
-                    </el-form-item>
-                  </template>
-                </el-table-column>
-                <el-table-column label="联系方式" width="120">
-                  <template slot-scope="scope">
-                    <!-- :prop="'product_go.' + scope.$index + '.wsm_name'" -->
-                    <el-form-item :style="!scope.row.edit ? 'margin:0' : ''">
-                      <p>{{ scope.row.mobile }}</p>
-                    </el-form-item>
-                  </template>
-                </el-table-column>
-
-                <el-table-column fixed="right" label="操作" width="80">
-                  <template slot-scope="scope">
-                    <el-tooltip
-                      effect="dark"
-                      content="编辑"
-                      v-if="!scope.row.edit"
-                      placement="top"
-                    >
-                      <i
-                        class="el-icon-edit tb-icon"
-                        @click="editRow(scope.$index, 'get')"
-                      ></i>
-                    </el-tooltip>
-
-                    <el-tooltip
-                      effect="dark"
-                      content="保存"
-                      v-if="scope.row.edit"
-                      placement="top"
-                    >
-                      <i
-                        class="el-icon-circle-check tb-icon"
-                        @click="checkRow(scope.$index, 'get')"
-                      ></i>
-                    </el-tooltip>
-
-                    <el-tooltip effect="dark" content="重置" placement="top">
-                      <i
-                        v-if="scope.row.edit"
-                        class="el-icon-refresh-left tb-icon"
-                        @click="resetRow(scope.$index)"
-                      ></i>
-                    </el-tooltip>
-                  </template>
-                </el-table-column>
-              </el-table>
-              <!-- <el-col
-                :span="24"
-                style="text-align: right; padding: 30px 0 10px 0"
-              >
-                <el-button type="primary" :size="'mini'" @click="submitForm"
-                  >保 存
-                </el-button>
-              </el-col> -->
-            </el-form-item>
           </el-form>
         </el-col>
         <el-col :span="24" style="text-align: right">
@@ -341,78 +70,20 @@
   </el-dialog>
 </template>
    <script>
-import asyncRequest from "@/apis/service/sellOut/sellReturnList";
+import asyncRequest from "@/apis/service/sheetOrder/zxReturn";
 import resToken from "@/mixins/resToken";
-import {
-  isnumber,
-  isMobile,
-  validEmail,
-  isAlphanumeric,
-  isChinese,
-  isEmoticon,
-  validAlphabets,
-} from "@/utils/validate";
+import { isnumber } from "@/utils/validate";
 export default {
-  name: "sellReturnList",
+  name: "zxReturn",
   props: ["showModel", "id", "isDetail", "sitem"],
   mixins: [resToken],
   data() {
-    const validateusername = (rule, value, callback) => {
-      if (value === "") {
-        callback(new Error("账号不能为空!"));
-      } else {
-        if (value.length < 6 || value.length > 18) {
-          callback(new Error("账号规则为6~18位数字与字母组合!"));
-        } else {
-          if (isnumber(value)) {
-            callback(new Error("账号规则为6~18位数字与字母组合!"));
-          } else if (validAlphabets(value)) {
-            callback(new Error("账号规则为6~18位数字与字母组合!"));
-          } else if (!isAlphanumeric(value)) {
-            callback(new Error("账号规则为6~18位数字与字母组合!"));
-          } else {
-            callback();
-          }
-        }
-      }
-    };
-    const validatename = (rule, value, callback) => {
-      if (value === "") {
-        callback(new Error("真实姓名不能为空!"));
-      } else {
-        if (value.length < 2 || value.length > 12) {
-          callback(new Error("真实姓名规则为2~12位汉字!"));
-        } else {
-          if (!isChinese(value)) {
-            console.log(9999);
-            callback(new Error("真实姓名规则为2~12位汉字!"));
-          } else if (isEmoticon(value)) {
-            console.log(2345);
-            callback(new Error("真实姓名规则为2~12位汉字!"));
-          } else {
-            callback();
-          }
-        }
-      }
-    };
-    const validatemobile = (rule, value, callback) => {
-      if (value === "") {
-        callback(new Error("手机号不能为空!"));
-      } else {
-        if (!isMobile(value)) {
-          callback(new Error("手机号格式不正确!"));
-        } else {
-          callback();
-        }
-      }
-    };
-
-    const validateEmail = (rule, value, callback) => {
+    const validateWeight = (rule, value, callback) => {
       if (value === "") {
-        callback();
+        callback(new Error("退货数量不能为空!"));
       } else {
-        if (!validEmail(value)) {
-          callback(new Error("邮箱格式不正确!"));
+        if (!isnumber(value)) {
+          callback(new Error("退货数量仅支持整数!"));
         } else {
           callback();
         }
@@ -426,34 +97,29 @@ export default {
       title: "添加销售退货单",
       showModelThis: this.showModel,
       ruleForm: {
-        get_return_num: "",
+        num: "",
         outCode: "", //出库单编号
-        return_remark: "", //退货备注
-        return_num: "", //退货数量
-        returnReason: [], //退货原因
-        // email: "",
-        // role_id: "",
-        // status: "1",
-        // item: [],
+        remark: "", //退货备注
+        num: "", //退货数量
+        errorCode: "", //退货原因
       },
       rulesThis: this.rules,
       rules: {
-        returnReason: [
+        errorCode: [
           {
             required: true,
             message: "请选择退货原因",
-            // type: "array",
             trigger: "change",
           },
         ],
-        return_num: [
+        num: [
           {
             required: true,
-            validator: validatemobile,
+            validator: validateWeight,
             trigger: "blur",
           },
         ],
-        return_remark: [
+        remark: [
           {
             required: true,
             message: "请输入退货备注",
@@ -461,10 +127,6 @@ export default {
           },
         ],
       },
-      tableForm: {
-        product_go: [],
-        get_product_go: [],
-      },
     };
   },
   watch: {
@@ -485,108 +147,27 @@ export default {
     closeModel() {
       console.log("closeModel!!");
     },
-    // 获取退换货原因
-    async getReason() {
-      this.loading = true;
-      let model = {
-        page: 1,
-        size: 15,
-        type: "5",
-      };
-      const res = await asyncRequest.getReason(model);
-      if (res && res.code === 0 && res.data) {
-        // this.tableData = res.data.list;
-        // console.log(this.tableData);
-        // this.pageInfo.total = Number(res.data.count);
-        // this.reason_options =
-        res.data.list.forEach((element) => {
-          let obj = {
-            value: element.result_code,
-            label: element.result,
-            id: element.id,
-          };
-          this.reason_options.push(obj);
-        });
-        console.log(this.reason_options);
-      } else if (res && res.code >= 100 && res.code <= 104) {
-        await this.logout();
-      } else {
-        this.tableData = [];
-        this.pageInfo.total = 0;
-      }
-      this.loading = false;
-    },
+
     async initForm() {
       this.loading = true;
-      // await this.getRole();
-      if (this.id === "add") {
-        this.title = "添加销售退货单";
-        this.rulesThis = this.rules;
-        await this.resetForm();
-      } else {
-        if (this.isDetail) {
-          this.title = "添加销售退货单详情";
-          this.rulesThis = {};
-        } else {
-          this.title = "修改添加销售退货单";
-          this.rulesThis = this.rules;
-        }
-        await this.resetForm(this.sitem);
-        // await this.initData()
-      }
+      this.title = "添加销售退货单";
       this.getReason(); //获取退还货原因
-
+      this.rulesThis = this.rules;
+      await this.resetForm();
       this.loading = false;
     },
-    async initData() {
-      // const res = await asyncRequest.detail({ id: this.id });
-      // if (res && res.code === 0 && res.data) {
-      //   this.ruleForm = res.data;
-      //   this.ruleForm.role_id = this.ruleForm.role;
-      // } else if (res && res.code >= 100 && res.code <= 104) {
-      //   await this.logout();
-      // } else {
-      //   this.$message.warning(res.message);
-      // }
-    },
-    async resetForm(sitem) {
+    async resetForm() {
       // 重置
       await this.$nextTick(() => {
         if (this.$refs.ruleForm) {
           this.$refs.ruleForm.resetFields();
           this.$refs.ruleForm.clearValidate();
           this.outCode = this.sitem.orderCode;
-          console.log(this.outCode);
-          const { info, addrs } = this.sitem;
-          info.forEach((ele) => {
-            this.noSendNum += ele.wsend_num;
-          });
-          let list = JSON.parse(JSON.stringify(info)); //
-          list.map((v) => {
-            v.edit = false;
-            return v;
-          });
-          this.tableForm.product_go = [].concat(...list);
-
-          console.log(list);
-          addrs.forEach((ele) => {
-            this.noSendNumbers += ele.wsend_num;
-          });
-          let l_list = JSON.parse(JSON.stringify(addrs));
-          l_list.map((ele) => {
-            ele.edit = false;
-            return ele;
-          });
-          this.tableForm.get_product_go = [].concat(...l_list);
-          console.log(l_list);
           this.ruleForm = {
-            return_remark: "", //退货备注
-            return_num: "", //退货数量
-            returnReason: [], //退货原因
-            // email: "",
-            // role_id: "",
-            // status: "1",
-            // item: [],
+            orderCode: this.outCode,
+            remark: "", //退货备注
+            num: "", //退货数量
+            errorCode: "", //退货原因
           };
         }
       });
@@ -596,30 +177,12 @@ export default {
       await this.$refs.ruleForm.validate(async (valid) => {
         if (valid) {
           this.loading = true;
-          console.log(this.ruleForm);
           const model = JSON.parse(JSON.stringify(this.ruleForm));
-          console.log(model);
-          model.errorCode = model.returnReason.toString();
-          model.num = model.return_num;
-          model.remark = model.return_remark;
-          model.outCode = this.outCode;
-          console.log(model);
-          if (model.return_num > this.noSendNum) {
-            this.$message.warning("退货数量不能大于未发货数量");
-            return;
-          }
-          let res = {};
-          if (this.id === "add") {
-            delete model["id"];
-            res = await asyncRequest.add(model);
-          } else {
-            res = await asyncRequest.update(model);
-          }
+          const res = await asyncRequest.add(model);
           this.loading = false;
           if (res && res.code === 0) {
-            const title = this.id === "add" ? "添加成功" : "修改成功";
             this.$notify.success({
-              title,
+              title: "创建成功!",
               message: "",
             });
             this.showModelThis = false;
@@ -636,82 +199,39 @@ export default {
         }
       });
     },
-    //异常原因筛选
-    //保存某一行
-    checkRow(rowIndex, name) {
-      if (name == "return") {
-        const model = JSON.parse(JSON.stringify(this.ruleForm));
-        console.log(model.return_num);
-        console.log(this.noSendNum);
-        if (Number(model.return_num) > Number(this.noSendNum)) {
-          this.$message.warning("退货数量不能大于未发货数量");
-          return;
-        }
-        const { check_value, check_remark } =
-          this.tableForm.product_go[rowIndex];
-        if (check_value != "" && check_remark != "") {
-          this.tableForm.product_go[rowIndex].edit = false;
-        } else {
-          this.$message.warning("审核情况或审核备注不能为空");
-        }
-      } else if (name == "get") {
-        const model = JSON.parse(JSON.stringify(this.ruleForm));
-        console.log(model);
-        console.log(this.noSendNum);
-        if (Number(model.get_return_num) > Number(this.noSendNum)) {
-          this.$message.warning("退货数量不能大于未发货数量");
-          return;
-        }
-        const { check_value, check_remark } =
-          this.tableForm.get_product_go[rowIndex];
-        if (check_value != "" && check_remark != "") {
-          this.tableForm.get_product_go[rowIndex].edit = false;
-        } else {
-          this.$message.warning("审核情况或审核备注不能为空");
-        }
-      }
-    },
-    //编辑某一行
-    editRow(rowIndex, name) {
-      // console.log(this.tableForm.product_go[rowIndex].edit);
-      // console.log(rowIndex);
-      // console.log(this.tableForm.product_go);
-      if (name == "return") {
-        let index = this.tableForm.product_go.findIndex((v) => {
-          v.edit;
-        });
-        console.log(index);
-        if (index !== -1) {
-          this.$message.warning("请完成其他行的编辑!");
-          return;
-        } else {
-          this.tableForm.product_go[rowIndex].edit = true;
-        }
-        console.log(this.tableForm.product_go[rowIndex].edit);
-      } else if (name == "get") {
-        let index = this.tableForm.product_go.findIndex((v) => {
-          v.edit;
+    // 获取退换货原因
+    async getReason() {
+      this.loading = true;
+      let model = {
+        page: 1,
+        size: 100,
+        type: "5",
+      };
+      const res = await asyncRequest.getReason(model);
+      if (res && res.code === 0 && res.data) {
+        const { list } = res.data;
+        list.forEach((element) => {
+          let obj = {
+            value: element.result_code,
+            label: element.result,
+            id: element.id,
+          };
+          this.reason_options.push(obj);
         });
-        console.log(index);
-        if (index !== -1) {
-          this.$message.warning("请完成其他行的编辑!");
-          return;
-        } else {
-          this.tableForm.get_product_go[rowIndex].edit = true;
-        }
-        console.log(this.tableForm.get_product_go[rowIndex].edit);
+      } else if (res && res.code >= 100 && res.code <= 104) {
+        await this.logout();
+      } else {
+        this.tableData = [];
+        this.pageInfo.total = 0;
       }
-    },
-    resetRow(rowIndex) {
-      this.tableForm.product_go[rowIndex].check_remark = "";
-      this.tableForm.product_go[rowIndex].check_value = "agree";
+      this.loading = false;
     },
   },
 };
 </script>
 
    <style lang="scss" scoped>
-.sellReturnList {
+.zxReturn {
 }
 </style>
    

+ 24 - 101
src/views/sheetOrder/zxOrder/components/addForm.vue

@@ -142,126 +142,48 @@
             border
             :size="'mini'"
             style="width: 100%"
+            max-height="350px"
             row-key="key"
           >
             <el-table-column
+              show-overflow-tooltip
               prop="receipt_quantity"
               label="收货总数"
               min-width="125"
-            >
-              <template slot-scope="scope">
-                <el-form-item
-                  :prop="
-                    'order_addr.' + scope.$index + '.' + 'receipt_quantity'
-                  "
-                  :rules="addrRules.receipt_quantity"
-                  :size="'mini'"
-                  :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
-                >
-                  <el-input
-                    v-model="scope.row.receipt_quantity"
-                    :disabled="!scope.row.edit"
-                  />
-                </el-form-item>
-              </template>
-            </el-table-column>
+            />
 
             <el-table-column
               prop="arrive_time"
+              show-overflow-tooltip
               label="最晚收货日期"
-              width="150"
-            >
-              <template slot-scope="scope">
-                <el-form-item
-                  :prop="'order_addr.' + scope.$index + '.' + 'arrive_time'"
-                  :rules="addrRules.arrive_time"
-                  :size="'mini'"
-                  :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
-                >
-                  <el-date-picker
-                    :disabled="!scope.row.edit"
-                    v-model="scope.row.arrive_time"
-                    type="date"
-                    style="width: 100%"
-                    value-format="yyyy-MM-dd"
-                    :picker-options="pickerOptions"
-                  >
-                  </el-date-picker>
-                </el-form-item>
-              </template>
-            </el-table-column>
+              min-width="110"
+            />
             <el-table-column
               prop="contactor"
               label="收件联系人"
+              show-overflow-tooltip
               min-width="110"
-            >
-              <template slot-scope="scope">
-                <el-form-item
-                  :prop="'order_addr.' + scope.$index + '.' + 'contactor'"
-                  :rules="addrRules.contactor"
-                  :size="'mini'"
-                  :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
-                >
-                  <el-input
-                    v-model="scope.row.contactor"
-                    :disabled="!scope.row.edit"
-                  />
-                </el-form-item>
-              </template>
-            </el-table-column>
+            />
 
-            <el-table-column prop="mobile" label="收货联系电话" min-width="130">
-              <template slot-scope="scope">
-                <el-form-item
-                  :prop="'order_addr.' + scope.$index + '.' + 'mobile'"
-                  :rules="addrRules.mobile"
-                  :size="'mini'"
-                  :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
-                >
-                  <el-input
-                    v-model="scope.row.mobile"
-                    :disabled="!scope.row.edit"
-                  />
-                </el-form-item>
-              </template>
-            </el-table-column>
+            <el-table-column
+              prop="mobile"
+              show-overflow-tooltip
+              label="收货联系电话"
+              min-width="110"
+            />
 
             <el-table-column
-              prop="addr_code"
+              prop="addr_code_name"
               label="收货省市区"
               min-width="230"
-            >
-              <template slot-scope="scope">
-                <el-form-item
-                  :prop="'order_addr.' + scope.$index + '.' + 'addr_code'"
-                  :rules="addrRules.addr_code"
-                  :size="'mini'"
-                  :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
-                >
-                  <select-area
-                    :value="scope.row.addr_code"
-                    :disabled="!scope.row.edit"
-                    :size="'mini'"
-                    @selectChange="select_area_change($event, scope.$index)"
-                  />
-                </el-form-item>
-              </template>
-            </el-table-column>
-            <el-table-column prop="addr" label="详细地址" min-width="170">
-              <template slot-scope="scope">
-                <el-form-item
-                  :prop="'order_addr.' + scope.$index + '.' + 'addr'"
-                  :rules="addrRules.addr"
-                  :size="'mini'"
-                  :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
-                >
-                  <el-input
-                    v-model="scope.row.addr"
-                    :disabled="!scope.row.edit"
-                  />
-                </el-form-item>
-              </template>
-            </el-table-column>
+              show-overflow-tooltip
+            />
+            <el-table-column
+              prop="addr"
+              show-overflow-tooltip
+              label="详细地址"
+              min-width="170"
+            />
 
             <el-table-column
               fixed="right"
@@ -636,6 +558,7 @@ export default {
                   area_code && city_code && provice_code
                     ? [provice_code, city_code, area_code]
                     : [],
+                addr_code_name: v.addr_info,
                 addr: v.addr || "",
                 id: v.id,
                 is_del: 0,

+ 3 - 16
src/views/sheetOrder/zxOrder/components/order-out-table.vue

@@ -7,6 +7,7 @@
       :size="'mini'"
       style="width: 100%"
       row-key="key"
+      max-height="400px"
     >
       <el-table-column
         show-overflow-tooltip
@@ -86,7 +87,7 @@
         </template></el-table-column
       >
 
-      <el-table-column fixed="right" width="150">
+      <el-table-column fixed="right" width="50">
         <template slot="header" slot-scope="scope">
           <el-tooltip
             style="margin: 3px 0 0 5px"
@@ -101,9 +102,7 @@
               @click="openHouseModal()"
             ></i>
 
-            <!-- @click="openModal('add', '028')"  -->
-
-            <!--  -->
+         
           </el-tooltip>
           <span v-else>操作</span>
         </template>
@@ -120,18 +119,6 @@
               @click="routeGoto('zxoutOrderDetail', { id: scope.row.outCode })"
             ></i>
           </el-tooltip>
-          <el-tooltip
-            v-if="sitem.status == '1'"
-            class="fr"
-            effect="dark"
-            content="新建售后申请"
-            placement="top"
-          >
-            <i
-              class="el-icon-warning tb-icon"
-              @click="openModal('add', scope.row)"
-            ></i>
-          </el-tooltip>
         </template>
       </el-table-column>
     </el-table>

+ 24 - 20
src/views/sheetOrder/zxOrder/detail.vue

@@ -4,11 +4,11 @@
       style="width: 100%"
       v-if="powers && powers.length > 0 && powers.some((item) => item == '001')"
     >
-    {{status}}--{{powers}}
+      {{ status }}--{{ powers }}
       <div class="tl" style="padding: 10px 0 50px 0">
         <!-- <span> {{ status }}----{{ powers }}</span> -->
 
-        <!-- <el-button
+        <el-button
           style="margin: 0 0 0 10px"
           class="fr"
           type="primary"
@@ -16,20 +16,9 @@
           :size="'mini'"
           @click="openModal('add', false, 'sell')"
           >新建销售退货单
-        </el-button> -->
-
-        <el-button
-          type="primary"
-          plain
-          class="fr"
-          :size="'mini'"
-          style="margin: 0 0 0 10px"
-          @click="statusConfirm('1', '发起审核流程')"
-          v-if="status === '0' && powers.some((item) => item == '012')"
-          >发起审核流程
         </el-button>
 
-        <el-button
+        <!-- <el-button
           type="primary"
           plain
           class="fr"
@@ -38,7 +27,7 @@
           @click="statusConfirm('3', '开始发货')"
           v-if="status === '2' && powers.some((item) => item == '026')"
           >开始发货
-        </el-button>
+        </el-button> -->
         <!-- <el-button
           @click="statusConfirm('-1', '作废该条信息')"
           type="danger"
@@ -51,7 +40,6 @@
           "
           >作废该条信息</el-button
         > -->
-       
       </div>
       <status-bar
         v-if="newTime !== ''"
@@ -69,7 +57,23 @@
             @refresh="initData()"
           />
         </el-collapse-item>
-
+        <el-collapse-item
+          title="发起审核流程"
+          name="0"
+          v-if="status === '0' && powers.some((item) => item == '012')"
+        >
+          <div style="height: 45px; padding: 0 20px 20px 0">
+            <el-button
+              type="primary"
+              plain
+              class="fr"
+              :size="'mini'"
+              style="margin: 0 0 0 10px"
+              @click="statusConfirm('1', '发起审核流程')"
+              >发起审核流程
+            </el-button>
+          </div>
+        </el-collapse-item>
         <el-collapse-item title="销售出库单" name="3">
           <order-out-table
             :newTime="newTime"
@@ -78,8 +82,8 @@
             :id="queryId"
             @refresh="initData()"
           />
-        </el-collapse-item> 
-        
+        </el-collapse-item>
+
         <!-- <el-collapse-item title="出库物流" name="3">
           <add-edit1
             :newTime="newTime"
@@ -133,7 +137,7 @@ import addEdit from "./addEdit";
 export default {
   name: "zxOrderDetail",
   mixins: [mixinPage, resToken],
-  
+
   components: {
     // addEdit1,
     addEdit,

+ 33 - 74
src/views/sheetOrder/zxReturn/columns.js

@@ -1,106 +1,65 @@
 export default [
-        {
-          prop: "orderCode",
-          label: "采购单编号",
-          width:"160"
-        },
-        {
-          prop: "thNo",
-          label: "退货单编号",
-          width:"160"
-        },
-        // {确认单编号}
-        // {order_type类型}
-       
-
-        {
-          prop: "outCode",
-          label: "退货仓库编号",
-          width:"160"
-
-        },
         {
           prop: "returnCode",
-          label: "退货仓库名称",
+          label: "咨询退货编号",
           width:"160"
-
-        },
-        {
-          prop: "return_wsm",   
-          label: "退货公司",
         },
         {
-          prop: "return_num",
-          label: "退货公司编号",
+          prop: "orderCode",
+          label: "咨询单编号",
+          width:"160"
         },
         {
-            prop:"normal_num",
-            label:"申请人",
+          prop: "apply_name",   
+          label: "申请人",
+          width:"65"
         },
         {
-            prop:"received_num",
-            label:"申请时间",
+          prop: "status",
+          label: "状态",
+          _slot_: "status",
+          width: "125px",
         },
         {
-          prop: "contactor",
+
+          prop: "num",
           label: "退货数量",
+          width:"110"
         },
         {
-          prop: "mobile",
-          label: "商品单价",
-        },
-        {
-          prop: "addr",
-          label: "退货总金额",
+          
+          prop: "total_num",
+          label: "订单总数",
+          width:"110"
         },
-        // {地址code}
-        // {
-        //   prop: "post_fee",
-        //   label: "邮费",
-        // },
-        // {
-        //   prop: "post_code",
-        //   label: "快递单号",
-        //   width:"160"
-        // },
-        //  {
-        //   prop: "post_company",
-        //   label: "物流公司",
-        // },
-        // {
-        //     prop:"remark",
-        //     label:"备注",
-        // },
         // {
-        //   prop: "return_code",
-        //   label: "退货原因",
-        // },
-        // {
-        //     prop:"good_code",
-        //     label:"商品属性编号",
-        //     width:"150"
-        // },
-        // {
-        //     prop:"good_name",
-        //     label:"商品名称",
-        //     width:"150"
+          
+        //   prop: "return_totle",
+        //   label: "退货总货款",
+        //   width:"100"
         // },
         {
-          prop: "status",
-          label: "状态",
-          _slot_: "status",
-          width: "80px",
+          prop: "good_code",   
+          label: "商品编码",
+          'width':"125"
         },
+        {
+          prop: "good_name",   
+          label: "商品名称",
+          'min-width':"130"
+        },
+      
         {
           prop: "addtime",
           label: "申请时间",
           sortable: true,
-          width:150
+          width:145
         },
         {
           prop: "",
           label: "操作",
           fixed: "right",
+          width:50,
           _noset_: true,
           _slot_: "operation",
         },

+ 284 - 0
src/views/sheetOrder/zxReturn/components/addEdit.vue

@@ -0,0 +1,284 @@
+<template>
+  <el-form
+    :model="ruleForm"
+    status-icon
+    :rules="rulesThis"
+    ref="ruleForm"
+    label-width="95px"
+    class="demo-ruleForm"
+  >
+    <el-row>
+      <el-col :span="12">
+        <el-form-item label="商品分类" prop="return_remark">
+          <el-input v-model="ruleForm.return_remark" disabled />
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item label="商品名称" prop="tel">
+          <el-input v-model="ruleForm.tel" disabled />
+        </el-form-item>
+      </el-col>
+
+      <el-col :span="6">
+        <el-form-item label="销售总量" prop="tel">
+          <el-input v-model="ruleForm.tel" disabled />
+        </el-form-item>
+      </el-col>
+        <el-col :span="6">
+        <el-form-item label="已发货总量" prop="tel">
+          <el-input v-model="ruleForm.tel" disabled />
+        </el-form-item>
+      </el-col>
+         <el-col :span="6">
+        <el-form-item label="未发货总量" prop="tel">
+          <el-input v-model="ruleForm.tel" disabled />
+        </el-form-item>
+      </el-col>
+      <el-col :span="6">
+        <el-form-item label="退货总量" prop="tel">
+          <el-input v-model="ruleForm.tel" disabled />
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item label="退货原因" prop="tel">
+          <el-input v-model="ruleForm.tel" disabled />
+        </el-form-item>
+      </el-col>
+      <el-col :span="24">
+        <el-form-item label="退货备注" prop="tel">
+          <el-input
+            v-model="ruleForm.tel"
+            type="textarea"
+            maxlength="250"
+            show-word-limit
+            disabled
+          />
+        </el-form-item>
+      </el-col>
+    </el-row>
+  </el-form>
+</template>
+   <script>
+import resToken from "@/mixins/resToken";
+export default {
+  name: "sellReturnList",
+  props: ["showModel", "id", "isDetail", "sitem"],
+  mixins: [resToken],
+  data() {
+    return {
+      reason_options: [], //退换货原因备选项
+      loading: false,
+      title: "添加账号",
+      showModelThis: this.showModel,
+      ruleForm: {
+        return_remark: "", //退货备注
+        return_num: "", //退货数量
+        returnReason: [], //退货原因
+        email: "",
+        role_id: "",
+        status: "1",
+        item: [],
+      },
+      rulesThis: this.rules,
+      rules: {
+        returnReason: [
+          {
+            required: true,
+            message: "请选择退货原因",
+            type: "array",
+            trigger: "change",
+          },
+        ],
+        return_num: [
+          {
+            required: true,
+            // validator: validatemobile,
+            trigger: "blur",
+          },
+        ],
+        return_remark: [
+          {
+            required: true,
+            message: "请输入退货备注",
+            trigger: "blur",
+          },
+        ],
+      },
+    };
+  },
+  watch: {
+    showModel: function (val) {
+      this.showModelThis = val;
+      if (val) {
+        this.initForm();
+      }
+    },
+    showModelThis(val) {
+      if (!val) {
+        this.$emit("cancel");
+      }
+    },
+  },
+
+  methods: {
+    closeModel() {
+      console.log("closeModel!!");
+    },
+    // 获取退换货原因
+    async getReason() {
+      this.loading = true;
+      let model = {
+        page: 1,
+        size: 15,
+        type: "5",
+      };
+      const res = await asyncRequest.getReason(model);
+      if (res && res.code === 0 && res.data) {
+        // this.tableData = res.data.list;
+        // console.log(this.tableData);
+        // this.pageInfo.total = Number(res.data.count);
+        // this.reason_options =
+        res.data.list.forEach((element) => {
+          let obj = {
+            value: element.result_code,
+            label: element.result,
+            id: element.id,
+          };
+          this.reason_options.push(obj);
+        });
+        console.log(this.reason_options);
+      } else if (res && res.code >= 100 && res.code <= 104) {
+        await this.logout();
+      } else {
+        this.tableData = [];
+        this.pageInfo.total = 0;
+      }
+      this.loading = false;
+    },
+    async initForm() {
+      this.loading = true;
+      // await this.getRole();
+      if (this.id === "add") {
+        this.title = "添加账号";
+        this.rulesThis = this.rules;
+        await this.resetForm();
+      } else {
+        if (this.isDetail) {
+          this.title = "账号详情";
+          this.rulesThis = {};
+        } else {
+          this.title = "修改账号";
+          this.rulesThis = this.rules;
+        }
+        await this.resetForm(this.sitem);
+        // await this.initData()
+      }
+      this.getReason(); //获取退还货原因
+
+      this.loading = false;
+    },
+    // async getRole() {
+    //   const model = {
+    //     status: "", // 状态
+    //     level: "", // 姓名
+    //     role_name: "",
+    //   };
+    //   const res = await asyncRequest.getRole(model);
+    //   if (res && res.code === 0 && res.data) {
+    //     this.roleList = res.data;
+    //     this.roleList.map((v1) => {
+    //       v1.id += "";
+    //       v1.status += "";
+    //       return v1;
+    //     });
+    //   }
+    // },
+    async initData() {
+      const res = await asyncRequest.detail({ id: this.id });
+      if (res && res.code === 0 && res.data) {
+        this.ruleForm = res.data;
+        this.ruleForm.role_id = this.ruleForm.role;
+      } else if (res && res.code >= 100 && res.code <= 104) {
+        await this.logout();
+      } else {
+        this.$message.warning(res.message);
+      }
+    },
+    async resetForm(sitem) {
+      // 重置
+      await this.$nextTick(() => {
+        if (this.$refs.ruleForm) {
+          this.$refs.ruleForm.resetFields();
+          this.$refs.ruleForm.clearValidate();
+          const { username, nickname, mobile, email, roleid, status, item } =
+            sitem;
+          this.ruleForm = {
+            returnReason: [],
+            username: username || "", // 账号
+            name: nickname || "", // 真实姓名
+            mobile: mobile || "",
+            email: email || "",
+            role_id: roleid || "",
+            status: status || "",
+            item: item || [],
+          };
+          if (this.id === "add" || this.isDetail) {
+            this.rules.username[0].required = false;
+          }
+        }
+      });
+    },
+
+    async submitForm() {
+      await this.$refs.ruleForm.validate(async (valid) => {
+        if (valid) {
+          this.loading = true;
+          const { username, name, mobile, email, role_id, status } = JSON.parse(
+            JSON.stringify(this.ruleForm)
+          );
+          const model = {
+            id: this.id,
+            username: username || "", // 账号
+            nickname: name || "", // 真实姓名
+            mobile: mobile || "",
+            email: email || "",
+            role: role_id || "",
+            status: status || "",
+          };
+          let res = {};
+          if (this.id === "add") {
+            delete model["id"];
+            res = await asyncRequest.add(model);
+          } else {
+            res = await asyncRequest.update(model);
+          }
+          this.loading = false;
+          if (res && res.code === 0) {
+            const title = this.id === "add" ? "添加成功" : "修改成功";
+            this.$notify.success({
+              title,
+              message: "",
+            });
+            this.showModelThis = false;
+            // 刷新
+            this.$emit("refresh");
+          } else if (res && res.code >= 100 && res.code <= 104) {
+            await this.logout();
+          } else {
+            this.$message.warning(res.message);
+          }
+        } else {
+          console.log("error submit!!");
+          return false;
+        }
+      });
+    },
+  },
+};
+</script>
+
+   <style lang="scss" scoped>
+.sellReturnList {
+}
+</style>
+   

+ 39 - 0
src/views/sheetOrder/zxReturn/components/columnsForm.js

@@ -0,0 +1,39 @@
+export default [
+    {
+        prop: "orderCode",
+        label: "咨询订单编号",
+        col: "8",
+    },
+    {
+        prop: "class_cat",
+        label: "商品分类",
+        col: "16",
+    },
+    {
+        prop: "good_code",
+        label: "商品编号",
+        col: "8",
+    },
+    {
+        prop: "good_name",
+        label: "商品名称",
+        col: "16",
+    },
+
+
+    {
+        prop: "diff_price",
+        label: "工差总金额",
+        col: "8",
+    },
+    {
+        prop: "diff_weight",
+        label: "工差总重量",
+        col: "8",
+    },
+    {
+        prop: "gold_price",
+        label: "金价",
+        col: "8",
+    },
+]

+ 58 - 0
src/views/sheetOrder/zxReturn/components/showForm.vue

@@ -0,0 +1,58 @@
+<template>
+  <div class="modal-form-style">
+    <el-form
+      ref="sitem"
+      :model="sitem"
+      status-icon
+      :rules="rulesThis"
+      label-width="110px"
+      id="demo-sitem"
+    >
+      <el-row v-if="sitem !== null">
+        <template v-for="item in columns">
+          <el-col :key="item.prop" :span="item.col" v-if="sitem[item.prop]">
+            <el-form-item :label="item.label + ':'">
+              <div>{{ sitem[item.prop] }}{{ item.unit }}</div>
+            </el-form-item>
+          </el-col>
+        </template>
+      </el-row>
+    </el-form>
+  </div>
+</template>
+<script>
+import columns from "./columnsForm";
+export default {
+  name: "Account",
+  props: ["newTime", "sitem"],
+  data() {
+    return {
+      loading: false,
+      columns: columns,
+      sitem: null,
+    };
+  },
+  watch: {
+    newTime: function (val) {
+      if (val) {
+        this.initForm();
+      }
+    },
+  },
+  methods: {
+    closeModel() {
+      console.log("closeModel!!");
+    },
+
+    async initForm() {
+      this.loading = true;
+      this.loading = false;
+    },
+  },
+};
+</script>
+
+   <style lang="scss" scoped>
+.account {
+}
+</style>

+ 281 - 0
src/views/sheetOrder/zxReturn/detail.vue

@@ -0,0 +1,281 @@
+<template>
+  <div class="zxReturnDetail pagePadding">
+    <div
+      style="width: 100%"
+      v-if="powers && powers.length > 0 && powers.some((item) => item == '001')"
+    >
+      {{ status }}--{{ powers }}
+      <div class="tl" style="padding: 10px 0 50px 0">
+        <el-button
+          @click="statusConfirm('-1', '作废该条信息')"
+          type="danger"
+          plain
+          :size="'mini'"
+          v-if="
+            status !== '' &&
+            status !== '3' &&
+            powers.some((item) => item == '015')
+          "
+          >作废该条信息</el-button
+        >
+      </div>
+      <status-bar
+        v-if="newTime !== ''"
+        :newTime="newTime"
+        :options="statusOptions"
+        :status="status"
+      />
+      <el-collapse v-model="activeNames">
+        <el-collapse-item title="咨询退货单信息" name="-1">
+          <show-form
+            :newTime="newTime"
+            v-if="newTime !== ''"
+            :sitem="sitem"
+            :id="queryId"
+            @refresh="initData()"
+          />
+
+          <!-- <add-edit
+            :newTime="newTime"
+            v-if="newTime !== ''"
+            :sitem="sitem"
+            :id="queryId"
+            @refresh="initData()"
+          /> -->
+        </el-collapse-item>
+        <!-- v-if="status === '0' && powers.some((item) => item == '012')" -->
+        <el-collapse-item title="发起审核流程" name="0">
+          <div style="height: 45px; padding: 0 20px 20px 0">
+            <el-button
+              type="primary"
+              plain
+              class="fr"
+              :size="'mini'"
+              style="margin: 0 0 0 10px"
+              @click="statusConfirm('1', '发起审核流程')"
+              >发起审核流程
+            </el-button>
+          </div>
+        </el-collapse-item>
+        <el-collapse-item title="业务审核" name="1">
+          <div style="height: 45px; padding: 0 20px 20px 0">
+            <el-button
+              type="primary"
+              plain
+              class="fr"
+              :size="'mini'"
+              style="margin: 0 0 0 10px"
+              @click="statusConfirm('2', '同意业务审核')"
+              >业务审核提交
+            </el-button>
+          </div>
+        </el-collapse-item>
+
+        <el-collapse-item title="采购反馈" name="1">
+          <div style="height: 45px; padding: 0 20px 20px 0">
+            <el-button
+              type="primary"
+              plain
+              class="fr"
+              :size="'mini'"
+              style="margin: 0 0 0 10px"
+              @click="statusConfirm('2', '提交采购反馈')"
+              >提交采购反馈
+            </el-button>
+          </div>
+        </el-collapse-item>
+
+        <!--
+        <el-collapse-item title="销售出库单" name="3">
+          <order-out-table
+            :newTime="newTime"
+            v-if="newTime !== '' && status != '0'"
+            :sitem="sitem"
+            :id="queryId"
+            @refresh="initData()"
+          />
+        </el-collapse-item> -->
+
+        <el-collapse-item title="审批记录" name="10">
+          <process-time-line
+            v-if="newTime !== ''"
+            :newTime="newTime"
+            :type="'XSQRD'"
+            :orderCode="orderCode"
+          />
+        </el-collapse-item>
+      </el-collapse>
+    </div>
+    <div v-else>
+      <no-auth></no-auth>
+    </div>
+  </div>
+</template>
+   <script>
+import mixinPage from "@/mixins/elPaginationHandle";
+import resToken from "@/mixins/resToken";
+import asyncRequest from "@/apis/service/sheetOrder/zxReturn";
+// import addForm from "./components/addForm";
+// import feedbackForm from "./components/feedback-form";
+// import orderOutTable from "./components/order-out-table";
+import showForm from "./components/showForm";
+// import addEdit1 from "./components/addEdit1";
+// import editAdd from "./components/addEdit.vue";
+export default {
+  name: "zxReturnDetail",
+  mixins: [mixinPage, resToken],
+
+  components: {
+    // addEdit1,
+    showForm,
+    // addForm,
+    // feedbackForm,
+    // orderOutTable,
+    // editAdd,
+  },
+  computed: {
+    powers() {
+      let tran =
+        this.$store.getters.btnList.find(
+          (item) => item.menu_route == "zxReturnDetail"
+        ) || {};
+      if (tran && tran.action && tran.action.length > 0) {
+        return tran.action;
+      } else {
+        return [];
+      }
+    },
+  },
+  mounted() {
+    console.log(this.$route);
+  },
+  data() {
+    return {
+      activeNames: ["-1", "0", "1", "2", "3", "4", "5", "10"],
+      statusOptions: [
+        { value: "0", label: "待发起流程" },
+        { value: "1", label: "待业务审核" },
+        { value: "2", label: "待采购反馈" },
+        { value: "3", label: "待采购审核" },
+        { value: "4", label: "待通知采购部门" },
+        { value: "5", label: "待通知财务部门" },
+        { value: "6", label: "退货已完成" },
+      ],
+      sitem: null,
+      s_sitem: null,
+      orderCode: "",
+      status: "",
+      newTime: "",
+      loading: false,
+      queryId: "",
+    };
+  },
+  mounted() {
+    this.status = "";
+    this.queryId = this.$route.query.id;
+    this.initData();
+  },
+  methods: {
+    async statusConfirm(status, message) {
+      await this.$confirm(`确定要${message}?`, {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(async () => {
+          if (status === "-1") {
+            await this.deleteById(message);
+          } else {
+            await this.setStatus(status, message);
+          }
+        })
+        .catch(() => {
+          console.log("取消");
+        });
+    },
+    getNewTime() {
+      this.newTime = new Date().valueOf() + "";
+      console.log(this.orderCode);
+      console.log(this.newTime);
+    },
+
+    async deleteById(message) {
+      const res = await asyncRequest.delete({ returnCode: this.queryId });
+      if (res && res.code === 0) {
+        this.$notify.success({
+          title: message + "成功!",
+          message: "",
+        });
+
+        this.routeGoto("check", {});
+      } else if (res && res.code >= 100 && res.code <= 104) {
+        await this.logout();
+      } else {
+        this.$message.warning(res.message);
+      }
+    },
+
+    async setStatus(status, message, remark) {
+      let model = {
+        returnCode: this.queryId,
+        remark: remark || "",
+        status: status,
+      };
+      const res = await asyncRequest.status(model);
+      this.loading = false;
+      if (res && res.code === 0) {
+        this.$notify.success({
+          title: message + "成功!",
+          message: "",
+        });
+        this.initData();
+      } else if (res && res.code >= 100 && res.code <= 104) {
+        await this.logout();
+      } else {
+        this.$message.warning(res.message);
+      }
+    },
+    async examForm(e) {
+      if (!this.loading) {
+        let type = e.state === "1" ? "2" : "0";
+        await this.setStatus(type, "提交入库方审核", e.remark);
+      }
+    },
+    async initData() {
+      this.loading = true;
+      const res = await asyncRequest.detail({ returnCode: this.queryId });
+      if (res && res.code === 0 && res.data) {
+        this.sitem = res.data;
+        this.status = this.sitem.status;
+        this.orderCode = this.sitem.orderCode;
+        this.getNewTime();
+      } else if (res && res.code >= 100 && res.code <= 104) {
+        await this.logout();
+      } else {
+        this.$message.warning(res.message);
+      }
+      this.loading = false;
+    },
+    openModal(id, isDetail, sitem) {
+      if (sitem == "sell") {
+        this.showModel = true;
+      } else {
+        this.showModell = true;
+      }
+      console.log(id, isDetail, sitem);
+
+      this.modelId = id;
+      this.isDetail = isDetail;
+      // this.sitem = sitem;
+      // this.sitem.info[0].edit = false;
+      this.s_sitem = this.sitem;
+    },
+  },
+};
+</script>
+   <style lang="scss" scoped>
+.zxReturnDetail {
+}
+</style>
+   
+   

+ 103 - 177
src/views/sheetOrder/zxReturn/index.vue

@@ -28,83 +28,91 @@
         <template #table-header="{}">
           <div style="width: 100%">
             <el-row style="padding: 0 0 0 80px">
-              <el-col :span="24">
-                <!-- 时间区间 -->
-                <el-col :span="6" style="width: 303px; padding: 0 0 0 0px">
-                  <period-date-picker
-                    :type="1"
-                    :width="'135px'"
-                    :size="searchSize"
-                    :start="parmValue.start"
-                    :end="parmValue.end"
-                    @timeReturned="handleTime"
+              <el-col :span="4" style="width: 170px">
+                <el-select
+                  :size="searchSize"
+                  v-model="parmValue.status"
+                  filterable
+                  clearable
+                  placeholder="退货单状态"
+                  style="width: 100%"
+                  @change="
+                    pageInfo.curr = 1;
+                    parmValue.page = 1;
+                    searchList();
+                  "
+                >
+                  <el-option
+                    v-for="item in statusOptions"
+                    :key="'status' + item.id"
+                    :label="item.label"
+                    :value="item.id"
                   />
-                </el-col>
-                <el-col :span="6" style="width: 500px; padding: 0 0 0 0px">
-                  <el-input
-                    placeholder="关键字"
-                    v-model="s_input"
-                    :size="searchSize"
-                    class="input-with-select"
-                  >
-                    <el-select
-                      v-model="select"
-                      style="width: 125px"
-                      slot="prepend"
-                      placeholder="请选择"
-                    >
-                      <el-option
-                        label="退货单编号"
-                        value="returnNo"
-                      ></el-option>
-                      <el-option label="采购单编号" value="orderNo"></el-option>
-                      <el-option
-                        label="退货仓库编号"
-                        value="returnStoreNo"
-                      ></el-option>
-                      <el-option
-                        label="退货公司编号"
-                        value="returnCompanyNo"
-                      ></el-option>
-                      <!-- <el-option label="产品名称" value="5"></el-option> -->
-                      <el-option label="申请人" value="applyer"></el-option>
-                      <!-- <el-option label="采购供应商编号" value="7"></el-option> -->
-                    </el-select>
-                    <el-button
-                      slot="append"
-                      icon="el-icon-search"
-                      @click="handleValue"
-                    ></el-button>
-                  </el-input>
-                </el-col>
-                <el-col
-                  :span="3"
-                  style="width: 66px; float: right"
-                  v-if="powers.some((item) => item == '003')"
+                </el-select>
+              </el-col>
+              <!-- 时间区间 -->
+              <el-col :span="6" style="width: 303px; padding: 0 0 0 10px">
+                <period-date-picker
+                  :type="1"
+                  :width="'135px'"
+                  :size="searchSize"
+                  :start="parmValue.start"
+                  :end="parmValue.end"
+                  @timeReturned="handleTime"
+                />
+              </el-col>
+
+              <el-col :span="3" style="width: 66px; float: right">
+                <el-button
+                  :size="searchSize"
+                  type="primary"
+                  style="float: right; margin-left: 5px"
+                  @click="searchList"
                 >
-                  <el-button
-                    @click="openModal('add', false, {})"
-                    :size="searchSize"
-                    type="success"
-                    style="float: right; margin-left: 5px"
+                  刷新
+                </el-button>
+              </el-col>
+            </el-row>
+            <el-row style="padding: 10px 0 0 0">
+              <el-col :span="6" style="width: 450px">
+                <el-input
+                  placeholder="关键字"
+                  v-model="s_input"
+                  :size="searchSize"
+                  class="input-with-select"
+                >
+                  <el-select
+                    v-model="select"
+                    style="width: 125px"
+                    slot="prepend"
+                    placeholder="请选择"
                   >
-                    添加
-                  </el-button>
-                </el-col>
-
-                <el-col :span="3" style="width: 66px; float: right">
+                    <el-option label="退货单编号" value="1" />
+                    <el-option label="咨询订单编号" value="2" />
+                    <el-option label="申请人" value="3" />
+                  </el-select>
                   <el-button
-                    :size="searchSize"
-                    type="primary"
-                    style="float: right; margin-left: 5px"
-                    @click="searchList"
-                  >
-                    刷新
-                  </el-button>
-                </el-col>
+                    slot="append"
+                    icon="el-icon-search"
+                    @click="
+                      pageInfo.curr = 1;
+                      parmValue.page = 1;
+                      searchList();
+                    "
+                  ></el-button>
+                </el-input>
+              </el-col>
+              <el-col :span="4" style="width: 66px; float: right">
+                <el-button
+                  type="warning"
+                  class="fr"
+                  :size="searchSize"
+                  @click="restSearch"
+                >
+                  重置
+                </el-button>
               </el-col>
             </el-row>
-            <el-row style="padding: 10px 0 0 0"> </el-row>
           </div>
         </template>
         <template #status="{ scope }">
@@ -126,45 +134,7 @@
           >
             <i
               class="el-icon-view tb-icon"
-              @click="routeGoto('sellReturnDetail', { id: scope.row })"
-            ></i>
-            <!-- @click="openModal(scope.row.id, true, scope.row)" -->
-          </el-tooltip>
-          <el-tooltip
-            v-if="powers.some((item) => item == '005')"
-            effect="dark"
-            content="修改"
-            placement="top"
-          >
-            <i
-              class="el-icon-edit tb-icon"
-              @click="openModal(scope.row.id, false, scope.row)"
-            ></i>
-          </el-tooltip>
-          <el-tooltip
-            v-if="
-              powers.some((item) => item == '004') && scope.row.status === '1'
-            "
-            effect="dark"
-            content="禁用"
-            placement="top"
-          >
-            <i
-              class="el-icon-video-pause tb-icon"
-              @click="statusConfirm(scope.row.id, scope.row.status)"
-            ></i>
-          </el-tooltip>
-          <el-tooltip
-            v-if="
-              powers.some((item) => item == '004') && scope.row.status === '0'
-            "
-            effect="dark"
-            content="启用"
-            placement="top"
-          >
-            <i
-              class="el-icon-video-play tb-icon"
-              @click="statusConfirm(scope.row.id, scope.row.status)"
+              @click="routeGoto('zxReturnDetail', { id: scope.row.returnCode })"
             ></i>
           </el-tooltip>
         </template>
@@ -213,37 +183,28 @@ export default {
   },
   data() {
     return {
-      select: "",
+      select: "1",
       s_input: "",
-      statusList: [
-        { value: "0", label: "待验收" },
-        { value: "1", label: "待验收审核" },
-        { value: "1", label: "待业务审核" },
-        { value: "1", label: "完成退货" },
-      ],
       sitem: null,
       // 状态
       statusOptions: [
-        { id: "0", label: "禁用" },
-        { id: "1", label: "启用" },
+        { id: "0", label: "待业务部门审核" },
+        { id: "1", label: "待告知业务部门" },
+        { id: "2", label: "待告知财务部门" },
+        { id: "3", label: "退货已完成" },
       ],
-      // statusList: statusList,
       loading: true,
       showModel: false,
       isDetail: false,
       modelId: 0,
       parmValue: {
-         order_type:"2",
-        CG_numbers: "", //采购单号
-        returnNumber: "", //退货单编号
-        returnStoreNum: "", //退货仓库编号
-        returnCompanyNum: "", //退货公司编号
-        applyer: "", //申请人
+        order_type: "2",
+        returnCode: "", //采购单号
+        orderCode: "", //退货单编号
+        apply_name: "", //申请人
         start: "",
         end: "",
         status: "", //节点状态
-
-        // --
         page: 1, // 页码
         size: 15, // 每页显示条数
       },
@@ -275,13 +236,15 @@ export default {
 
   methods: {
     restSearch() {
+      this.s_input = "";
+      this.select = "1";
       this.parmValue = {
-         order_type:"2",
-        CG_numbers: "", //采购单号
-        returnNumber: "", //退货单编号
+        order_type: "2",
+        returnCode: "", //采购单号
+        orderCode: "", //退货单编号
         returnStoreNum: "", //退货仓库编号
         returnCompanyNum: "", //退货公司编号
-        applyer: "", //申请人
+        apply_name: "", //申请人
         start: "",
         end: "",
         status: "", //节点状态
@@ -303,50 +266,13 @@ export default {
       this.isDetail = isDetail;
       this.sitem = sitem;
     },
-    async deleteById(id, status) {
-      await this.$confirm("确定要删除?", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      })
-        .then(async () => {
-          const model = {
-            id: id,
-            status: status === "1" ? "0" : "1",
-          };
-          const res = await asyncRequest.status(model);
-          if (res && res.code === 0) {
-            this.$notify.success({
-              title: "删除成功",
-              message: "",
-            });
-            this.searchList();
-          } else if (res && res.code >= 100 && res.code <= 104) {
-            await this.logout();
-          } else {
-            this.$message.warning(res.message);
-          }
-        })
-        .catch(() => {
-          console.log("取消");
-        });
-    },
+
     async searchList() {
       this.loading = true;
       let model = JSON.parse(JSON.stringify(this.parmValue));
-      let _model = {
-        thNo: model.returnNumber, //退货编号
-        status: model.status, //节点状态
-        post_code: model.postNumber, //快递编码
-        post_compay: model.postCompany, //	快递公司
-        customer_code: model.clientNumber, //客户code
-        order_code: model.sellOrderNumber, //	确认单code
-        out_code: model.sellOutNumber, //	出库code
-        return_code: model.serviceNumber, //return_code
-        startTime: "",
-        endTime: "",
-      };
-      model.post_compay=''
+      model.returnCode = this.select === "1" ? this.s_input : "";
+      model.orderCode = this.select === "2" ? this.s_input : "";
+      model.apply_name = this.select === "3" ? this.s_input : "";
       const res = await asyncRequest.list(model);
       if (res && res.code === 0 && res.data) {
         this.tableData = res.data.list;
@@ -406,7 +332,7 @@ export default {
       console.log(this.s_input);
       switch (this.select) {
         case "returnNo":
-          this.parmValue.returnNumber = this.s_input;
+          this.parmValue.orderCode = this.s_input;
           await this.searchList();
           break;
         case "returnStoreNo":
@@ -419,13 +345,13 @@ export default {
           await this.searchList();
 
           break;
-        case "applyer":
-          this.parmValue.applyer = this.s_input;
+        case "apply_name":
+          this.parmValue.apply_name = this.s_input;
           await this.searchList();
           break;
         default:
           //采购单编号
-          this.parmValue.CG_numbers = this.s_input;
+          this.parmValue.returnCode = this.s_input;
           await this.searchList();
 
           break;

+ 90 - 187
src/views/sheetOrder/zxSheet/components/addForm.vue

@@ -133,6 +133,7 @@
         <el-table
           :data="addrForm.addrlist"
           border
+          max-height="300px"
           :size="'mini'"
           style="width: 100%"
           row-key="key"
@@ -140,107 +141,29 @@
           <el-table-column
             prop="receipt_quantity"
             label="收货总数"
-            min-width="125"
-          >
-            <template slot-scope="scope">
-              <el-form-item
-                :prop="'addrlist.' + scope.$index + '.' + 'receipt_quantity'"
-                :rules="addrRules.receipt_quantity"
-                :size="'mini'"
-                :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
-              >
-                <el-input
-                  v-model="scope.row.receipt_quantity"
-                  :disabled="!scope.row.edit"
-                />
-              </el-form-item>
-            </template>
-          </el-table-column>
+            width="100"
+          />
 
-          <el-table-column prop="arrive_time" label="最晚收货日期" width="150">
-            <template slot-scope="scope">
-              <el-form-item
-                :prop="'addrlist.' + scope.$index + '.' + 'arrive_time'"
-                :rules="addrRules.arrive_time"
-                :size="'mini'"
-                :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
-              >
-                <el-date-picker
-                  :disabled="!scope.row.edit"
-                  v-model="scope.row.arrive_time"
-                  type="date"
-                  style="width: 100%"
-                  value-format="yyyy-MM-dd"
-                  :picker-options="pickerOptions"
-                >
-                </el-date-picker>
-              </el-form-item>
-            </template>
-          </el-table-column>
-          <el-table-column prop="contactor" label="收件联系人" min-width="110">
-            <template slot-scope="scope">
-              <el-form-item
-                :prop="'addrlist.' + scope.$index + '.' + 'contactor'"
-                :rules="addrRules.contactor"
-                :size="'mini'"
-                :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
-              >
-                <el-input
-                  v-model="scope.row.contactor"
-                  :disabled="!scope.row.edit"
-                />
-              </el-form-item>
-            </template>
-          </el-table-column>
+          <el-table-column
+            prop="arrive_time"
+            label="最晚收货日期"
+            width="110"
+          />
 
-          <el-table-column prop="mobile" label="收货联系电话" min-width="130">
-            <template slot-scope="scope">
-              <el-form-item
-                :prop="'addrlist.' + scope.$index + '.' + 'mobile'"
-                :rules="addrRules.mobile"
-                :size="'mini'"
-                :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
-              >
-                <el-input
-                  v-model="scope.row.mobile"
-                  :disabled="!scope.row.edit"
-                />
-              </el-form-item>
-            </template>
-          </el-table-column>
+          <el-table-column
+            prop="contactor"
+            label="收件联系人"
+            width="110"
+          />
 
-          <el-table-column prop="addr_code" label="收货省市区" min-width="230">
-            <template slot-scope="scope">
-              <el-form-item
-                :prop="'addrlist.' + scope.$index + '.' + 'addr_code'"
-                :rules="addrRules.addr_code"
-                :size="'mini'"
-                :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
-              >
-                <select-area
-                  :value="scope.row.addr_code"
-                  :disabled="!scope.row.edit"
-                  :size="'mini'"
-                  @selectChange="select_area_change($event, scope.$index)"
-                />
-              </el-form-item>
-            </template>
-          </el-table-column>
-          <el-table-column prop="addr" label="详细地址" min-width="170">
-            <template slot-scope="scope">
-              <el-form-item
-                :prop="'addrlist.' + scope.$index + '.' + 'addr'"
-                :rules="addrRules.addr"
-                :size="'mini'"
-                :style="{ marginBottom: scope.row.edit ? '13px' : '0' }"
-              >
-                <el-input
-                  v-model="scope.row.addr"
-                  :disabled="!scope.row.edit"
-                />
-              </el-form-item>
-            </template>
-          </el-table-column>
+          <el-table-column prop="mobile" label="收货联系电话" width="110" />
+
+          <el-table-column
+            prop="addr_code_name"
+            label="收货省市区"
+            min-width="230"
+          />
+          <el-table-column prop="addr" label="详细地址" min-width="170" />
 
           <el-table-column fixed="right" width="80">
             <template slot="header" slot-scope="scope">
@@ -273,18 +196,6 @@
                 ></i>
               </el-tooltip>
 
-              <el-tooltip
-                effect="dark"
-                content="保存"
-                v-if="scope.row.edit"
-                placement="top"
-              >
-                <i
-                  class="el-icon-circle-check tb-icon"
-                  @click="checkRow(scope.$index)"
-                ></i>
-              </el-tooltip>
-
               <el-tooltip effect="dark" content="删除" placement="top">
                 <i
                   class="el-icon-delete tb-icon"
@@ -300,6 +211,14 @@
         @cancel="addrmodel = false"
         @refresh="addrRefresh"
       />
+
+      <addr-add-edit-modal
+        :showModel="showAddrAddEditModal"
+        :index="AddrAddEditModalIndex"
+        :sitem="AddrAddEditModalSitem"
+        @cancel="showAddrAddEditModal = false"
+        @refresh="showAddrAddEditModalRefresh"
+      />
       <div style="text-align: right">
         <el-button type="primary" :size="'mini'" @click="submitForm"
           >保 存
@@ -314,13 +233,14 @@
 <script>
 import asyncRequest from "@/apis/service/sheetOrder/zxSheet";
 import resToken from "@/mixins/resToken";
-import { isnumber, isMobile } from "@/utils/validate";
 import inAddrModel from "@/components/in-addr-model";
+import AddrAddEditModal from "@/components/addr-add-edit-modal";
+import { isnumber } from "@/utils/validate";
 export default {
   name: "Account",
   props: ["showModel", "sitem"],
   mixins: [resToken],
-  components: { inAddrModel },
+  components: { inAddrModel, AddrAddEditModal },
   data() {
     const validateWeight = (rule, value, callback) => {
       if (value === "") {
@@ -333,19 +253,12 @@ export default {
         }
       }
     };
-    const validatemobile = (rule, value, callback) => {
-      if (value === "") {
-        callback(new Error("手机号不能为空!"));
-      } else {
-        if (!isMobile(value)) {
-          callback(new Error("手机号格式不正确!"));
-        } else {
-          callback();
-        }
-      }
-    };
     return {
       loading: false,
+      showAddrAddEditModal: false,
+      AddrAddEditModalIndex: -1,
+      AddrAddEditModalSitem: {},
+
       showModelThis: this.showModel,
       addrmodel: false,
       supplierNo: "",
@@ -448,53 +361,6 @@ export default {
           },
         ],
       },
-      addrRules: {
-        arrive_time: [
-          {
-            required: true,
-            message: "最晚收货日期不能为空",
-            trigger: "change",
-          },
-        ],
-        receipt_quantity: [
-          {
-            required: true,
-            validator: validateWeight,
-            trigger: "blur",
-          },
-        ],
-
-        contactor: [
-          {
-            required: true,
-            trigger: "blur",
-            message: "联系人不能为空",
-          },
-        ],
-        mobile: [
-          {
-            required: true,
-            validator: validatemobile,
-            trigger: "blur",
-          },
-        ],
-
-        addr_code: [
-          {
-            type: "array",
-            required: true,
-            message: "收货省市区不能为空",
-            trigger: "change",
-          },
-        ],
-        addr: [
-          {
-            required: true,
-            message: "详细地址不能为空",
-            trigger: "blur",
-          },
-        ],
-      },
     };
   },
   watch: {
@@ -522,7 +388,33 @@ export default {
       }
       this.$refs.ruleForm.validateField("supplierNo");
     },
+    showAddrAddEditModalRefresh(e) {
+      const { index, item } = e;
 
+      if (index === -1) {
+        this.addrForm.addrlist.push(JSON.parse(JSON.stringify(item)));
+      } else {
+        const {
+          arrive_time,
+          receipt_quantity,
+          contactor,
+          mobile,
+          addr_code,
+          addr_code_name,
+          addr,
+          id,
+        } = JSON.parse(JSON.stringify(item));
+        this.addrForm.addrlist[index].receipt_quantity = receipt_quantity;
+        this.addrForm.addrlist[index].arrive_time = arrive_time;
+        this.addrForm.addrlist[index].contactor = contactor;
+        this.addrForm.addrlist[index].mobile = mobile;
+        this.addrForm.addrlist[index].addr_code = addr_code;
+        this.addrForm.addrlist[index].addr_code_name = addr_code_name;
+        this.addrForm.addrlist[index].addr = addr;
+        this.addrForm.addrlist[index].id = id;
+      }
+      this.$refs.addrForm.validateField("addrlist");
+    },
     async initForm() {
       this.loading = true;
       this.rulesThis = this.rules;
@@ -559,25 +451,36 @@ export default {
       this.addrForm.addrlist.push(...list);
     },
     openHouseModal(index) {
-      let findex = this.addrForm.addrlist.findIndex((v) => v.edit === true);
-      if (findex !== -1) {
-        this.$message.warning("当前已有地址在编辑,请保存后再试!");
-        return;
+      this.AddrAddEditModalIndex = index;
+
+      if (index === -1) {
+        this.AddrAddEditModalSitem = {};
       } else {
-        if (index === -1) {
-          this.addrForm.addrlist.push({
-            edit: true,
-            arrive_time: "",
-            receipt_quantity: "",
-            contactor: "",
-            mobile: "",
-            addr_code: [],
-            addr: "",
-          });
-        } else {
-          this.addrForm.addrlist[index].edit = true;
-        }
+        this.AddrAddEditModalSitem = JSON.parse(
+          JSON.stringify(this.addrForm.addrlist[index])
+        );
       }
+      this.showAddrAddEditModal = true;
+
+      // let findex = this.addrForm.addrlist.findIndex((v) => v.edit === true);
+      // if (findex !== -1) {
+      //   this.$message.warning("当前已有地址在编辑,请保存后再试!");
+      //   return;
+      // } else {
+      //   if (index === -1) {
+      //     this.addrForm.addrlist.push({
+      //       edit: true,
+      //       arrive_time: "",
+      //       receipt_quantity: "",
+      //       contactor: "",
+      //       mobile: "",
+      //       addr_code: [],
+      //       addr: "",
+      //     });
+      //   } else {
+      //     this.addrForm.addrlist[index].edit = true;
+      //   }
+      // }
     },
     //省市区选择
     select_area_change(e, index) {

+ 0 - 23
src/views/sheetOrder/zxSheet/index.vue

@@ -147,29 +147,6 @@
               @click="routeGoto('zxSheetDetail', { id: scope.row.id })"
             ></i>
           </el-tooltip>
-          <!-- <el-tooltip
-            v-if="powers.some((item) => item == '007')"
-            effect="dark"
-            content="创建咨询订单"
-            placement="top"
-          >
-            <i
-              class="el-icon-circle-plus-outline tb-icon"
-              @click="addModal(scope.row.id, true)"
-            ></i>
-          </el-tooltip>
-
-          <el-tooltip
-            v-if="powers.some((item) => item == '006')"
-            effect="dark"
-            content="删除"
-            placement="top"
-          >
-            <i
-              class="el-icon-delete tb-icon"
-              @click="deleteById(scope.row.id, scope.row.status)"
-            ></i>
-          </el-tooltip> -->
         </template>
       </ex-table>