戴艳蓉 3 years ago
parent
commit
c08e94dc33

+ 19 - 0
src/apis/service/sheetOrder/zxDiffOrder/index.js

@@ -0,0 +1,19 @@
+// 物业管理员
+import http from "@/apis/axios";
+const api = "admin/";
+export default {
+  // 添加
+  add: (data, params) => http(api + "salezxcreate", data, "post", params),
+  // 删除
+  delete: (data, params) => http(api + "Consultdel", data, "post", params),
+  // 分页查询
+  list: (data, params) => http(api + "saledifflist", data, "post", params),
+  // 详情
+  detail: (data, params) => http(api + "salediffinfo", data, "post", params),
+  // 更新
+  update: (data, params) => http(api + "update", data, "post", params),
+  // 修改状态
+  status: (data, params) => http(api + "salediffcheck", data, "post", params),
+  // 通知业务部门
+  fstatus: (data, params) => http(api + "salediffstatus", data, "post", params),
+};

+ 1 - 1
src/apis/service/sheetOrder/zxOrder/detail.js

@@ -9,7 +9,7 @@ export default {
   // 详情
   detail: (data, params) => http(api + "saleinfo", data, "post", params),
   // 更新
-  update: (data, params) => http(api + "saleedit", data, "post", params),
+  update: (data, params) => http(api + "salezxedit", data, "post", params),
   // 修改状态
   status: (data, params) => http(api + "salestatus", data, "post", params),
   // 获取仓库商品列表

+ 2 - 0
src/assets/js/btnList.js

@@ -41,6 +41,8 @@ const btnList = [
   { code: "040", name: "物流反馈" },
   { code: "041", name: "退货业务审核" },
   { code: "042", name: "退货验收审核" },
+  { code: "043", name: "业务审核" },
+  { code: "044", name: "通知业务部门" },
 
   
 ];

+ 1 - 0
src/views/sellOut/salesOrder/components/addEdit.vue

@@ -195,6 +195,7 @@
               style="margin: 0 0 0 10px"
               >导入收货地址</el-button
             >
+            
           </div>
           <el-form :model="addrForm" ref="addrForm" :size="'mini'">
             <el-table

+ 24 - 63
src/views/sheetOrder/zxDiffOrder/columns.js

@@ -1,91 +1,52 @@
 export default [
 
   {
-    prop: "zxNo",
-    label: "咨询单号",
+    prop: "orderCode",
+    label: "咨询号",
     fixed: "left",
     width: "152px",
   },
   {
-    prop: "sequenceNo",
-    label: "单据号",
-    width: "152px",
+    prop: "diff_weight",
+    label: "工差总重量",
+    width: "125px",
   },
   {
-    prop: "salesman",
-    label: "申请人",
-    width: "60px",
+    prop: "diff_price",
+    label: "工差总金额",
+    width: "125px",
   },
   {
-    prop: "khNo",
-    label: "客户公司编码",
+    prop: "gold_price",
+    label: "金价",
     width: "125px",
   },
   {
-    prop: "khname",
-    label: "客户公司名称",
+    prop: "good_code",
+    label: "商品编号",
     "min-width": "160px",
   },
   {
-    prop: "zxtype",
-    label: "咨询类型",
-    width: "85px",
-  },
-
-  {
-    prop: "cpname",
-    label: "产品名称",
+    prop: "good_name",
+    label: "商品名称",
     "min-width": "160px",
   },
   {
     prop: "class_cat",
     label: "商品分类",
-    "width": "100px",
-  },
-
-  {
-    prop: "unit",
-    label: "单位",
-    width: "45px",
-  },
-  {
-    prop: "num",
-    label: "需求数量",
-    width: "80px",
-  },
-  {
-    prop: "sale_price",
-    label: "财务定价",
-    width: "110px",
-  },
-  {
-    prop: "sale_fee",
-    label: "最终销售单价",
-    width: "110px",
-  },
-
-  {
-    prop: "color",
-    label: "颜色",
-  },
-  {
-    prop: "model",
-    label: "型号",
-  },
-  {
-    prop: "material",
-    label: "材质",
+    "width": "150px",
   },
   // {
-  //   prop: "status",
-  //   label: "状态",
-  //   _slot_: "status",
-  //   width: "80px",
+  //   prop: "is_act",
+  //   label: "是否接受工差",
+  //   "width": "150px",
   // },
-  {
-    prop: "scheme_name",
-    label: "方案名称",
-  },
+  // {
+  //   prop: "customer_remark",
+  //   label: "客户意愿",
+  //   "width": "150px",
+  // },
+
   {
     prop: "zxtime",
     label: "创建时间",

+ 118 - 518
src/views/sheetOrder/zxDiffOrder/components/addForm.vue

@@ -1,497 +1,148 @@
 <template>
-  <el-dialog
-    v-loading="loading"
-    :title="'添加咨询订单'"
-    :center="true"
-    align="left"
-    top="5vh"
-    width="1040px"
-    :close-on-click-modal="false"
-    :visible.sync="showModelThis"
-    element-loading-text="拼命加载中"
-    element-loading-spinner="el-icon-loading"
-    element-loading-background="rgba(0, 0, 0, 0.8)"
-    @close="closeModel"
+  <el-form
+    ref="ruleForm"
+    :model="ruleForm"
+    status-icon
+    :rules="rulesThis"
+    label-width="135px"
+    class="demo-ruleForm"
   >
-    <el-card style="margin-top: -20px">
-      <el-form
-        ref="ruleForm"
-        :model="ruleForm"
-        status-icon
-        :rules="rulesThis"
-        label-width="85px"
-        class="demo-ruleForm"
-      >
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="商品分类" prop="class_cat">
-              <el-input
-                v-model="ruleForm.class_cat"
-                placeholder="商品分类"
-                disabled
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="商品名称" prop="goods_name">
-              <el-input
-                v-model="ruleForm.goods_name"
-                placeholder="商品分类"
-                disabled
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="销售方" prop="supplierNo">
-              <search-supplier
-                :value="ruleForm.supplierNo"
-                :placeholder="'销售方公司'"
-                :disabled="false"
-                :isDetail="true"
-                :names="supplierName"
-                @searchChange="supplierChange"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="购买方" prop="customer_code">
-              <el-input
-                v-model="ruleForm.customer_name"
-                placeholder="购买方公司"
-                disabled
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label="商品单价" prop="sale_fee">
-              <el-input
-                v-model="ruleForm.sale_fee"
-                placeholder="商品单价"
-                disabled
-                ><template slot="append">元</template></el-input
-              >
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label="下单数量" prop="good_num">
-              <el-input v-model="ruleForm.good_num" placeholder="下单数量" />
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="6">
-            <el-form-item label="商品类型" prop="goodtype">
-              <el-select
-                v-model="ruleForm.goodtype"
-                style="width: 100%"
-                placeholder="商品类型"
-              >
-                <el-option
-                  v-for="item in goodtypeOptions"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
-                </el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label="发货类型" prop="sendtype">
-              <el-select
-                v-model="ruleForm.sendtype"
-                style="width: 100%"
-                placeholder="发货类型"
-              >
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
-                </el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <div style="height: 40px" v-if="ruleForm.sendtype === '1'" class="tr">
-        <download-addr />
-        <el-button
-          type="primary"
-          size="mini"
-          @click="addrmodel = true"
-          style="margin: 0 0 0 10px"
-          >导入收货地址</el-button
-        >
-      </div>
-      <el-form
-        v-if="ruleForm.sendtype === '1'"
-        :model="addrForm"
-        ref="addrForm"
-        :size="'mini'"
-      >
-        <el-table
-          :data="addrForm.addrlist"
-          border
-          :size="'mini'"
-          style="width: 100%"
-          row-key="key"
-        >
-          <el-table-column
-            prop="receipt_quantity"
-            label="收货总数"
-            min-width="125"
+    <el-row>
+      <el-col :span="12">
+        <el-form-item label="客户是否接受工差" prop="is_act">
+          <el-select
+            v-model="ruleForm.is_act"
+            style="width: 100%"
+            :disabled="
+              !(status === '1' && powers.some((item) => item == '043'))
+            "
+            placeholder="客户是否接受工差"
           >
-            <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>
-
-          <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="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="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 fixed="right" 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
-                  class="el-icon-circle-plus-outline tb-icon"
-                  style="color: #63cbe7"
-                  @click="openHouseModal(-1)"
-                ></i>
-              </el-tooltip>
-            </template>
-            <template slot-scope="scope">
-              <el-tooltip
-                effect="dark"
-                content="编辑"
-                v-if="!scope.row.edit"
-                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"
-                  @click="deleteRow(scope.$index, addrForm.addrlist)"
-                ></i>
-              </el-tooltip>
-            </template>
-          </el-table-column>
-        </el-table>
-      </el-form>
-      <in-addr-model
-        :show-model="addrmodel"
-        @cancel="addrmodel = false"
-        @refresh="addrRefresh"
-      />
-      <div style="text-align: right">
+            <el-option
+              v-for="item in is_actOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+      </el-col>
+      <el-col :span="12" v-if="ruleForm.is_act === '1'">
+        <el-form-item label="客户意愿" prop="customer_remark">
+          <el-select
+            v-model="ruleForm.customer_remark"
+            style="width: 100%"
+            :disabled="
+              !(status === '1' && powers.some((item) => item == '043'))
+            "
+            placeholder="客户意愿"
+          >
+            <el-option
+              v-for="item in options"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+      </el-col>
+      <el-col :span="24">
+        <el-form-item label="审核备注" prop="remark">
+          <el-input
+            type="textarea"
+            :rows="2"
+            :disabled="
+              !(status === '1' && powers.some((item) => item == '043'))
+            "
+            placeholder="业务审核备注"
+            maxlength="250"
+            v-model="ruleForm.remark"
+          />
+        </el-form-item>
+      </el-col>
+      <el-col :span="24" class="tr">
         <el-button type="primary" :size="'mini'" @click="submitForm"
           >保 存
         </el-button>
-        <el-button :size="'mini'" @click="showModelThis = false">{{
-          isDetail ? "关 闭" : "取 消"
-        }}</el-button>
-      </div>
-    </el-card>
-  </el-dialog>
+      </el-col>
+    </el-row>
+  </el-form>
 </template>
 <script>
-import asyncRequest from "@/apis/service/sheetOrder/zxSheet";
+import asyncRequest from "@/apis/service/sheetOrder/zxDiffOrder";
 import resToken from "@/mixins/resToken";
-import { isnumber, isMobile } from "@/utils/validate";
-import inAddrModel from "@/components/in-addr-model";
+
 export default {
   name: "Account",
-  props: ["showModel", "sitem"],
+  props: ["newTime", "sitem"],
   mixins: [resToken],
-  components: { inAddrModel },
-  data() {
-    const validateWeight = (rule, value, callback) => {
-      if (value === "") {
-        callback(new Error("不能为空!"));
+  computed: {
+    powers() {
+      let tran =
+        this.$store.getters.btnList.find(
+          (item) => item.menu_route == "zxDiffOrderDetail"
+        ) || {};
+      if (tran && tran.action && tran.action.length > 0) {
+        return tran.action;
       } 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 [];
       }
-    };
+    },
+  },
+  data() {
     return {
       loading: false,
-      showModelThis: this.showModel,
-      addrmodel: false,
-      supplierNo: "",
-      supplierName:"",
+      status: "",
       options: [
         {
           value: "1",
-          label: "直接发货",
+          label: "咨询订单减工差",
         },
         {
           value: "2",
-          label: "延迟发货",
+          label: "咨询订单不减工差",
         },
       ],
-      goodtypeOptions: [
+      is_actOptions: [
         {
           value: "1",
-          label: "普通商品",
+          label: "接受工差",
         },
         {
           value: "2",
-          label: "赠品",
-        },
-        {
-          value: "3",
-          label: "样品",
+          label: "不接受工差-退回重做",
         },
       ],
-      addrForm: {
-        addrlist: [],
-      },
+
       ruleForm: {
-        zxNo: "",
-        customer_code: [],
-        supplierNo: [],
-        sendtype: "1",
-        good_num: "",
-        goodtype: "1",
-        class_cat: "",
-        goods_name: "",
-        sale_fee: "",
+        id: "",
+        status: "",
+        is_act: "1",
+        customer_remark: "1",
+        remark: "",
       },
       rulesThis: this.rules,
       rules: {
-        zxNo: [
-          {
-            required: true,
-            message: "咨询单号不能为空!",
-            trigger: "blur",
-          },
-        ],
-        customer_code: [
-          {
-            required: true,
-            message: "请选择购买方公司",
-            trigger: "change",
-          },
-        ],
-        class_cat: [
-          {
-            required: true,
-            message: "请选择商品分类",
-            trigger: "change",
-          },
-        ],
-        supplierNo: [
-          {
-            type: "array",
-            required: true,
-            message: "请选择销售方公司",
-            trigger: "change",
-          },
-        ],
-        sendtype: [
+        is_act: [
           {
             required: true,
-            message: "请选择发货类型",
+            message: "请选择客户是否接受工差!",
             trigger: "change",
           },
         ],
-
-        good_num: [
-          {
-            required: true,
-            validator: validateWeight,
-            trigger: "blur",
-          },
-        ],
-        goodtype: [
+        customer_remark: [
           {
             required: true,
-            message: "请选择商品类型",
+            message: "请选择客户意愿!",
             trigger: "change",
           },
         ],
-        sale_fee: [
+        remark: [
           {
             required: true,
-            message: "请输入商品单价",
-            trigger: "blur",
-          },
-        ],
-      },
-      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: "详细地址不能为空",
+            message: "审核备注不能为空!",
             trigger: "blur",
           },
         ],
@@ -499,8 +150,7 @@ export default {
     };
   },
   watch: {
-    showModel: function (val) {
-      this.showModelThis = val;
+    newTime: function (val) {
       if (val) {
         this.initForm();
       }
@@ -511,6 +161,9 @@ export default {
       }
     },
   },
+  mounted() {
+    this.initForm();
+  },
   methods: {
     closeModel() {
       console.log("closeModel!!");
@@ -526,6 +179,7 @@ export default {
 
     async initForm() {
       this.loading = true;
+      this.status = "";
       this.rulesThis = this.rules;
       await this.resetForm();
       this.loading = false;
@@ -537,20 +191,18 @@ export default {
         if (this.$refs.ruleForm) {
           this.$refs.ruleForm.resetFields();
           this.$refs.ruleForm.clearValidate();
-          const { zxNo, class_cat, khname, khNo, cpName, sale_fee } =
-            this.sitem;
-            console.log(this.sitem);
+          const { is_act, customer_remark, id, remark, status } = this.sitem;
+          this.status = status;
+          console.log(this.sitem);
           this.ruleForm = {
-            zxNo: zxNo || "",
-            customer_code: khNo || "",
-            customer_name: khname || "",
-            class_cat: class_cat || "",
-            goods_name: cpName || "",
-            supplierNo: [],
-            sendtype: "1", // 真实姓名
-            good_num: "",
-            sale_fee: sale_fee || "",
-            goodtype: "1",
+            id: id || "",
+            status: "",
+            is_act: is_act === "1" || is_act === "2" ? is_act : "1",
+            customer_remark:
+              customer_remark === "1" || customer_remark === "2"
+                ? customer_remark
+                : "1",
+            remark: remark || "",
           };
         }
       });
@@ -604,65 +256,13 @@ export default {
       await this.$refs.ruleForm.validate(async (valid) => {
         if (valid) {
           this.loading = true;
-          const {
-            zxNo,
-            customer_code,
-            good_num,
-            sendtype,
-            supplierNo,
-            goodtype,
-          } = JSON.parse(JSON.stringify(this.ruleForm));
-          const { addrlist } = JSON.parse(JSON.stringify(this.addrForm));
-          console.log(goodtype);
-          if (sendtype === "1") {
-            let isok = true,
-              addrT = 0;
-            addrlist.forEach((v) => {
-              addrT += parseInt(v.receipt_quantity);
-              if (v.edit) {
-                isok = false;
-              }
-            });
-            if (!isok) {
-              this.$message.warning("请保存地址信息!");
-              this.loading = false;
-              return;
-            }
-            if (parseInt(good_num) !== addrT) {
-              this.$message.warning(
-                "下单数量,与收货地址信息中的总数量不一致!"
-              );
-              this.loading = false;
-              return;
-            }
-          }
-          const model = {
-            zxNo: zxNo || "",
-            customer_code: customer_code || "",
-            good_num: good_num || "",
-            supplierNo: supplierNo.length > 0 ? supplierNo[0] : "",
-            sendtype: sendtype | "",
-            goodtype: goodtype || "",
-            addrlist: [],
-          };
-          let list = [];
-          addrlist.forEach((v) => {
-            let xitem = {
-              contactor: v.contactor,
-              mobile: v.mobile,
-              addr: v.addr,
-              addr_code: v.addr_code,
-              receipt_quantity: v.receipt_quantity,
-              arrive_time: v.arrive_time,
-            };
-            list.push(xitem);
-          });
-          model.addrlist = sendtype === "1" ? list : [];
-          let res = await asyncRequest.add(model);
+          const model = JSON.parse(JSON.stringify(this.ruleForm));
+          model.status = "2";
+          let res = await asyncRequest.status(model);
           this.loading = false;
           if (res && res.code === 0) {
             this.$notify.success({
-              title: "添加成功",
+              title: "提交成功!",
               message: "",
             });
             this.showModelThis = false;

+ 30 - 39
src/views/sheetOrder/zxDiffOrder/detail.vue

@@ -1,44 +1,35 @@
 <template>
-  <div class="zxSheetDetail pagePadding">
+  <div class="zxDiffOrderDetail pagePadding">
     <div
       style="width: 100%"
       v-if="powers && powers.length > 0 && powers.some((item) => item == '001')"
     >
       <div class="tl" style="padding: 10px 0 22px 0">
-        <span>咨询单详情:</span>
-        <el-button
-          @click="statusConfirm('-1', '作废该条信息')"
-          type="danger"
-          class="fr"
-          plain
-          :size="'mini'"
-          v-if="powers.some((item) => item == '006')"
-          style="margin:0 0 0 10px"
-          >作废该条信息</el-button
-        >
-        <el-button
-          v-if="powers.some((item) => item == '003')"
-          style="margin: 0 0 0 10px"
-          class="fr"
-          type="primary"
-          plain
-          :size="'mini'"
-          @click="showModel = true"
-          >新建咨询订单
-        </el-button>
+        <span>咨询工差单详情:</span>
       </div>
-      <show-form
-        :newTime="newTime"
-        v-if="newTime !== ''"
-        :sitem="sitem"
-        :id="queryId"
-      />
-      <add-form
-        :sitem="sitem"
-        :show-model="showModel"
-        @refresh="showModel = false"
-        @cancel="showModel = false"
-      />
+      <el-collapse v-model="activeNames">
+        <el-collapse-item title="采购工差单信息" name="1">
+          <show-form
+            :newTime="newTime"
+            v-if="newTime !== ''"
+            :sitem="sitem"
+            :id="queryId"
+          />
+        </el-collapse-item>
+        <el-collapse-item title="业务审核" name="2">
+          <add-form
+            :sitem="sitem"
+            :newTime="newTime"
+            v-if="newTime !== ''"
+            @refresh="initData()"
+          />
+        </el-collapse-item>
+        <el-collapse-item title="通知业务部门" name="3">
+          <div class="tr" style="padding:0 30px 20px 0;">
+            <el-button type="primary" plain :size="'mini'">我已知晓</el-button>
+          </div>
+        </el-collapse-item>
+      </el-collapse>
     </div>
     <div v-else>
       <no-auth></no-auth>
@@ -48,11 +39,11 @@
    <script>
 import mixinPage from "@/mixins/elPaginationHandle";
 import resToken from "@/mixins/resToken";
-import asyncRequest from "@/apis/service/sheetOrder/zxSheet";
+import asyncRequest from "@/apis/service/sheetOrder/zxDiffOrder";
 import showForm from "./components/showForm";
 import addForm from "./components/addForm";
 export default {
-  name: "zxSheetDetail",
+  name: "zxDiffOrderDetail",
   mixins: [mixinPage, resToken],
   components: {
     showForm,
@@ -62,7 +53,7 @@ export default {
     powers() {
       let tran =
         this.$store.getters.btnList.find(
-          (item) => item.menu_route == "zxSheetDetail"
+          (item) => item.menu_route == "zxDiffOrderDetail"
         ) || {};
       if (tran && tran.action && tran.action.length > 0) {
         return tran.action;
@@ -129,7 +120,7 @@ export default {
           message: "",
         });
 
-        this.routeGoto("zxSheet", {});
+        this.routeGoto("zxDiffOrder", {});
       } else if (res && res.code >= 100 && res.code <= 104) {
         await this.logout();
       } else {
@@ -197,7 +188,7 @@ export default {
 };
 </script>
    <style lang="scss" scoped>
-.zxSheetDetail {
+.zxDiffOrderDetail {
 }
 </style>
    

+ 51 - 48
src/views/sheetOrder/zxDiffOrder/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="zxSheet pagePadding">
+  <div class="zxDiffOrder pagePadding">
     <div
       v-if="powers && powers.length > 0 && powers.some((item) => item == '001')"
     >
@@ -27,33 +27,21 @@
           <div style="width: 100%">
             <el-row style="padding: 0 0 0 80px">
               <el-col :span="24">
-                <el-col :span="4" style="width: 140px">
-                  <el-select
+               
+                <el-col :span="4" style="width: 400px;">
+                  <search-customer
+                    :value="customerCode"
                     :size="searchSize"
-                    v-model="parmValue.zxtype"
-                    filterable
-                    clearable
-                    placeholder="咨询类型"
-                    style="width: 100%"
-                    @change="
-                      pageInfo.curr = 1;
-                      parmValue.page = 1;
-                      searchList();
-                    "
-                  >
-                    <el-option
-                      v-for="item in statusList"
-                      :key="'zxtype' + item"
-                      :label="iteme"
-                      :value="item"
-                    />
-                  </el-select>
+                    :placeholder="'购买方公司名称'"
+                    @searchChange="customerChange"
+                  />
                 </el-col>
-                <el-col :span="4" style="width: 420px; padding: 0 0 0 10px">
+
+                <el-col :span="4" style="width: 410px; padding: 0 0 0 10px">
                   <search-customer
                     :value="customerCode"
                     :size="searchSize"
-                    :placeholder="'客户公司名称'"
+                    :placeholder="'购买方公司名称'"
                     @searchChange="customerChange"
                   />
                 </el-col>
@@ -70,9 +58,31 @@
                 </el-col>
               </el-col>
             </el-row>
-            <el-row style="padding: 10px 0 0 0">
+            <el-row style="padding:10px 0 0 0;">
               <el-col :span="24">
-                <el-col :span="6" style="width: 292px">
+                 <el-col :span="4" style="width: 140px">
+                  <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 statusList"
+                      :key="'status' + item"
+                      :label="iteme"
+                      :value="item"
+                    />
+                  </el-select>
+                </el-col>
+                <el-col :span="6" style="width: 303px;padding:0 0 0 10px;">
                   <period-date-picker
                     :start="parmValue.start"
                     :end="parmValue.end"
@@ -82,24 +92,17 @@
                     @timeReturned="timeReturned($event)"
                   />
                 </el-col>
-
-                <el-col :span="4" style="width: 350px; padding: 0 0 0 10px">
+                <el-col :span="4" style="width: 300px; padding: 0 0 0 10px">
                   <el-input
-                    placeholder="关键字"
-                    v-model="input"
+                    placeholder="咨询订单编号"
+                    v-model="parmValue.orderCode"
                     :size="searchSize"
+                    @blur="
+                      pageInfo.curr = 1;
+                      parmValue.page = 1;
+                      searchList();
+                    "
                   >
-                    <el-select
-                      v-model="select"
-                      slot="prepend"
-                      placeholder="请选择"
-                      style="width: 115px"
-                      :size="searchSize"
-                    >
-                      <el-option label="咨询单编码" value="1"></el-option>
-                      <el-option label="申请人" value="2"></el-option>
-                      <el-option label="商品名称" value="3"></el-option>
-                    </el-select>
                     <el-button
                       slot="append"
                       icon="el-icon-search"
@@ -111,6 +114,7 @@
                     ></el-button>
                   </el-input>
                 </el-col>
+
                 <el-col :span="4" style="width: 66px; float: right">
                   <el-button
                     type="warning"
@@ -144,7 +148,7 @@
           >
             <i
               class="el-icon-view tb-icon"
-              @click="routeGoto('zxSheetDetail', { id: scope.row.id })"
+              @click="routeGoto('zxDiffOrderDetail', { id: scope.row.id })"
             ></i>
           </el-tooltip>
           <!-- <el-tooltip
@@ -172,7 +176,6 @@
           </el-tooltip> -->
         </template>
       </ex-table>
-     
     </div>
     <div v-else>
       <no-auth></no-auth>
@@ -182,18 +185,18 @@
    <script>
 import mixinPage from "@/mixins/elPaginationHandle";
 import resToken from "@/mixins/resToken";
-import asyncRequest from "@/apis/service/sheetOrder/zxSheet";
+import asyncRequest from "@/apis/service/sheetOrder/zxDiffOrder";
 import { mapGetters } from "vuex";
 import columns from "./columns";
 export default {
-  name: "zxSheet",
+  name: "zxDiffOrder",
   mixins: [mixinPage, resToken],
   computed: {
     ...mapGetters(["tablebtnSize", "searchSize", "size"]),
     powers() {
       let tran =
         this.$store.getters.btnList.find(
-          (item) => item.menu_route == "zxSheet"
+          (item) => item.menu_route == "zxDiffOrder"
         ) || {};
       if (tran && tran.action && tran.action.length > 0) {
         return tran.action;
@@ -234,7 +237,7 @@ export default {
         zxNo: "", // 咨询单编码
         khNo: "", // 客户编码
         cpName: "", //商品名称
-        zxtype: "", //咨询类型
+        status: "", //咨询类型
         salesman: "", //申请人
         start: "",
         end: "",
@@ -299,7 +302,7 @@ export default {
         zxNo: "", // 咨询单编码
         khNo: "", // 客户编码
         cpName: "", //商品名称
-        zxtype: "", //咨询类型
+        status: "", //咨询类型
         salesman: "", //申请人
         start: "",
         end: "",
@@ -389,7 +392,7 @@ export default {
 };
 </script>
    <style lang="scss" scoped>
-.zxSheet {
+.zxDiffOrder {
 }
 </style>
    

+ 55 - 80
src/views/sheetOrder/zxOrder/components/addForm.vue

@@ -22,12 +22,7 @@
             </el-col>
             <el-col :span="12">
               <el-form-item label="商品名称" prop="good_code">
-                <el-input
-                  v-model="ruleForm.good_name"
-                  disabled
-                  readonly
-                  @focus="showGoodsModel = true"
-                />
+                <el-input v-model="ruleForm.good_name" disabled readonly />
               </el-form-item>
             </el-col>
             <el-col :span="12">
@@ -104,19 +99,25 @@
                 </el-select>
               </el-form-item>
             </el-col>
-            <el-col :span="24">
-              <search-stock-good-modal
-                :show-model="showGoodsModel"
-                :code="stock_code"
-                @cancel="showGoodsModel = false"
-                @searchChange="addGoodsRes"
-              />
-            </el-col>
           </el-row>
         </el-form>
       </el-col>
 
-      <el-col :span="24" style="padding: 0 0 22px 0" v-if="ruleForm.sendtype==='1'">
+      <el-col
+        :span="24"
+        style="padding: 0 0 22px 0"
+        v-if="ruleForm.sendtype === '1'"
+      >
+        <div style="height: 40px; margin: -10px 0 0 0" class="tr">
+          <download-addr />
+          <el-button
+            type="primary"
+            size="mini"
+            @click="addrmodel = true"
+            style="margin: 0 0 0 10px"
+            >导入收货地址</el-button
+          >
+        </div>
         <el-form :model="addrForm" ref="addrForm" :size="'mini'">
           <el-table
             :data="addrForm.order_addr"
@@ -162,9 +163,9 @@
                   <el-date-picker
                     :disabled="!scope.row.edit"
                     v-model="scope.row.arrive_time"
-                    type="datetime"
+                    type="date"
                     style="width: 100%"
-                    value-format="yyyy-MM-dd HH:mm:ss"
+                    value-format="yyyy-MM-dd"
                     :picker-options="pickerOptions"
                   >
                   </el-date-picker>
@@ -301,6 +302,13 @@
           </el-table>
         </el-form>
       </el-col>
+      <el-col :span="24">
+        <in-addr-model
+          :show-model="addrmodel"
+          @cancel="addrmodel = false"
+          @refresh="addrRefresh"
+        />
+      </el-col>
       <el-col
         :span="24"
         style="text-align: right"
@@ -317,14 +325,13 @@
 import mixinPage from "@/mixins/elPaginationHandle";
 import resToken from "@/mixins/resToken";
 import asyncRequest from "@/apis/service/sheetOrder/zxOrder/detail";
-import searchStockGoodModal from "@/components/search-stock-good-modal";
 import { isnumber, isMobile } from "@/utils/validate";
-
+import inAddrModel from "@/components/in-addr-model";
 export default {
   name: "salesOrderDetail",
   mixins: [mixinPage, resToken],
   props: ["newTime", "id", "sitem"],
-  components: { searchStockGoodModal },
+  components: { inAddrModel },
   watch: {
     newTime: function (val) {
       if (val) {
@@ -370,7 +377,7 @@ export default {
       }
     };
     return {
-      showGoodsModel: false,
+      addrmodel: false,
       stock_code: "",
       companyName: "",
       supplierName: "",
@@ -386,7 +393,7 @@ export default {
         sale_fee: "",
         good_code: "", // 商品选择
       },
-         options: [
+      options: [
         {
           value: "1",
           label: "直接发货",
@@ -523,10 +530,11 @@ export default {
   methods: {
     async initForm() {
       this.status = "";
-      this.queryId = this.$route.query.id;
+
       this.rulesThis = this.rules;
       this.resetForm();
     },
+
     async supplierChange(e) {
       if (e && e.id) {
         this.ruleForm.supplierNo = [e.code];
@@ -539,6 +547,10 @@ export default {
     getNewTime() {
       this.newTime = new Date().valueOf();
     },
+    addrRefresh(e) {
+      const { list } = e;
+      this.addrForm.order_addr.push(...list);
+    },
     async resetForm() {
       // 重置
       await this.$nextTick(() => {
@@ -558,7 +570,9 @@ export default {
             send_type,
             sale_price,
             supplierName,
+            id,
           } = this.sitem;
+          this.queryId = id;
           this.companyName = companyName;
           this.supplierName = supplierName;
           this.status = status;
@@ -672,48 +686,27 @@ export default {
       await this.$refs.ruleForm.validate(async (valid) => {
         if (valid) {
           this.loading = true;
-          const { good_code, customer_code } = JSON.parse(
-            JSON.stringify(this.ruleForm)
-          );
-          const { good_stock } = JSON.parse(JSON.stringify(this.stockForm));
+          const { customer_code, sendtype, good_num, goodtype, supplierNo } =
+            JSON.parse(JSON.stringify(this.ruleForm));
           const { order_addr } = JSON.parse(JSON.stringify(this.addrForm));
-          if (good_stock.length === 0) {
-            this.$message.warning("请填写仓库信息!");
-            this.loading = false;
-            return;
-          }
-          if (order_addr.length === 0) {
-            this.$message.warning("请填写仓库信息!");
+
+          if (sendtype === "1" && order_addr.length === 0) {
+            this.$message.warning("请填写收货地址信息!");
             this.loading = false;
             return;
           }
           let model = {
-            good_code,
+            id: this.queryId,
+            goodtype: goodtype || "",
+            good_num: good_num || "",
+            sendtype:sendtype||"",
             customer_code: customer_code.join(","), // 账号
-            order_addr: [],
-            good_stock: [],
+            supplierNo: supplierNo.join(","), // 账号
+            remark: "",
+            addrlist: [],
           };
-          let stockT = 0,
-            addrT = 0,
-            isStockOk = true,
-            isSEdit = false,
+          let addrT = 0,
             isAEdit = false;
-          good_stock.forEach((v1) => {
-            if (v1.edit) {
-              isSEdit = true;
-            }
-            if (parseInt(v1.usable_stock) < parseInt(v1.num)) {
-              isStockOk = false;
-            }
-            stockT += parseInt(v1.num);
-            let model1 = {
-              num: v1.num,
-              wsm_code: v1.wsm_code,
-              id: v1.id,
-              is_del: 0,
-            };
-            model.good_stock.push(model1);
-          });
           order_addr.forEach((v2) => {
             if (v2.edit) {
               isAEdit = true;
@@ -729,24 +722,16 @@ export default {
               id: v2.id,
               is_del: 0,
             };
-            model.order_addr.push(model2);
+            model.addrlist.push(model2);
           });
-          if (isSEdit) {
-            this.$message.warning("请保存仓库信息!");
-            this.loading = false;
-            return;
-          }
+
           if (isAEdit) {
             this.$message.warning("请保存地址信息!");
             this.loading = false;
             return;
           }
-          if (!isStockOk) {
-            this.$message.warning("部分仓库销售数量已大于可用数量!");
-            this.loading = false;
-            return;
-          }
-          if (stockT !== addrT) {
+
+          if (parseInt(good_num) !== addrT) {
             this.$message.warning(
               "库存出库总数量,与收货地址信息中的总数量不一致!"
             );
@@ -754,24 +739,14 @@ export default {
             return;
           }
           let dAList = JSON.parse(JSON.stringify(this.delAddrList));
-          let dSList = JSON.parse(JSON.stringify(this.delStockList));
-          good_stock.forEach((v) => {
-            let findex = dSList.findIndex((v1) => v1.wsm_code === v.wsm_code);
-            if (findIndex !== -1) {
-              dSList.splice(findex, 1);
-            }
-          });
           order_addr.forEach((v) => {
             let findex = dAList.findIndex(
               (v1) => v1.id !== "" && v1.id === v.id
             );
-            if (findIndex !== -1) {
+            if (findex !== -1) {
               dAList.splice(findex, 1);
             }
           });
-          dSList.forEach((v) => {
-            v.is_del = 1;
-          });
           dAList.forEach((v) => {
             v.is_del = 1;
           });

+ 19 - 13
src/views/sheetOrder/zxOrder/detail.vue

@@ -17,19 +17,12 @@
           >新建销售退货单
         </el-button> -->
 
-        <el-button
-          class="fr"
-          type="primary"
-          plain
-          :size="'mini'"
-          @click="openModal('add', false, 'service')"
-          >新建售后申请单
-        </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')"
           >发起审核流程
@@ -38,19 +31,23 @@
         <el-button
           @click="statusConfirm('0', '取消审核流程')"
           plain
+          class="fr"
           :size="'mini'"
+          style="margin: 0 0 0 10px"
           v-if="status === '1' && powers.some((item) => item == '014')"
           >取消审核流程</el-button
         >
         <el-button
           type="primary"
           plain
+          class="fr"
           :size="'mini'"
+          style="margin: 0 0 0 10px"
           @click="statusConfirm('3', '开始发货')"
           v-if="status === '2' && powers.some((item) => item == '026')"
           >开始发货
         </el-button>
-        <el-button
+        <!-- <el-button
           @click="statusConfirm('-1', '作废该条信息')"
           type="danger"
           plain
@@ -61,7 +58,16 @@
             powers.some((item) => item == '015')
           "
           >作废该条信息</el-button
-        >
+        > -->
+        <el-button
+          class="fr"
+          type="primary"
+          plain
+          :size="'mini'"
+          style="margin: 0 0 0 10px"
+          @click="openModal('add', false, 'service')"
+          >新建售后申请单
+        </el-button>
       </div>
       <status-bar
         v-if="newTime !== ''"
@@ -172,8 +178,8 @@ export default {
       finishStatus: "finish",
       activeNames: ["-1", "0", "1", "2", "3", "4", "5", "10"],
       statusOptions: [
-        { value: "0", label: "取消" },
-        { value: "1", label: "发起" },
+        { value: "0", label: "发起流程" },
+        { value: "1", label: "开始发货" },
         { value: "2", label: "反馈物流费" },
         { value: "3", label: "同意下单" },
         { value: "4", label: "发货中" },

+ 1 - 0
src/views/sheetOrder/zxSheet/components/addForm.vue

@@ -48,6 +48,7 @@
                 :placeholder="'销售方公司'"
                 :disabled="false"
                 :isDetail="false"
+                :type="'1'"
                 @searchChange="supplierChange"
               />
             </el-form-item>

+ 4 - 4
src/views/sheetOrder/zxoutOrder/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="goodsService pagePadding">
+  <div class="zxoutOrder pagePadding">
     <div
       v-if="powers && powers.length > 0 && powers.some((item) => item == '001')"
     >
@@ -256,7 +256,7 @@ import columns from "./columns";
 import { mapGetters } from "vuex";
 
 export default {
-  name: "goodsService",
+  name: "zxoutOrder",
   mixins: [mixinPage, resToken],
   components: {
     addEdit,
@@ -266,7 +266,7 @@ export default {
     powers() {
       let tran =
         this.$store.getters.btnList.find(
-          (item) => item.menu_route == "goodsService"
+          (item) => item.menu_route == "zxoutOrder"
         ) || {};
       if (tran && tran.action && tran.action.length > 0) {
         return tran.action;
@@ -611,7 +611,7 @@ export default {
 };
 </script>
    <style lang="scss" scoped>
-.goodsService {
+.zxoutOrder {
 }
 </style>