ezhizao_zx 1 rok temu
rodzic
commit
066bf65a8e
1 zmienionych plików z 82 dodań i 309 usunięć
  1. 82 309
      src/views/business/financial/collection/form.vue

+ 82 - 309
src/views/business/financial/collection/form.vue

@@ -4,38 +4,16 @@
     <el-drawer :title="title" v-model="visible" direction="rtl" size="100%">
       <div class="page-container form-container">
         <div class="form-btns-container">
-          <span class="title-label"
-            ><el-icon>
+          <span class="title-label"><el-icon>
               <Document />
             </el-icon>
-            付款信息</span
-          >
+            付款信息</span>
 
-          <el-button
-            v-if="editStatus"
-            type="primary"
-            size="small"
-            icon="Finished"
-            @click="submitForm"
-            >保存</el-button
-          >
-          <el-button
-            v-show="!editStatus && form.verifyDate == null"
-            type="warning"
-            size="small"
-            icon="Edit"
-            v-hasPermi="['business:collection:edit']"
-            @click="editStatus = true"
-            >修改</el-button
-          >
-          <el-button
-            v-if="form.id && editStatus"
-            type="info"
-            size="small"
-            icon="Close"
-            @click="editStatus = false"
-            >取消修改</el-button
-          >
+          <el-button v-if="editStatus" type="primary" size="small" icon="Finished" @click="submitForm">保存</el-button>
+          <el-button v-show="!editStatus && form.verifyDate == null" type="warning" size="small" icon="Edit"
+            v-hasPermi="['business:collection:edit']" @click="editStatus = true">修改</el-button>
+          <el-button v-if="form.id && editStatus" type="info" size="small" icon="Close"
+            @click="editStatus = false">取消修改</el-button>
           <!-- <el-button v-if="form.id" type="success" size="small" @click="getForm">
               <i class="fa fa-refresh" aria-hidden="true" /> 刷新
             </el-button> -->
@@ -45,15 +23,9 @@
             <el-button v-if="form.id && !editStatus && form.verifyStatus == 0"
               v-hasPermi="['business:archive:order:verify']" type="danger" size="small"
               @click="rejectHandler">驳回</el-button> -->
-          <el-button
-            v-show="form.id && !editStatus && form.verifyDate == null"
-            v-hasPermi="['business:collection:verify']"
-            type="primary"
-            size="small"
-            icon="Check"
-            @click="verifyHandler"
-            >收款审核</el-button
-          >
+          <el-button v-show="form.id && !editStatus && form.verifyDate == null"
+            v-hasPermi="['business:collection:verify']" type="primary" size="small" icon="Check"
+            @click="verifyHandler">收款审核</el-button>
 
           <div class="screen-btn" @click="handleScreen">
             <template v-if="!isFullscreen">
@@ -70,67 +42,37 @@
             <!-- <span>关闭</span> -->
           </div>
         </div>
-        <div
-          class="Y-scrollbar"
-          style="
+        <div class="Y-scrollbar" style="
             position: absolute;
             top: 32px;
             bottom: 0;
             width: 100%;
             overflow: auto;
-          "
-        ></div>
-        <el-form
-          ref="orderRef"
-          class="master-container"
-          size="small"
-          :model="form"
-          :rules="rules"
-          label-width="100px"
-        >
+          "></div>
+        <el-form ref="orderRef" class="master-container" size="small" :model="form" :rules="rules" label-width="100px">
           <el-row :gutter="30">
             <el-col :span="6">
               <el-form-item label="收款流水号:">
-                <el-input
-                  v-if="editStatus"
-                  v-model.trim="form.flowNo"
-                  readonly
-                  size="small"
-                  type="text"
-                  placeholder="收款流水号"
-                  :clearable="true"
-                />
+                <el-input v-if="editStatus" v-model.trim="form.flowNo" readonly size="small" type="text"
+                  placeholder="收款流水号" :clearable="true" />
                 <span v-else>{{ form.flowNo }}</span>
               </el-form-item>
             </el-col>
             <el-col :span="6">
               <el-form-item label="收款账户:" prop="subsidiaryName">
-                <el-autocomplete
-                  v-if="editStatus"
-                  :fetch-suggestions="querySearchAccountAsync"
-                  :trigger-on-focus="true"
-                  v-model="form.subsidiaryName"
-                  placeholder="请输入收款账户"
-                  style="width: 100%"
-                  popper-class="my-autocomplete"
-                  @select="handleSelectAccount"
-                >
+                <el-autocomplete v-if="editStatus" :fetch-suggestions="querySearchAccountAsync" :trigger-on-focus="true"
+                  v-model="form.subsidiaryName" placeholder="请输入收款账户" style="width: 100%" popper-class="my-autocomplete"
+                  @select="handleSelectAccount">
                   <template #default="{ item }">
-                    <div
-                      style="
+                    <div style="
                         display: flex;
                         flex-direction: row;
                         justify-content: space-between;
-                      "
-                    >
+                      ">
                       <div class="name" style="font-size: 12px">
                         {{ item.name }}
                       </div>
-                      <span
-                        class="code"
-                        style="font-size: 10px; color: darkgrey"
-                        >{{ item.code }}</span
-                      >
+                      <span class="code" style="font-size: 10px; color: darkgrey">{{ item.code }}</span>
                     </div>
                   </template>
                 </el-autocomplete>
@@ -139,84 +81,44 @@
             </el-col>
             <el-col :span="6">
               <el-form-item label="收款开户行:" prop="subsidiaryBankName">
-                <el-input
-                  v-if="editStatus"
-                  v-model.trim="form.subsidiaryBankName"
-                  size="small"
-                  type="text"
-                  placeholder="开户行"
-                  :clearable="true"
-                  :readonly="true"
-                />
+                <el-input v-if="editStatus" v-model.trim="form.subsidiaryBankName" size="small" type="text"
+                  placeholder="开户行" :clearable="true" :readonly="true" />
                 <span v-else>{{ form.subsidiaryBankName }}</span>
               </el-form-item>
             </el-col>
             <el-col :span="6">
               <el-form-item label="收款账号:" prop="subsidiaryBankAccount">
-                <el-input
-                  v-if="editStatus"
-                  v-model.trim="form.subsidiaryBankAccount"
-                  size="small"
-                  type="text"
-                  placeholder="账号"
-                  :clearable="true"
-                  :readonly="true"
-                />
+                <el-input v-if="editStatus" v-model.trim="form.subsidiaryBankAccount" size="small" type="text"
+                  placeholder="账号" :clearable="true" :readonly="true" />
                 <span v-else>{{ form.subsidiaryBankAccount }}</span>
               </el-form-item>
             </el-col>
             <el-col :span="6">
               <el-form-item label="付款名称:" prop="applyName">
-                <el-input
-                  v-if="editStatus"
-                  v-model.trim="form.applyName"
-                  size="small"
-                  type="text"
-                  placeholder="付款名称"
-                  :clearable="true"
-                />
+                <el-input v-if="editStatus" v-model.trim="form.applyName" size="small" type="text" placeholder="付款名称"
+                  :clearable="true" />
                 <span v-else>{{ form.applyName }}</span>
               </el-form-item>
             </el-col>
             <el-col :span="6">
               <el-form-item label="付款账号:" prop="appyAccount">
-                <el-input
-                  v-if="editStatus"
-                  v-model.trim="form.appyAccount"
-                  size="small"
-                  type="text"
-                  placeholder="付款账号"
-                  :clearable="true"
-                />
+                <el-input v-if="editStatus" v-model.trim="form.appyAccount" size="small" type="text" placeholder="付款账号"
+                  :clearable="true" />
                 <span v-else>{{ form.appyAccount }}</span>
               </el-form-item>
             </el-col>
             <el-col :span="6">
               <el-form-item label="到账日期:" prop="arriveDate">
-                <el-date-picker
-                  v-if="editStatus"
-                  v-model.trim="form.arriveDate"
-                  size="small"
-                  :clearable="true"
-                  style="width: 100%"
-                  format="YYYY-MM-DD"
-                  value-format="YYYY-MM-DD HH:mm:ss"
-                  align="center"
-                  type="date"
-                  placeholder="到账日期"
-                />
+                <el-date-picker v-if="editStatus" v-model.trim="form.arriveDate" size="small" :clearable="true"
+                  style="width: 100%" format="YYYY-MM-DD" value-format="YYYY-MM-DD HH:mm:ss" align="center" type="date"
+                  placeholder="到账日期" />
                 <span v-else>{{ form.arriveDate }}</span>
               </el-form-item>
             </el-col>
             <el-col :span="6">
               <el-form-item label="到账时间:" prop="arriveTime">
-                <el-time-select
-                  v-if="editStatus"
-                  style="width: 100%"
-                  v-model.trim="form.arriveTime"
-                  :picker-options="timeOptions"
-                  placeholder="选择时间"
-                />
+                <el-time-select v-if="editStatus" style="width: 100%" v-model.trim="form.arriveTime"
+                  :picker-options="timeOptions" placeholder="选择时间" />
                 <span v-else>{{ form.arriveTime }}</span>
               </el-form-item>
             </el-col>
@@ -242,17 +144,8 @@
             </el-col>
             <el-col :span="6">
               <el-form-item label="收款金额:" required>
-                <el-input-number
-                  v-if="editStatus"
-                  v-model.trim="form.arriveAmount"
-                  size="small"
-                  placeholder="收款金额"
-                  :clearable="true"
-                  :precision="2"
-                  controls-position="right"
-                  :controls="false"
-                  @change="amountChange"
-                />
+                <el-input-number v-if="editStatus" v-model.trim="form.arriveAmount" size="small" placeholder="收款金额"
+                  :clearable="true" :precision="2" controls-position="right" :controls="false" @change="amountChange" />
                 <span v-else>{{ form.arriveAmount }}</span>
               </el-form-item>
             </el-col>
@@ -268,14 +161,8 @@
             </el-col>
             <el-col :span="12">
               <el-form-item label="备注:">
-                <el-input
-                  v-if="editStatus"
-                  v-model.trim="form.remark"
-                  size="small"
-                  type="text"
-                  placeholder="备注"
-                  :clearable="true"
-                />
+                <el-input v-if="editStatus" v-model.trim="form.remark" size="small" type="text" placeholder="备注"
+                  :clearable="true" />
                 <span v-else style="word-break: break-all">{{
                   form.remark
                 }}</span>
@@ -292,68 +179,28 @@
                 </div>
               </div>
               <div class="details-body">
-                <el-table
-                  ref="filesTable"
-                  :data="form.details"
-                  size="small"
-                  height="100%"
-                  border
-                  header-row-class-name="list-header-row"
-                  highlight-current-row
-                >
-                  <el-table-column
-                    type="index"
-                    label="序号"
-                    width="47"
-                    align="center"
-                  />
-                  <el-table-column
-                    label="任务名称"
-                    prop="taskTypeName"
-                    align="center"
-                    show-overflow-tooltip
-                  >
+                <el-table ref="filesTable" :data="form.details" size="small" height="100%" border
+                  header-row-class-name="list-header-row" highlight-current-row>
+                  <el-table-column type="index" label="序号" width="47" align="center" />
+                  <el-table-column label="任务名称" prop="taskTypeName" align="center" show-overflow-tooltip>
                   </el-table-column>
-                  <el-table-column
-                    label="任务金额"
-                    prop="amount"
-                    width="100"
-                    align="center"
-                  />
-                  <el-table-column
-                    label="本次付款金额"
-                    prop="arriveAmount"
-                    width="100"
-                    align="center"
-                  >
+                  <el-table-column label="任务金额" prop="amount" width="100" align="center" />
+                  <el-table-column label="本次付款金额" prop="arriveAmount" width="100" align="center">
                     <template #default="scope">
                       <template v-if="editStatus">
-                        <el-input-number
-                          v-model="scope.row.arriveAmount"
-                          size="small"
-                          placeholder="本次付款金额"
-                          :precision="2"
-                          :controls="false"
-                          style="width: 100%"
-                          @change="
-                            (arg) =>
-                              amountChangeHandler(
-                                arg,
-                                scope.row,
-                                'arriveAmount'
-                              )
-                          "
-                        />
+                        <el-input-number v-model="scope.row.arriveAmount" size="small" placeholder="本次付款金额" :precision="2"
+                          :controls="false" style="width: 100%" @change="(arg) =>
+                            amountChangeHandler(
+                              arg,
+                              scope.row,
+                              'arriveAmount'
+                            )
+                            " />
                       </template>
                       <template v-else>{{ scope.row.arriveAmount }}</template>
                     </template>
                   </el-table-column>
-                  <el-table-column
-                    label="已付款金额"
-                    prop="arrived"
-                    width="100"
-                    align="center"
-                  />
+                  <el-table-column label="已付款金额" prop="arrived" width="100" align="center" />
                 </el-table>
               </div>
             </el-col>
@@ -363,62 +210,27 @@
                   <i class="fa fa-th-list" aria-hidden="true" /> 附件
                   <span style="color: red"><i style="color: red" /> *</span>
                 </div>
-                <el-upload
-                  v-if="editStatus"
-                  action="#"
-                  :http-request="upload"
-                  :with-credentials="true"
-                  :show-file-list="false"
-                  multiple
-                >
-                  <el-button size="small" type="primary" icon="Upload"
-                    >点击上传</el-button
-                  >
+                <el-upload v-if="editStatus" action="#" :http-request="upload" :with-credentials="true"
+                  :show-file-list="false" multiple>
+                  <el-button size="small" type="primary" icon="Upload">点击上传</el-button>
                 </el-upload>
               </div>
               <div class="details-body">
-                <el-table
-                  ref="filesTable"
-                  :data="form.files"
-                  size="small"
-                  height="100%"
-                  border
-                  header-row-class-name="list-header-row"
-                  highlight-current-row
-                >
-                  <el-table-column
-                    type="index"
-                    label="序号"
-                    width="47"
-                    align="center"
-                  />
-                  <el-table-column
-                    label="文件名"
-                    prop="originalFileName"
-                    align="center"
-                    min-width="200"
-                    show-overflow-tooltip
-                  >
+                <el-table ref="filesTable" :data="form.files" size="small" height="100%" border
+                  header-row-class-name="list-header-row" highlight-current-row>
+                  <el-table-column type="index" label="序号" width="47" align="center" />
+                  <el-table-column label="文件名" prop="originalFileName" align="center" min-width="200"
+                    show-overflow-tooltip>
                     <template #default="scope">
-                      <el-button
-                        size="small"
-                        type="primary"
-                        link
-                        @click="openFile(scope.row)"
-                        >{{ scope.row.originalFileName }}</el-button
-                      >
+                      <el-button size="small" type="primary" link @click="openFile(scope.row)">{{
+                        scope.row.originalFileName }}</el-button>
                     </template>
                   </el-table-column>
                   <el-table-column label="操作" min-width="60" align="center">
                     <template #default="scope">
                       <div v-if="editStatus">
-                        <el-button
-                          size="small"
-                          link
-                          type="danger"
-                          @click="handlerDelAttach(scope.row, scope.$index)"
-                          >删除</el-button
-                        >
+                        <el-button size="small" link type="danger"
+                          @click="handlerDelAttach(scope.row, scope.$index)">删除</el-button>
                       </div>
                     </template>
                   </el-table-column>
@@ -429,66 +241,26 @@
         </div>
       </div>
     </el-drawer>
-    <el-dialog
-      title="审核详情"
-      v-model="rejectOpen"
-      width="500px"
-      append-to-body
-      draggable
-    >
+    <el-dialog title="审核详情" v-model="rejectOpen" width="500px" append-to-body draggable>
       <el-form ref="dictRef" :model="form" label-width="100" size="small">
         <el-form-item label="审核状态">
-          <el-select
-            v-model.trim="form.status"
-            placeholder="请选择"
-            size="small"
-          >
-            <el-option
-              v-for="i in verified"
-              :key="i.value"
-              :label="i.label"
-              :value="i.value"
-            />
+          <el-select v-model.trim="form.status" placeholder="请选择" size="small">
+            <el-option v-for="i in verified" :key="i.value" :label="i.label" :value="i.value" />
           </el-select>
         </el-form-item>
         <el-form-item label="实际付款时间" required>
-          <el-date-picker
-            v-model.trim="form.actuallyDate"
-            size="small"
-            :clearable="true"
-            format="YYYY-MM-DD HH:mm:ss"
-            value-format="YYYY-MM-DD HH:mm:ss"
-            align="center"
-            type="datetime"
-            placeholder="实际付款时间"
-          />
+          <el-date-picker v-model.trim="form.actuallyDate" size="small" :clearable="true" format="YYYY-MM-DD HH:mm:ss"
+            value-format="YYYY-MM-DD HH:mm:ss" align="center" type="datetime" placeholder="实际付款时间" />
         </el-form-item>
-        <el-form-item
-          :label="form.status == 2 ? '驳回原因' : '审核意见'"
-          :prop="verifyComment"
-        >
-          <el-input
-            type="textarea"
-            maxlength="200"
-            show-word-limit
-            v-model.trim="form.verifyComment"
-            :rows="3"
-            placeholder="请输入审核意见"
-          />
+        <el-form-item :label="form.status == 2 ? '驳回原因' : '审核意见'" :prop="verifyComment">
+          <el-input type="textarea" maxlength="200" show-word-limit v-model.trim="form.verifyComment" :rows="3"
+            placeholder="请输入审核意见" />
         </el-form-item>
       </el-form>
       <template #footer>
         <div class="dialog-footer">
-          <el-button
-            type="primary"
-            icon="Finished"
-            size="small"
-            @click="verifyUpload()"
-            >确 定</el-button
-          >
-          <el-button icon="Close" size="small" @click="rejectCancel"
-            >取 消</el-button
-          >
+          <el-button type="primary" icon="Finished" size="small" @click="verifyUpload()">确 定</el-button>
+          <el-button icon="Close" size="small" @click="rejectCancel">取 消</el-button>
         </div>
       </template>
     </el-dialog>
@@ -527,7 +299,7 @@ const baseUrl = import.meta.env.VITE_APP_BASE_API;
 const props = defineProps({
   getList: {
     type: Function,
-    default: () => {},
+    default: () => { },
   },
 });
 const { getList } = toRefs(props);
@@ -651,10 +423,11 @@ function submitForm() {
 }
 
 function detailValid() {
-  if (form.value.files.length === 0) {
-    proxy.$modal.msgError("收款附件为空");
-    return false;
-  }
+  // 20240109 暂时附件非必填。
+  // if (form.value.files.length === 0) {
+  //   proxy.$modal.msgError("收款附件为空");
+  //   return false;
+  // }
   return true;
 }
 
@@ -691,7 +464,7 @@ function rejectCancel() {
   rejectReset();
 }
 
-function rejectReset() {}
+function rejectReset() { }
 
 function rejectSubmitHandler() {
   if (form.value.verifyRemark === "" || form.value.verifyRemark == null) {