Browse Source

Merge branch 'feature/master'

rainwer 6 months ago
parent
commit
d19a5ae7b2

+ 0 - 9
src/views/business/crm/order/form.vue

@@ -718,15 +718,6 @@
               </el-form-item>
             </el-col>
             <br />
-
-            <el-col :span="20">
-              <el-form-item label="更新内容" prop="updateRemark">
-                <el-input v-if="editStatus" v-model="form.updateRemark" show-word-limit maxlength="250"
-                          style="width: 100%; margin: 0; padding: 0" placeholder="请输入更新内容" type="textarea" :rows="4" />
-                <span v-else>{{ form.updateRemark }}</span>
-              </el-form-item>
-            </el-col>
-            <br />
             <el-col :span="24">
               <div class="details-head" style="font-size: 12px">
                 <div class="title">

+ 12 - 1
src/views/business/financial/contract/index.vue

@@ -63,7 +63,12 @@
         align="center"
         prop="contractNo"
         min-width="150"
-      />
+      >
+        <template #default="scope">
+          <el-link :underline="false" type="primary" @click="handleContract(scope.row.id)">{{ scope.row.contractNo }}</el-link>
+        </template>
+      
+      </el-table-column>
       <el-table-column
         label="签约日期"
         align="center"
@@ -173,6 +178,7 @@
       </el-table-column>
     </el-table>
     <contract-form ref="contractRef" :get-list="getList" />
+    <contract-detail-form ref="contractDetailFormRef"/>
     <!-- 分页 -->
     <pagination
       v-show="total > 0"
@@ -187,6 +193,7 @@
 <script setup name="WaitForCollection">
 import contractForm from "./form";
 import { listContract } from "@/api/business/financial/collection";
+import contractDetailForm from "@/views/business/crm/order/form.vue";
 const { proxy } = getCurrentInstance();
 /** 字典数组区 */
 /** 查询 对象 */
@@ -212,6 +219,10 @@ const queryParams = ref({
 });
 
 /***********************  方法区  ****************************/
+function handleContract(contractId) {
+  proxy.$refs.contractDetailFormRef.open(contractId);
+}
+
 onActivated(() => {
     // 你的逻辑
     getList();

+ 93 - 38
src/views/business/financial/payment/form.vue

@@ -178,6 +178,48 @@
                 <span>{{ form.party }}</span>
               </el-form-item>
             </el-col>
+            <el-col :span="6">
+              <el-form-item label="签单类型:" prop="contractType">
+                <el-radio-group v-model="form.contractType" disabled v-if="editStatus">
+                  <el-radio :label="0">新签</el-radio>
+                  <el-radio :label="1">续签</el-radio>
+                </el-radio-group>
+                <span v-else>{{ form.contractType === 0 ? '新签' : '续签' }}</span>
+              </el-form-item>
+            </el-col>
+            <template v-if="!editStatus">
+              <el-col :span="6">
+                <el-form-item label="是否为项目:" prop="isProject">
+                  <el-radio-group v-model="form.collection.isProject" v-if="editStatus">
+                    <el-radio :label="0">项目</el-radio>
+                    <el-radio :label="1">非项目</el-radio>
+                  </el-radio-group>
+                  <span v-else>{{ form.collection.isProject !== undefined && form.collection.isProject !== null ? (form.collection.isProject === 0 ? '项目' :
+                    '非项目') : '' }}</span>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="项目编号:" prop="projectNo">
+                  <el-input v-if="editStatus" v-model.trim="form.collection.projectNo" size="small" type="text" placeholder="项目编号"
+                    :clearable="true" />
+                  <span v-else>{{ form.collection.projectNo }}</span>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="项目名称:" prop="projectName">
+                  <el-input v-if="editStatus" v-model.trim="form.collection.projectName" size="small" type="text" placeholder="项目名称"
+                    :clearable="true" />
+                  <span v-else>{{ form.collection.projectName }}</span>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="项目主体名称:" prop="projectMainName">
+                  <el-input v-if="editStatus" v-model.trim="form.collection.projectMainName" size="small" type="text"
+                    placeholder="项目主体名称" :clearable="true" />
+                  <span v-else>{{ form.collection.projectMainName }}</span>
+                </el-form-item>
+              </el-col>
+          </template>
             <el-col :span="12">
               <el-form-item label="备注:">
                 <el-input v-if="editStatus" v-model.trim="form.remark" size="small" type="text" placeholder="备注"
@@ -490,11 +532,18 @@
     verifyStatus: 0,
     acceptAccount: "",
     accountBank: "",
+    contractType: '',
     applierId: useUserStore().user.userId,
     applierName: "",
     creatorName: useUserStore().user.nickName,
     details: [],
     files: [],
+    collection: {
+      projectNo: '',
+      projectName: '',
+      projectMainName: '',
+      isProject: '',
+    }
   };
   const isFullscreen = ref(false);
   const webHost = import.meta.env.VITE_APP_BASE_API;
@@ -550,6 +599,15 @@
     if (id != null) {
       getPayment(id).then((res) => {
         form.value = res.data;
+        if(!res.data.collection) {
+          form.value.collection = {
+            projectNo: '',
+            projectName: '',
+            projectMainName: '',
+            isProject: '',
+          }
+        }
+        console.log(form.value)
         editStatus.value = false;
         paymentCauseChange(form.value.paymentCauseId);
         paymentSubjectChange(form.value.paymentSubjectId);
@@ -675,7 +733,6 @@
           res.newFileName.split(".")[res.newFileName.split(".").length - 1];
         file.originalFileName = res.originalFilename;
         file.fileUrl = res.fileName;
-        console.log(11212, file);
         if (rejectForm.value.evidenceFiles == null) {
           rejectForm.value.evidenceFiles = [];
         }
@@ -695,7 +752,6 @@
           res.newFileName.split(".")[res.newFileName.split(".").length - 1];
         file.originalFileName = res.originalFilename;
         file.fileUrl = res.fileName;
-        console.log(11212, file);
         if (cashierForm.value.evidenceFiles == null) {
           cashierForm.value.evidenceFiles = [];
         }
@@ -903,45 +959,44 @@
   }
 
   async function contractChoiceHandle(info) {
-  // 清空之前的详情
-  form.value.details = [];
-  
-  // 设置合同信息
-  form.value.contractId = info.id;
-  form.value.contractNo = info.contractNo;
-  form.value.contractAmount = info.trueAmount;
-  form.value.payedAmount = info.paidAmount;
-
-  try {
-    const orderResponse = await getOrder(info.id);
-    form.value.boss = orderResponse.data.boss;
-    form.value.party = orderResponse.data.party;
-
-    const detailResponse = await listContractDetail({ contractId: info.id });
-    const rows = detailResponse.rows;
-
-    // 处理每一行数据
-    rows.forEach((item) => {
-      const detail = {
-        contractId: item.contractId,
-        contractDetailId: item.id,
-        companyId: form.value.companyId,
-        taskTypeId: item.taskTypeId,
-        amount: item.amount,
-        taskTypeName: item.taskTypeName,
-        payment: item.payment,
-        reallyAmount: item.reallyAmount,
-        explain: item.explain
-      };
-      form.value.details.push(detail);
-    });
+    // 清空之前的详情
+    form.value.details = [];
+    
+    // 设置合同信息
+    form.value.contractId = info.id;
+    form.value.contractNo = info.contractNo;
+    form.value.contractAmount = info.trueAmount;
+    form.value.payedAmount = info.paidAmount;
+    form.value.contractType = info.contractType;
+
+    try {
+      const orderResponse = await getOrder(info.id);
+      form.value.boss = orderResponse.data.boss;
+      form.value.party = orderResponse.data.party;
 
-    console.log(2323232, form.value);
+      const detailResponse = await listContractDetail({ contractId: info.id });
+      const rows = detailResponse.rows;
 
-  } catch (error) {
-    console.error("在 contractChoiceHandle 中发生错误:", error);
+      // 处理每一行数据
+      rows.forEach((item) => {
+        const detail = {
+          contractId: item.contractId,
+          contractDetailId: item.id,
+          companyId: form.value.companyId,
+          taskTypeId: item.taskTypeId,
+          amount: item.amount,
+          taskTypeName: item.taskTypeName,
+          payment: item.payment,
+          reallyAmount: item.reallyAmount,
+          explain: item.explain
+        };
+        form.value.details.push(detail);
+      });
+
+    } catch (error) {
+      console.error("在 contractChoiceHandle 中发生错误:", error);
+    }
   }
-}
 
 
   function handlerDelAttach(row, index) {

+ 4 - 1
src/views/system/dict/index.vue

@@ -265,7 +265,9 @@ const dateRange = ref([]);
 const webHost = import.meta.env.VITE_APP_BASE_API;
 
 const data = reactive({
-  form: {},
+  form: {
+    module: "system",
+  },
   queryParams: {
     pageNum: 1,
     module: "system",
@@ -309,6 +311,7 @@ function reset() {
     dictName: undefined,
     dictType: undefined,
     status: "0",
+    module: "system",
     remark: undefined,
   };
   proxy.resetForm("dictRef");