lxf 1 년 전
부모
커밋
25b80df121
1개의 변경된 파일89개의 추가작업 그리고 2개의 파일을 삭제
  1. 89 2
      src/views/group/order/after-sale/index.vue

+ 89 - 2
src/views/group/order/after-sale/index.vue

@@ -12,11 +12,42 @@
       :spanMethod="spanMethod"
       :borderStatus="true">
     </byTable>
+
+    <el-dialog title="质检" v-if="openQualityTesting" v-model="openQualityTesting" width="500px">
+      <el-form :model="rowData" ref="submit" :rules="rules" v-loading="loadingQualityTesting">
+        <div style="margin: 10px 0; font-weight: 700; font-size: 18px; color: black">请根据质检结果选择,此裸垫是否可二次销售</div>
+        <template v-if="rowData.orderExchangeDetailList && rowData.orderExchangeDetailList.length > 0">
+          <div v-for="(item, index) in rowData.orderExchangeDetailList" :key="index" style="margin-top: 20px">
+            <div style="margin-bottom: 10px">SKU品号:{{ item.skuSpecCode }}</div>
+            <el-form-item
+              label="质检通过数量"
+              :prop="'orderExchangeDetailList.' + index + '.checkPassesQuantity'"
+              :rules="rules.checkPassesQuantity"
+              :inline-message="true">
+              <el-input-number
+                onmousewheel="return false;"
+                v-model="item.checkPassesQuantity"
+                placeholder="数量"
+                style="width: 100%"
+                :controls="false"
+                :min="0"
+                :precision="0" />
+            </el-form-item>
+          </div>
+        </template>
+      </el-form>
+      <template #footer>
+        <el-button @click="openQualityTesting = false" size="large" v-preReClick>取 消</el-button>
+        <el-button type="primary" @click="clickSubmit()" size="large" v-preReClick>质检完成</el-button>
+      </template>
+    </el-dialog>
   </el-card>
 </template>
 
 <script setup>
 import byTable from "/src/components/byTable/index";
+import { ElMessage } from "element-plus";
+import { get } from "@vueuse/core";
 
 const { proxy } = getCurrentInstance();
 const departmentList = ref([{ dictKey: "0", dictValue: "胜德体育" }]);
@@ -148,12 +179,25 @@ const config = computed(() => {
     {
       attrs: {
         label: "操作",
-        width: 100,
+        width: 140,
         align: "center",
         fixed: "right",
       },
       renderHTML(row) {
         return [
+          row.status === 0
+            ? {
+                attrs: {
+                  label: "质检",
+                  type: "primary",
+                  text: true,
+                },
+                el: "button",
+                click() {
+                  clickQualityTesting(row);
+                },
+              }
+            : {},
           {
             attrs: {
               label: "查看详情",
@@ -233,6 +277,8 @@ const getList = async (req, status) => {
             returnAmount: res.rows[i].orderExchangeDetailList[j].returnAmount,
             createTime: res.rows[i].createTime,
             createUserName: res.rows[i].createUserName,
+            status: res.rows[i].status,
+            orderExchangeDetailList: res.rows[i].orderExchangeDetailList,
           });
         }
       }
@@ -269,6 +315,47 @@ const spanMethod = ({ rowIndex, columnIndex }) => {
     };
   }
 };
+const rowData = ref({});
+const openQualityTesting = ref(false);
+const loadingQualityTesting = ref(false);
+const rules = ref({
+  checkPassesQuantity: [{ required: true, message: "请输入质检通过数量", trigger: "blur" }],
+});
+const clickQualityTesting = (item) => {
+  rowData.value = proxy.deepClone(item);
+  if (rowData.value.orderExchangeDetailList && rowData.value.orderExchangeDetailList.length > 0) {
+    rowData.value.orderExchangeDetailList = rowData.value.orderExchangeDetailList.map((row) => {
+      return {
+        ...row,
+        checkPassesQuantity: row.quantity,
+      };
+    });
+  }
+  loadingQualityTesting.value = false;
+  openQualityTesting.value = true;
+};
+const clickSubmit = () => {
+  proxy.$refs.submit.validate((valid) => {
+    if (valid) {
+      loadingQualityTesting.value = true;
+      proxy.post("/orderExchange/orderExchangeCheck", rowData.value).then(
+        () => {
+          ElMessage({ message: "质检完成", type: "success" });
+          openQualityTesting.value = false;
+          getList();
+        },
+        (err) => {
+          console.log(err);
+          loadingQualityTesting.value = false;
+        }
+      );
+    }
+  });
+};
 </script>
 
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+::v-deep(.el-input-number .el-input__inner) {
+  text-align: left;
+}
+</style>