ly 1 年間 前
コミット
3014c8c325

+ 27 - 5
src/views/business/deduction/index.vue

@@ -141,7 +141,7 @@
       </el-table-column>
     </el-table>
     <!-- <Deposit-form ref="DepositRef" :get-list="getList" /> -->
-    <el-dialog title="扣款信息" v-model="formOpen" width="500px" append-to-body draggable @close="formCancel">
+    <el-dialog title="扣款信息" v-model="formOpen" width="800px" append-to-body draggable @close="formCancel">
       <el-form ref="dictRef" :model="form" label-width="100" size="small">
         <el-row :gutter="30">
           <el-col :span="24">
@@ -151,8 +151,21 @@
           </el-col>
           <el-col :span="24">
             <el-form-item label="凭证附件:" required>
-              <dragUpload :accept="accept" style="width:100%" @file="upload" multiple
-           />
+              <el-col v-for="(o, index) in form.files" :key="o.UUID" :span="8" style="margin-bottom: 10px; position: relative">
+                <el-card :body-style="{ padding: '0px' }">
+                  <el-image :src="`${baseUrl}${o.fileUrl}`" class="image" style="max-width: 100%; height: 200px"
+                    :preview-teleported="true" fit="contain" :preview-src-list="srcList" :initial-index="index"
+                    />
+                    <!-- <div style="padding: 14px">
+                      <div class="bottom clearfix">
+                        {{ o.fileName }}
+                      </div>
+                    </div> -->
+                  <el-button circle size="small" type="danger" icon="Close"
+                    style="position: absolute; top: 5px; right: 10px" @click="handleDelFile(index)" />
+                </el-card>
+              </el-col>
+              <dragUpload :accept="accept" style="width:100%" @file="upload" multiple />
               <!-- <img v-else style="height: 148px; width: 148px" :src="`${baseUrl}/${form.files[0].fileUrl}`"
                 class="avatar" @click="openEvidience('files[0]')" /> -->
               <!-- <div v-if="form.status !== 3">
@@ -166,7 +179,7 @@
                   <el-button size="small" type="primary" icon="Upload">点击上传</el-button>
                 </el-upload>
               </div> -->
-              <el-table ref="filesTable" :data="form.files" size="small" height="200px" border
+              <!-- <el-table ref="filesTable" :data="form.files" size="small" height="200px" border
                 header-row-class-name="list-header-row">
                 <el-table-column type="index" label="序号" width="47" align="center" />
                 <el-table-column label="文件名" prop="originalFileName" align="center">
@@ -181,9 +194,10 @@
                     <el-button link size="small" type="danger" @click="handleDelFile(scope.$index)">删除</el-button>
                   </template>
                 </el-table-column>
-              </el-table>
+              </el-table> -->
             </el-form-item>
           </el-col>
+         
         </el-row>
       </el-form>
       <template #footer>
@@ -283,6 +297,7 @@
   const showViewer = ref(false);
   const currentFileList = ref([]);
   const showIndex = ref(0);
+  const srcList = ref([]);;
   const queryRadio = ref("全部");
   const permissions = useUserStore().permissions;
   const flag = ref(checkPermission(['business:deduction:person']))
@@ -359,6 +374,11 @@
     }
     getList();
   }
+
+  function vbs(val) {
+    // srcList.value = []
+    // srcList.value.push(val)
+  }
   function returnInit(row) {
     row.status = 0;
     saveDeduction(row).then(res => {
@@ -532,6 +552,7 @@
         file.masterId = form.value.id;
         file.masterTableName = "biz_deduction";
         form.value.files.push(file);
+        srcList.value = form.value.files.map((v) => baseUrl.value + v.fileUrl);
       }
     });
   }
@@ -582,6 +603,7 @@
 
   function handleDelFile(index) {
     form.value.files.splice(index, 1);
+    srcList.value = form.value.files.map((v) => baseUrl.value + v.fileUrl);
   }
 
   function amountDetail(row) {

+ 263 - 223
src/views/business/housingFund/confirm/form.vue

@@ -1,5 +1,6 @@
 <template>
-  <el-dialog title="公积金人员信息" v-model="visible" width="80%" append-to-body draggable @close="close" :close-on-click-modal = "false">
+  <el-dialog title="公积金人员信息" v-model="visible" width="80%" append-to-body draggable @close="close"
+    :close-on-click-modal="false">
     <!-- <div slot="title" class="dialog-title-container">
       <span class="title-label"><i class="el-icon-document" /> 工资信息</span>
       <i class="el-icon-close" @click="close" />
@@ -7,135 +8,136 @@
     <div v-loading="loading">
 
 
-    <!-- 功能按钮 -->
-    <div style="padding: 8px 24px 16px 24px">
-      <el-form size="small" label-width="135px" v-model="form">
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="客户名称">
-              <div>{{ form.companyName }}</div>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="所属月份">
-              <div>{{ form.year }}-{{ form.month }}</div>
-            </el-form-item>
-          </el-col>
-          <el-col v-if="form.status === 4" :span="12">
-            <el-form-item label="驳回原因">
-              <div>{{ form.feedbackContent }}</div>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="窗口缴纳:" required class="edit-label">
-              <template #label>
-                <div>
-                  窗口缴纳:<el-button v-if="form.isFirstHousingFund === 1" type="primary" link icon="Edit"
-                    @click="changeEdit" />
-                </div>
-              </template>
-              <el-checkbox v-if="form.isFirstHousingFund === 0 || editStatus" v-model="form.isPayOnWindow"
-                :true-label="1" :false-label="0" @change="isPayOnWindowChange()">
-                {{ "" }}</el-checkbox>
-              <div v-else>{{ form.isPayOnWindow === 1 ? "是" : "否" }}</div>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="公积金单位账号:" required class="edit-label">
-              <template #label>
-                <div>
-                  公积金单位账号:<el-button v-if="form.isFirstHousingFund === 1" type="primary" link icon="Edit"
-                    @click="changeEdit" />
-                </div>
-              </template>
-              <el-input v-if="form.isFirstHousingFund === 0 || editStatus" v-model="form.housingFundUnitAccount"
-                placeholder="公积金单位账号" />
-              <div v-else>{{ form.housingFundUnitAccount }}</div>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="公积金秘钥密码:" :required="form.isPayOnWindow === 0" class="edit-label">
-              <template #label>
-                <div>
-                  公积金秘钥密码:<el-button v-if="form.isFirstHousingFund === 1" type="primary" link icon="Edit"
-                    @click="changeEdit" />
-                </div>
-              </template>
-              <el-input v-if="form.isFirstHousingFund === 0 || editStatus" v-model="form.housingFundPassword"
-                placeholder="公积金秘钥密码:" @blur="
+      <!-- 功能按钮 -->
+      <div style="padding: 8px 24px 16px 24px">
+        <el-form size="small" label-width="135px" v-model="form">
+          <el-row :gutter="30">
+            <el-col :span="12">
+              <el-form-item label="客户名称">
+                <div>{{ form.companyName }}</div>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="所属月份">
+                <div>{{ form.year }}-{{ form.month }}</div>
+              </el-form-item>
+            </el-col>
+            <el-col v-if="form.status === 4" :span="12">
+              <el-form-item label="驳回原因">
+                <div>{{ form.feedbackContent }}</div>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="窗口缴纳:" required class="edit-label">
+                <template #label>
+                  <div>
+                    窗口缴纳:<el-button v-if="form.isFirstHousingFund === 1" type="primary" link icon="Edit"
+                      @click="changeEdit" />
+                  </div>
+                </template>
+                <el-checkbox v-if="form.isFirstHousingFund === 0 || editStatus" v-model="form.isPayOnWindow"
+                  :true-label="1" :false-label="0" @change="isPayOnWindowChange()">
+                  {{ "" }}</el-checkbox>
+                <div v-else>{{ form.isPayOnWindow === 1 ? "是" : "否" }}</div>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="公积金单位账号:" required class="edit-label">
+                <template #label>
+                  <div>
+                    公积金单位账号:<el-button v-if="form.isFirstHousingFund === 1" type="primary" link icon="Edit"
+                      @click="changeEdit" />
+                  </div>
+                </template>
+                <el-input v-if="form.isFirstHousingFund === 0 || editStatus" v-model="form.housingFundUnitAccount"
+                  placeholder="公积金单位账号" />
+                <div v-else>{{ form.housingFundUnitAccount }}</div>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="公积金秘钥密码:" :required="form.isPayOnWindow === 0" class="edit-label">
+                <template #label>
+                  <div>
+                    公积金秘钥密码:<el-button v-if="form.isFirstHousingFund === 1" type="primary" link icon="Edit"
+                      @click="changeEdit" />
+                  </div>
+                </template>
+                <el-input v-if="form.isFirstHousingFund === 0 || editStatus" v-model="form.housingFundPassword"
+                  placeholder="公积金秘钥密码:" @blur="
                   (value) => passwordCheckHandler(value, 'housingFundPassword')
                 " />
-              <div v-else>{{ form.housingFundPassword }}</div>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="公积金划款密码:" :required="form.isPayOnWindow === 0" class="edit-label">
-              <template #label>
-                <div>
-                  公积金划款密码:<el-button v-if="form.isFirstHousingFund === 1" type="primary" link icon="Edit"
-                    @click="changeEdit" />
-                </div>
-              </template>
-              <el-input v-if="form.isFirstHousingFund === 0 || editStatus" v-model="form.housingFundDeductionPassword"
-                placeholder="公积金划款密码:" @blur="
+                <div v-else>{{ form.housingFundPassword }}</div>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="公积金划款密码:" :required="form.isPayOnWindow === 0" class="edit-label">
+                <template #label>
+                  <div>
+                    公积金划款密码:<el-button v-if="form.isFirstHousingFund === 1" type="primary" link icon="Edit"
+                      @click="changeEdit" />
+                  </div>
+                </template>
+                <el-input v-if="form.isFirstHousingFund === 0 || editStatus" v-model="form.housingFundDeductionPassword"
+                  placeholder="公积金划款密码:" @blur="
                   (value) =>
                     passwordCheckHandler(value, 'housingFundDeductionPassword')
                 " />
-              <div v-else>{{ form.housingFundDeductionPassword }}</div>
-            </el-form-item>
-          </el-col>
-          <el-col :span="24" class="details-container">
-            <!--操作按钮 开始-->
-            <div class="details-head" >
-              <div class="title">
-                <i class="fa fa-th-list" aria-hidden="true" /> 人员信息
+                <div v-else>{{ form.housingFundDeductionPassword }}</div>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" class="details-container">
+              <!--操作按钮 开始-->
+              <div class="details-head">
+                <div class="title">
+                  <i class="fa fa-th-list" aria-hidden="true" /> 人员信息
+                </div>
+                <el-button type="primary" size="small" icon="plus" @click="handleEmployeeCreate" class="button-class">
+                  新增</el-button>
+                <el-button v-if="selections.length > 0" type="danger" size="small" icon="delete" class="button-class"
+                  @click="handleEmployeeBatchDelete">删除
+                </el-button>
               </div>
-              <el-button type="primary" size="small" icon="plus" @click="handleEmployeeCreate" class="button-class"> 
-                新增</el-button>
-              <el-button v-if="selections.length > 0" type="danger" size="small" icon="delete" class="button-class"
-                @click="handleEmployeeBatchDelete">删除
-              </el-button>
-            </div>
-            <div class="details-body">
-              <div>
-                <el-table ref="sourceTable" :data="form.details" size="small" max-height="490px" border show-summary
-                  :summary-method="getSummaries" highlight-current-row header-row-class-name="list-header-row"
-                  row-class-name="list-row" class="salary-table" @selection-change="handleCheckChange"
-                  @current-change="handleCurrentChange">
-                  <el-table-column type="selection" width="50" align="center" />
-                  <el-table-column type="index" label="序号" width="50" align="center" />
-                  <el-table-column label="姓名" width="80" align="center">
-                    <template #default="scope">
-                      <div>
-                        <el-input v-model="scope.row.employeeName" size="small" placeholder="姓名" style="width: 100%" />
-                      </div>
-                      <span style="
+              <div class="details-body">
+                <div>
+                  <el-table ref="sourceTable" :data="form.details" size="small" max-height="490px" border show-summary
+                    :summary-method="getSummaries" highlight-current-row header-row-class-name="list-header-row"
+                    :row-class-name="tableRowClassName" class="salary-table" @selection-change="handleCheckChange"
+                    @current-change="handleCurrentChange">
+                    <el-table-column type="selection" width="50" align="center" />
+                    <el-table-column type="index" label="序号" width="50" align="center" />
+                    <el-table-column label="姓名" width="80" align="center">
+                      <template #default="scope">
+                        <div>
+                          <el-input v-model="scope.row.employeeName" size="small" placeholder="姓名"
+                            style="width: 100%" />
+                        </div>
+                        <span style="
                           color: red;
                           position: absolute;
                           z-index: 10;
                           top: 4px;
                           right: 12px;
                         ">*</span>
-                    </template>
-                  </el-table-column>
-                  <el-table-column label="电话号" width="130" align="center">
-                    <template #default="scope">
-                      <div>
-                        <el-input v-model="scope.row.phone" size="small" placeholder="电话号码" style="width: 100%" />
-                      </div>
-                      <span style="
+                      </template>
+                    </el-table-column>
+                    <el-table-column label="电话号" width="130" align="center">
+                      <template #default="scope">
+                        <div>
+                          <el-input v-model="scope.row.phone" size="small" placeholder="电话号码" style="width: 100%" />
+                        </div>
+                        <span style="
                           color: red;
                           position: absolute;
                           z-index: 10;
                           top: 4px;
                           right: 12px;
                         ">*</span>
-                    </template>
-                  </el-table-column>
-                  <el-table-column label="身份证正面" width="120" align="center">
-                    <template #default="scope">
-                      <div>
-                        <!-- <el-upload action="#" :http-request="
+                      </template>
+                    </el-table-column>
+                    <el-table-column label="身份证正面" width="120" align="center">
+                      <template #default="scope">
+                        <div>
+                          <!-- <el-upload action="#" :http-request="
                             (params) => upload(params, scope.row, 'idCardImage')
                           " :with-credentials="true" :show-file-list="false">
                           <template v-if="scope.row.idCardImage === ''">
@@ -145,37 +147,37 @@
                           </template>
                           <img v-else class="img" :src="baseUrl + '/' + scope.row.idCardImage" alt="" />
                         </el-upload> -->
-                        <div>
-                          <div id="preview" v-on:paste="handlePaste($event,scope.row,'idCardImage')"
-                            v-if="scope.row.idCardImage === ''">
-                            <span>将图片粘贴至此</span>
-                          </div>
-                          <div class="image-container" v-else>
-                            <el-image class="img" :src="baseUrl + scope.row.idCardImage" alt=""
-                              preview-teleported="true" fit="contain" :preview-src-list="srcList"
-                              @click="vbs(baseUrl + scope.row.idCardImage)" />
-                            <!-- 删除按钮 -->
-                            <el-icon  v-if="scope.row.idCardImage !== ''" @click="scope.row.idCardImage = ''"
-                              class="delete-button">
-                              <Delete />
-                            </el-icon>
+                          <div>
+                            <div id="preview" v-on:paste="handlePaste($event,scope.row,'idCardImage')"
+                              v-if="scope.row.idCardImage === ''">
+                              <span>将图片粘贴至此</span>
+                            </div>
+                            <div class="image-container" v-else>
+                              <el-image class="img" :src="baseUrl + scope.row.idCardImage" alt=""
+                                :preview-teleported="true" fit="contain" :preview-src-list="srcList"
+                                @click="vbs(baseUrl + scope.row.idCardImage)" />
+                              <!-- 删除按钮 -->
+                              <el-icon v-if="scope.row.idCardImage !== ''" @click="scope.row.idCardImage = ''"
+                                class="delete-button">
+                                <Delete />
+                              </el-icon>
+                            </div>
                           </div>
-                        </div>
 
-                      </div>
-                      <span style="
+                        </div>
+                        <span style="
                           color: red;
                           position: absolute;
                           z-index: 10;
                           top: 4px;
                           right: 12px;
                         ">*</span>
-                    </template>
-                  </el-table-column>
-                  <el-table-column label="身份证反面" width="120" align="center">
-                    <template #default="scope">
-                      <div>
-                        <!-- <el-upload action="#" :http-request="
+                      </template>
+                    </el-table-column>
+                    <el-table-column label="身份证反面" width="120" align="center">
+                      <template #default="scope">
+                        <div>
+                          <!-- <el-upload action="#" :http-request="
                             (params) =>
                               upload(params, scope.row, 'idCardImageBack')
                           " :with-credentials="true" :show-file-list="false">
@@ -186,112 +188,112 @@
                           </template>
                           <img v-else class="img" :src="baseUrl + '/' + scope.row.idCardImageBack" alt="" />
                         </el-upload> -->
-                        <div>
-                          <div id="preview2" v-on:paste="handlePaste($event,scope.row,'idCardImageBack')"
-                            v-if="scope.row.idCardImageBack === ''">
-                            <span>将图片粘贴至此</span>
-                          </div>
+                          <div>
+                            <div id="preview2" v-on:paste="handlePaste($event,scope.row,'idCardImageBack')"
+                              v-if="scope.row.idCardImageBack === ''">
+                              <span>将图片粘贴至此</span>
+                            </div>
 
-                          <div class="image-container" v-else>
-                            <el-image class="img" :src="baseUrl + scope.row.idCardImageBack" alt=""
-                              preview-teleported="true" fit="contain" :preview-src-list="srcListback"
-                              @click="vbsBack(baseUrl + scope.row.idCardImageBack)" />
-                            <!-- 删除按钮 -->
-                            <el-icon  v-if="scope.row.idCardImageBack !== ''"
-                              @click="scope.row.idCardImageBack = ''" class="delete-button">
-                              <Delete />
-                            </el-icon>
+                            <div class="image-container" v-else>
+                              <el-image class="img" :src="baseUrl + scope.row.idCardImageBack" alt=""
+                                :preview-teleported="true" fit="contain" :preview-src-list="srcListback"
+                                @click="vbsBack(baseUrl + scope.row.idCardImageBack)" />
+                              <!-- 删除按钮 -->
+                              <el-icon v-if="scope.row.idCardImageBack !== ''" @click="scope.row.idCardImageBack = ''"
+                                class="delete-button">
+                                <Delete />
+                              </el-icon>
+                            </div>
                           </div>
                         </div>
-                      </div>
-                      <span style="
+                        <span style="
                           color: red;
                           position: absolute;
                           z-index: 10;
                           top: 4px;
                           right: 12px;
                         ">*</span>
-                    </template>
-                  </el-table-column>
-                  <el-table-column label="基数" width="100" align="center">
-                    <template #default="scope">
-                      <div>
-                        <el-input v-model="scope.row.cardinalNumber" size="small" placeholder="基数"
-                          @blur="onblur(scope.row, 'cardinalNumber')" />
-                      </div>
-                      <span style="
+                      </template>
+                    </el-table-column>
+                    <el-table-column label="基数" width="100" align="center">
+                      <template #default="scope">
+                        <div>
+                          <el-input v-model="scope.row.cardinalNumber" size="small" placeholder="基数"
+                            @blur="onblur(scope.row, 'cardinalNumber')" />
+                        </div>
+                        <span style="
                           color: red;
                           position: absolute;
                           z-index: 10;
                           top: 4px;
                           right: 12px;
                         ">*</span>
-                    </template>
-                  </el-table-column>
-                  <el-table-column label="比例" width="100" align="center">
-                    <template #default="scope">
-                      <div>
-                        <el-input v-model="scope.row.ratio" size="small" @blur="onblur(scope.row, 'ratio')">
-                          <template #suffix>
-                            <i style="
+                      </template>
+                    </el-table-column>
+                    <el-table-column label="比例" width="100" align="center">
+                      <template #default="scope">
+                        <div>
+                          <el-input v-model="scope.row.ratio" size="small" @blur="onblur(scope.row, 'ratio')">
+                            <template #suffix>
+                              <i style="
                                 font-style: normal;
                                 margin-right: 0px;
                                 display: inline-block;
                                 line-height: 20px;
                               ">%</i>
-                          </template>
-                        </el-input>
-                      </div>
-                      <span style="
+                            </template>
+                          </el-input>
+                        </div>
+                        <span style="
                           color: red;
                           position: absolute;
                           z-index: 10;
                           top: 4px;
                           right: 12px;
                         ">*</span>
-                    </template>
-                  </el-table-column>
-                  <!-- <el-table-column label="签名" width="100" header-align="center" required>
+                      </template>
+                    </el-table-column>
+                    <!-- <el-table-column label="签名" width="100" header-align="center" required>
                   </el-table-column> -->
-                  <el-table-column label="备注" header-align="center">
-                    <template #default="scope">
-                      <div>
-                        <el-input v-model="scope.row.remark" size="small" placeholder="备注" />
-                      </div>
-                    </template>
-                  </el-table-column>
-                </el-table>
+                    <el-table-column label="备注" header-align="center">
+                      <template #default="scope">
+                        <div>
+                          <el-input v-model="scope.row.remark" size="small" placeholder="备注" />
+                        </div>
+                      </template>
+                    </el-table-column>
+                  </el-table>
+                </div>
               </div>
-            </div>
-          </el-col>
-          <el-col :span="24">
-            <el-divider />
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="公积金人员变更">
-              <el-select v-model="form.isChanged" placeholder="请选择" style="width: 100%">
-                <el-option v-for="item in yesOrNo" :key="item.label" :label="item.label" :value="item.value" />
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="备注">
-              <el-input v-model.trim="form.content" maxlength="200" show-word-limit type="textarea" rows="2" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-    </div>
-    <div class="form-btns-container" style="height: 40px">
-      <el-button size="small" @click="close" icon="close"
-        style="float: right; margin-left: 12px; margin-right: 12px">取消</el-button>
-      <el-button type="primary" size="small" style="float: right" icon="Finished" @click="handleSave(2)">
-        保存</el-button>
-
-      <el-button type="warning" size="small" icon="Edit" style="float: right" @click="handleSave(1)">
-        待确认</el-button>
+            </el-col>
+            <el-col :span="24">
+              <el-divider />
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="公积金人员变更">
+                <el-select v-model="form.isChanged" placeholder="请选择" style="width: 100%">
+                  <el-option v-for="item in yesOrNo" :key="item.label" :label="item.label" :value="item.value" />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="备注">
+                <el-input v-model.trim="form.content" maxlength="200" show-word-limit type="textarea" rows="2" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+      <div class="form-btns-container" style="height: 40px">
+        <el-button size="small" @click="close" icon="close"
+          style="float: right; margin-left: 12px; margin-right: 12px">取消</el-button>
+        <el-button type="primary" size="small" style="float: right" icon="Finished" @click="handleSave(2)">
+          保存</el-button>
+
+        <el-button type="warning" size="small" icon="Edit" style="float: right" @click="handleSave(1)">
+          待确认</el-button>
+      </div>
     </div>
-  </div>
     <!-- <feedback-dialog ref="feedbackDialogView" :parent="this" />
     <print-dialog ref="printDialog" :parent="this" /> -->
   </el-dialog>
@@ -398,6 +400,8 @@
 
   function handleEmployeeCreate() {
     // 此处必须进行深拷贝,否则添加的明细,将都指向了一个对象
+    employeeEmptyData.add = 1
+    employeeEmptyData.changeStatus = 1
     const _newSource = JSON.parse(JSON.stringify(employeeEmptyData));
     form.value.details.push(_newSource);
     handleCurrentChange(_newSource);
@@ -407,9 +411,26 @@
     proxy.$modal
       .confirm("确定删除?")
       .then(() => {
-        form.value.details = form.value.details.filter(
-          (item) => selections.value.indexOf(item) === -1
-        );
+        // form.value.details = form.value.details.filter(
+        //   (item) => selections.value.indexOf(item) === -1
+        // );
+
+        for (let index = 0; index < form.value.details.length; index++) {
+          let x = form.value.details[index];
+          for (let index2 = 0; index2 < selections.value.length; index2++) {
+            let y = selections.value[index2];
+            if (x.phone + x.employeeName === y.phone + y.employeeName && y.add !== 1) {
+              x.changeStatus = 2;
+            }
+            else {
+              let selectionsFilter = selections.value.filter((item) => item.add == 1);
+              form.value.details = form.value.details.filter(
+                (item) => selectionsFilter.indexOf(item) === -1
+              );
+            }
+          }
+        }
+
       })
       .catch(() => {
         proxy.$modal.msg("已取消删除");
@@ -545,8 +566,8 @@
               close();
               getList.value();
             }).finally(() => {
-            loading.value = false
-          });
+              loading.value = false
+            });
           } else {
             updateDetail(saveValue).then((res) => {
               proxy.$modal.msgSuccess("保存成功");
@@ -554,8 +575,8 @@
               close();
               getList.value();
             }).finally(() => {
-            loading.value = false
-          });;
+              loading.value = false
+            });;
           }
         })
         .catch((err) => {
@@ -563,7 +584,15 @@
         });
     }
   }
-
+  function tableRowClassName({ row, index }) {
+    if (row.changeStatus === 1) {
+      return "list-row add-row";
+    } else if (row.changeStatus === 2) {
+      return "list-row delete-row";
+    } else {
+      return "list-row";
+    }
+  }
   function passwordCheckHandler(value, field) {
     // console.log(value)
     if (!passwordCheck(form.value[field])) {
@@ -638,7 +667,7 @@
       this.$message.error("粘贴内容非图片");
       return;
     }
-    zTool.addWatermark(file,"仅供公积金申报使用").then(watermarkedFile => {
+    zTool.addWatermark(file, "仅供公积金申报使用").then(watermarkedFile => {
       tempFile.value = watermarkedFile
       uploadIdImage2(tempFile, row, field)
     })
@@ -674,7 +703,7 @@
   });
 </script>
 <style scoped>
- .image-container {
+  .image-container {
     display: flex;
     /* 使用Flex布局 */
     align-items: center;
@@ -695,10 +724,11 @@
     margin-left: 20px;
   }
 
-  .button-class{
+  .button-class {
     margin-top: 15px;
     margin-bottom: 15px;
   }
+
   ::v-deep(.el-upload) {
     display: flex;
     text-align: center;
@@ -711,4 +741,14 @@
     content: "*";
     color: red;
   }
+</style>
+
+<style>
+  .el-table .delete-row {
+    background-color: rgb(251, 159, 173);
+  }
+
+  .el-table .add-row {
+    background-color: rgb(184, 234, 147);
+  }
 </style>

+ 44 - 9
src/views/business/socialSecurity/confirm/form.vue

@@ -112,7 +112,7 @@
                 <div>
                   <el-table ref="sourceTable" :data="form.details" size="small" max-height="490px" border show-summary
                     :summary-method="getSummaries" highlight-current-row header-row-class-name="list-header-row"
-                    row-class-name="list-row" class="salary-table" @selection-change="handleCheckChange"
+                    :row-class-name="tableRowClassName" class="salary-table" @selection-change="handleCheckChange"
                     @current-change="handleCurrentChange">
                     <el-table-column type="selection" width="50" align="center" />
                     <el-table-column type="index" label="序号" width="50" align="center" />
@@ -435,6 +435,8 @@
 
   function handleEmployeeCreate() {
     // 此处必须进行深拷贝,否则添加的明细,将都指向了一个对象
+    employeeEmptyData.add = 1
+    employeeEmptyData.changeStatus = 1
     const _newSource = JSON.parse(JSON.stringify(employeeEmptyData));
     form.value.details.push(_newSource);
     handleCurrentChange(_newSource);
@@ -444,15 +446,39 @@
     proxy.$modal
       .confirm("确定删除?")
       .then(() => {
-        form.value.details = form.value.details.filter(
-          (item) => selections.value.indexOf(item) === -1
-        );
+        // form.value.details = form.value.details.filter(
+        //   (item) => selections.value.indexOf(item) === -1
+        // );
+        for (let index = 0; index < form.value.details.length; index++) {
+          let x = form.value.details[index];
+          for (let index2 = 0; index2 < selections.value.length; index2++) {
+            let y = selections.value[index2];
+            if (x.phone + x.employeeName === y.phone + y.employeeName && y.add !== 1) {
+              x.changeStatus = 2;
+            }
+            else {
+              let selectionsFilter = selections.value.filter((item) => item.add == 1);
+              form.value.details = form.value.details.filter(
+                (item) => selectionsFilter.indexOf(item) === -1
+              );
+            }
+          }
+        }
+      
       })
       .catch(() => {
         proxy.$modal.msg("已取消删除");
       });
   }
-
+  function tableRowClassName({ row, index }) {
+    if (row.changeStatus === 1) {
+      return "list-row add-row";
+    } else if (row.changeStatus === 2) {
+      return "list-row delete-row";
+    } else {
+      return "list-row";
+    }
+  }
   function rowChangeSum(row) {
     let actuallySalary = 0;
     actuallySalary += row.planSalary == null ? 0 : row.planSalary;
@@ -622,8 +648,8 @@
               close();
               getList.value();
             }).finally(() => {
-            loading.value = false
-          });;
+              loading.value = false
+            });;
           } else {
             updateDetail(saveValue).then((res) => {
               proxy.$modal.msgSuccess("保存成功");
@@ -636,8 +662,8 @@
         .catch((err) => {
           proxy.$modal.msg("取消保存");
         }).finally(() => {
-            loading.value = false
-          });;
+          loading.value = false
+        });;
     }
   }
   // 监听粘贴操作
@@ -772,4 +798,13 @@
     content: "*";
     color: red;
   }
+</style>
+<style>
+  .el-table .delete-row {
+    background-color: rgb(251, 159, 173);
+  }
+
+  .el-table .add-row {
+    background-color: rgb(184, 234, 147);
+  }
 </style>