瀏覽代碼

退款申请

lxf 2 年之前
父節點
當前提交
557e7627af
共有 2 個文件被更改,包括 246 次插入0 次删除
  1. 237 0
      src/components/process/PurchaseRefund.vue
  2. 9 0
      src/views/purchaseManage/purchasePayment/refund/index.vue

+ 237 - 0
src/components/process/PurchaseRefund.vue

@@ -0,0 +1,237 @@
+<template>
+  <div style="width: 100%; padding: 0px 15px">
+    <byForm :formConfig="formConfig" :formOption="formOption" v-model="formData.data" :rules="rules" ref="submit"></byForm>
+  </div>
+</template>
+
+<script setup>
+import byForm from "@/components/byForm/index";
+import { ElMessage, ElMessageBox } from "element-plus";
+import SelectGoods from "@/components/product/SelectGoods";
+import useUserStore from "@/store/modules/user";
+
+const { proxy } = getCurrentInstance();
+const supplierList = ref([]);
+let formData = reactive({
+  data: {
+    supplyId: "",
+    deptName: "",
+    refundName: "",
+    amount: "",
+    remark: "",
+    refundTime: "",
+    refundDetailList: [],
+  },
+});
+const submit = ref(null);
+const formOption = reactive({
+  inline: true,
+  labelWidth: 100,
+  itemWidth: 100,
+  rules: [],
+});
+const formConfig = computed(() => {
+  return [
+    {
+      type: "select",
+      label: "供应商",
+      prop: "supplyId",
+      data: supplierList.value,
+      fn: (val) => {
+        changeSupply(val);
+      },
+      disabled: formData.data.id,
+    },
+    {
+      type: "select",
+      label: "发票类型",
+      prop: "type",
+      data: invoiceType.value,
+    },
+    {
+      type: "slot",
+      prop: "money",
+      slotName: "money",
+      label: "开票金额",
+    },
+    {
+      type: "slot",
+      prop: "file",
+      slotName: "file",
+      label: "上传附件",
+    },
+    {
+      type: "slot",
+      prop: "information",
+      slotName: "information",
+      label: "发票信息",
+    },
+  ];
+});
+let rules = ref({
+  supplyId: [{ required: true, message: "请选择供应商", trigger: "change" }],
+  count: [{ required: true, message: "请输入退货数量", trigger: "blur" }],
+  remark: [{ required: true, message: "请输入退货原因", trigger: "blur" }],
+});
+const getDict = () => {
+  //   proxy
+  //     .post("/dictTenantData/page", {
+  //       pageNum: 1,
+  //       pageSize: 999,
+  //       dictCode: "invoice_type",
+  //       tenantId: useUserStore().user.tenantId,
+  //     })
+  //     .then((res) => {
+  //       if (res.rows && res.rows.length > 0) {
+  //         invoiceType.value = res.rows.map((item) => {
+  //           return {
+  //             label: item.dictValue,
+  //             value: item.dictKey,
+  //           };
+  //         });
+  //       }
+  //     });
+  proxy.post("/supplierInfo/page", { pageNum: 1, pageSize: 999 }).then((res) => {
+    if (res.rows && res.rows.length > 0) {
+      supplierList.value = res.rows.map((item) => {
+        return {
+          label: item.name,
+          value: item.id,
+        };
+      });
+    }
+  });
+};
+getDict();
+//   const formOption = reactive({
+//     inline: true,
+//     labelWidth: 100,
+//     itemWidth: 100,
+//   });
+//   const formConfig = computed(() => {
+//     return [
+//       {
+//         type: "input",
+//         prop: "returnDept",
+//         label: "申请部门",
+//         itemWidth: 25,
+//         disabled: true,
+//         style: {
+//           "margin-right": "10px",
+//         },
+//       },
+//       {
+//         type: "input",
+//         prop: "returnName",
+//         label: "申请人",
+//         itemWidth: 25,
+//         disabled: true,
+//         style: {
+//           "margin-right": "10px",
+//         },
+//       },
+//       {
+//         type: "date",
+//         prop: "purchaseTime",
+//         label: "申请时间",
+//         itemWidth: 25,
+//         disabled: true,
+//         style: {
+//           "margin-right": "10px",
+//         },
+//       },
+//       {
+//         type: "select",
+//         prop: "supplyId",
+//         label: "供应商",
+//         isLoad: {
+//           url: "/supplierInfo/page",
+//           req: {
+//             pageNum: 1,
+//             pageSize: 9999,
+//           },
+//           labelKey: "name",
+//           labelVal: "id",
+//           method: "post",
+//           resUrl: "rows",
+//         },
+//       },
+//       {
+//         type: "slot",
+//         slotName: "details",
+//         label: "退货明细",
+//       },
+//     ];
+//   });
+//   const formDom = ref(null);
+//   const handleSubmit = async () => {
+//     const vaild = await formDom.value.handleSubmit(() => {}); //拿到内部表单是否验证通过
+//     if (vaild) {
+//       if (formData.data.salesReturnDetailList.length > 0) {
+//         const list = formData.data.salesReturnDetailList;
+//         for (let i = 0; i < list.length; i++) {
+//           const e = list[i];
+//           if (e.count == 0) {
+//             ElMessage({
+//               message: "退货数量不能为0!",
+//               type: "info",
+//             });
+//             return false;
+//           }
+//         }
+//         return true;
+//       }
+//       ElMessage({
+//         message: "请添加退货明细!",
+//         type: "info",
+//       });
+//       return false;
+//     }
+//   };
+//   let openProduct = ref(false);
+//   const handleRemove = (index) => {
+//     formData.data.salesReturnDetailList.splice(index, 1);
+//     return ElMessage({
+//       message: "删除成功!",
+//       type: "success",
+//     });
+//   };
+//   const pushGoods = (goods) => {
+//     const arr = goods.map((x) => ({
+//       goodType: x.goodType,
+//       productCode: x.code,
+//       productName: x.name,
+//       productSpec: x.spec,
+//       productUnit: x.unit,
+//       count: 0,
+//       bussinessId: x.id,
+//       remark: "",
+//     }));
+//     formData.data.salesReturnDetailList =
+//       formData.data.salesReturnDetailList.concat(arr);
+//     return ElMessage({
+//       message: "添加成功!",
+//       type: "success",
+//     });
+//   };
+
+//   // 接收父组件的传值
+//   const props = defineProps({
+//     queryData: String,
+//   });
+
+//   // 获取用户信息并赋默认值
+//   const userInfo = useUserStore().user;
+//   onMounted(() => {
+//     formData.data.purchaseTime = proxy.parseTime(new Date());
+//     formData.data.returnDept = userInfo.dept.deptName;
+//     formData.data.returnName = userInfo.nickName;
+//   });
+//   // 向父组件暴露
+//   defineExpose({
+//     submitData: formData.data,
+//     handleSubmit,
+//   });
+</script>
+
+<style lang="scss" scoped></style>

+ 9 - 0
src/views/purchaseManage/purchasePayment/refund/index.vue

@@ -205,6 +205,15 @@ const getList = async (req) => {
 };
 getDict();
 getList();
+const applyForRefund = () => {
+  proxy.$router.replace({
+    path: "/platform_manage/process/processApproval",
+    query: {
+      flowKey: "refund_flow",
+      flowName: '退款申请'
+    },
+  });
+};
 const receiptRegistration = (row) => {
   console.log(row);
 };