ezhizao_zx 1 年之前
父節點
當前提交
20fdeb8d5e
共有 55 個文件被更改,包括 3918 次插入3373 次删除
  1. 13 0
      src/api/business/bin.js
  2. 2 2
      src/api/business/crm/company.js
  3. 10 1
      src/api/business/crm/contract.js
  4. 11 0
      src/api/business/financial/collection.js
  5. 25 0
      src/api/business/production/housingFundConfirm.js
  6. 13 0
      src/api/business/production/salary.js
  7. 23 0
      src/api/business/production/salaryZero.js
  8. 24 0
      src/api/business/production/socialSecurityConfirm.js
  9. 1 1
      src/directive/permission/hasPermi.js
  10. 5 3
      src/store/modules/user.js
  11. 28 0
      src/utils/request.js
  12. 273 0
      src/views/business/crm/bin/form.vue
  13. 217 0
      src/views/business/crm/bin/index.vue
  14. 148 568
      src/views/business/crm/company/form.vue
  15. 1 0
      src/views/business/crm/dict/index.vue
  16. 37 37
      src/views/business/crm/order/form.vue
  17. 101 344
      src/views/business/crm/order/index.vue
  18. 29 23
      src/views/business/deduction/index.vue
  19. 4 3
      src/views/business/entrust/deductOfFactory/index.vue
  20. 1 1
      src/views/business/entrust/depositOfFactory/index.vue
  21. 1 1
      src/views/business/entrust/entrustOrder/index.vue
  22. 305 77
      src/views/business/financial/collection/form.vue
  23. 284 70
      src/views/business/financial/contract/form.vue
  24. 144 29
      src/views/business/financial/contract/index.vue
  25. 112 30
      src/views/business/financial/payment/form.vue
  26. 4 2
      src/views/business/financial/payment/index.vue
  27. 13 13
      src/views/business/housingFund/confirm/index.vue
  28. 53 128
      src/views/business/housingFund/confirm/view.vue
  29. 65 225
      src/views/business/housingFund/declare/index.vue
  30. 231 64
      src/views/business/production/IndividualIncomeTaxIs/index.vue
  31. 244 63
      src/views/business/production/IndividualIncomeTaxIsZero/index.vue
  32. 2 2
      src/views/business/production/archiveTicket/index.vue
  33. 252 68
      src/views/business/production/financialReportTax/index.vue
  34. 221 61
      src/views/business/production/financialReportTaxIsZero/index.vue
  35. 65 235
      src/views/business/production/keepAccount/index.vue
  36. 2 2
      src/views/business/production/onceWork/index.vue
  37. 12 11
      src/views/business/production/receiveTicket/index.vue
  38. 40 140
      src/views/business/production/receiveTicket/view.vue
  39. 3 3
      src/views/business/production/receiveTicketFeedback/index.vue
  40. 7 6
      src/views/business/production/salary/index.vue
  41. 228 57
      src/views/business/production/salary/view.vue
  42. 12 11
      src/views/business/production/salaryZero/index.vue
  43. 229 55
      src/views/business/production/salaryZero/view.vue
  44. 2 1
      src/views/business/service/loop/housingFundView.vue
  45. 15 11
      src/views/business/service/loop/index.vue
  46. 112 486
      src/views/business/service/loop/keepAccountForm.vue
  47. 2 1
      src/views/business/service/loop/socialSecurityView.vue
  48. 15 7
      src/views/business/service/once/index.vue
  49. 11 11
      src/views/business/socialSecurity/confirm/index.vue
  50. 20 4
      src/views/business/socialSecurity/confirm/view.vue
  51. 44 181
      src/views/business/socialSecurity/declare/form.vue
  52. 10 10
      src/views/business/socialSecurity/declare/index.vue
  53. 85 25
      src/views/business/source/bin/index.vue
  54. 3 2
      src/views/system/role/index.vue
  55. 104 298
      src/views/system/user/index.vue

+ 13 - 0
src/api/business/bin.js

@@ -57,3 +57,16 @@ export function restoreBin(id) {
     method: 'post'
   })
 }
+
+// 还原回收站
+export function restoreArchiveBin(id) {
+  request.defaults.baseURL = '/ezhizao-yzbh-crm'
+  return request({
+    url: '/business/bin/restoreArchive/' + id,
+    method: 'post'
+  })
+}
+
+
+
+

+ 2 - 2
src/api/business/crm/company.js

@@ -77,10 +77,10 @@ export function initArea() {
   })
 }
 
-export function importCompanyTemplate() {
+export function importCompanyTemplate(id) {
   request.defaults.baseURL = '/ezhizao-yzbh-crm'
   download(
-    "business/company/importTemplate",
+    "business/company/importTemplate" + id,
     {
     },
     `company_template${new Date().getTime()}.xlsx`

+ 10 - 1
src/api/business/crm/contract.js

@@ -41,12 +41,21 @@ export function updateOrder(data) {
   })
 }
 
+// 删除档案入库
+export function delBinOrder(id) {
+  request.defaults.baseURL = '/ezhizao-yzbh-crm'
+  return request({
+    url: '/business/bin/order/' + id,
+    method: 'post'
+  })
+}
+
 // 删除档案入库
 export function delOrder(id) {
   request.defaults.baseURL = '/ezhizao-yzbh-crm'
   return request({
     url: '/business/archive/order/' + id,
-    method: 'delete'
+    method: 'Delete'
   })
 }
 

+ 11 - 0
src/api/business/financial/collection.js

@@ -47,6 +47,17 @@ export function listCompany(query) {
   })
 }
 
+export function setCollectionStatus(data) {
+  request.defaults.baseURL = '/ezhizao-yzbh-financial'
+  return request({
+    url: '/business/collection/setCollectionStatus',
+    method: 'put',
+    data: data
+  })
+}
+
+
+
 export function getCreditTermByCompId(query) {
   request.defaults.baseURL = '/ezhizao-yzbh-financial'
   return request({

+ 25 - 0
src/api/business/production/housingFundConfirm.js

@@ -1,4 +1,5 @@
 import request from '@/utils/request'
+import { download, downloadPdf } from '@/utils/request'
 
 // 查询工资列表
 export function listHousingFundConfirm(query) {
@@ -48,6 +49,30 @@ export function delHousingFundConfirm(id) {
   })
 }
 
+//导出公积金人员信息
+export function exportHousingFundConfirmEmployee(id) {
+  request.defaults.baseURL = '/ezhizao-yzbh-production'
+  download(
+    "business/housingFundConfirm/exportHousingFundConfirmExcel",
+    {
+      id: id
+    },
+    `公积金人员信息${new Date().getTime()}.xlsx`
+  )
+}
+
+//打印公积金人员信息
+export function exportHousingFundConfirmPdf(id) {
+  request.defaults.baseURL = '/ezhizao-yzbh-production'
+  downloadPdf(
+    "business/housingFundConfirm/printDetailPdf",
+    {
+      id: id
+    },
+    `公积金人员信息${new Date().getTime()}.pdf`
+  )
+}
+
 export function getDetail(data) {
   request.defaults.baseURL = '/ezhizao-yzbh-production'
   return request({

+ 13 - 0
src/api/business/production/salary.js

@@ -1,4 +1,5 @@
 import request from '@/utils/request'
+import { download, downloadPdf } from '@/utils/request'
 
 // 查询工资列表
 export function listSalary(query) {
@@ -98,7 +99,19 @@ export function exportSalaryEmployee(id) {
   download(
     "business/salary/exportDetailExcel",
     {
+      id: id
     },
     `工资表${new Date().getTime()}.xlsx`
   )
+}
+
+export function exportSalaryPdf(id) {
+  request.defaults.baseURL = '/ezhizao-yzbh-production'
+  downloadPdf(
+    "business/salary/printDetailPdf",
+    {
+      id: id
+    },
+    `工资表${new Date().getTime()}.pdf`
+  )
 }

+ 23 - 0
src/api/business/production/salaryZero.js

@@ -1,4 +1,5 @@
 import request from '@/utils/request'
+import { download, downloadPdf } from '@/utils/request'
 
 // 查询工资列表
 export function listSalary(query) {
@@ -29,6 +30,17 @@ export function addSalary(data) {
   })
 }
 
+export function exportSalaryEmployee(id) {
+  request.defaults.baseURL = '/ezhizao-yzbh-production'
+  download(
+    "business/salary/exportDetailExcel",
+    {
+      id: id
+    },
+    `工资表${new Date().getTime()}.xlsx`
+  )
+}
+
 // 修改工资
 export function updateSalary(data) {
   request.defaults.baseURL = '/ezhizao-yzbh-production'
@@ -91,4 +103,15 @@ export function turnBackDetail(data) {
     method: 'post',
     data: data
   })
+}
+
+export function exportSalaryPdf(id) {
+  request.defaults.baseURL = '/ezhizao-yzbh-production'
+  downloadPdf(
+    "business/salary/printDetailPdf",
+    {
+      id: id
+    },
+    `工资表${new Date().getTime()}.pdf`
+  )
 }

+ 24 - 0
src/api/business/production/socialSecurityConfirm.js

@@ -1,4 +1,5 @@
 import request from '@/utils/request'
+import { download, downloadPdf } from '@/utils/request'
 
 // 查询工资列表
 export function listSocialSecurityConfirm(query) {
@@ -19,6 +20,18 @@ export function getSocialSecurityConfirm(id) {
   })
 }
 
+//导出社保人员信息
+export function exportSocialSecurityEmployee(id) {
+  request.defaults.baseURL = '/ezhizao-yzbh-production'
+  download(
+    "business/socialSecurityConfirm/exportSocialSecurityExcel",
+    {
+      id: id
+    },
+    `社保人员信息${new Date().getTime()}.xlsx`
+  )
+}
+
 // 新增工资
 export function addSocialSecurityConfirm(data) {
   request.defaults.baseURL = '/ezhizao-yzbh-production'
@@ -48,6 +61,17 @@ export function delSocialSecurityConfirm(id) {
   })
 }
 
+export function exportSocialSecurityPdf(id) {
+  request.defaults.baseURL = '/ezhizao-yzbh-production'
+  downloadPdf(
+    "business/socialSecurityConfirm/SocialSecurityPdf",
+    {
+      id: id
+    },
+    `社保人员信息${new Date().getTime()}.pdf`
+  )
+}
+
 export function getDetail(data) {
   request.defaults.baseURL = '/ezhizao-yzbh-production'
   return request({

+ 1 - 1
src/directive/permission/hasPermi.js

@@ -18,7 +18,7 @@ export default {
       const hasPermissions = permissions.some(permission => {
         return all_permission === permission || permissionFlag.includes(permission)
       })
-
+      // console.log(hasPermissions)
       if (!hasPermissions) {
         el.parentNode && el.parentNode.removeChild(el)
       }

+ 5 - 3
src/store/modules/user.js

@@ -7,11 +7,12 @@ const useUserStore = defineStore(
   {
     state: () => ({
       token: getToken(),
-      user:{},
+      user: {},
       name: '',
       avatar: '',
       roles: [],
-      permissions: []
+      permissions: [],
+      tenant: {}
     }),
     actions: {
       // 登录
@@ -36,13 +37,14 @@ const useUserStore = defineStore(
           getInfo().then(res => {
             const user = res.user
             const avatar = (user.avatar == "" || user.avatar == null) ? defAva : import.meta.env.VITE_APP_BASE_API + user.avatar;
-
+            const tenant = res.tenant
             if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
               this.roles = res.roles
               this.permissions = res.permissions
             } else {
               this.roles = ['ROLE_DEFAULT']
             }
+            this.tenant = tenant
             this.user = user
             this.name = user.userName
             this.avatar = avatar

+ 28 - 0
src/utils/request.js

@@ -145,4 +145,32 @@ export function download(url, params, filename, config) {
   })
 }
 
+// 通用pdf打印方法
+export function downloadPdf(url, params, filename, config) {
+  downloadLoadingInstance = ElLoading.service({ text: "正在下载数据,请稍候", background: "rgba(0, 0, 0, 0.7)", })
+  return service.post(url, params, {
+    transformRequest: [(params) => { return tansParams(params) }],
+    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
+    responseType: 'blob',
+    ...config
+  }).then(async (data) => {
+    const isLogin = await blobValidate(data);
+    if (isLogin) {
+      const blob = new Blob([data], { type: 'application/pdf' })
+      var url = URL.createObjectURL(blob);
+      window.open(url, 'filename');
+    } else {
+      const resText = await data.text();
+      const rspObj = JSON.parse(resText);
+      const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
+      ElMessage.error(errMsg);
+    }
+    downloadLoadingInstance.close();
+  }).catch((r) => {
+    console.error(r)
+    ElMessage.error('下载文件出现错误,请联系管理员!')
+    downloadLoadingInstance.close();
+  })
+}
+
 export default service

+ 273 - 0
src/views/business/crm/bin/form.vue

@@ -0,0 +1,273 @@
+<template>
+  <!-- 添加或修改项目信息对话框 -->
+  <div class="el-drawer__wrapper">
+    <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>
+              <Document />
+            </el-icon>
+            项目信息</span
+          >
+          <el-button-group>
+            <el-button
+              v-if="editStatus"
+              type="primary"
+              size="small"
+              icon="Finished"
+              @click="submitForm"
+              >保存</el-button
+            >
+            <el-button
+              v-else
+              type="warning"
+              size="small"
+              icon="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>
+          </el-button-group>
+          <div class="screen-btn" @click="handleScreen">
+            <template v-if="!isFullscreen">
+              <i class="fa fa-window-maximize" aria-hidden="true" />
+              <!-- <span>全屏</span> -->
+            </template>
+            <template v-else>
+              <i class="fa fa-window-restore" aria-hidden="true" />
+              <!-- <span>还原</span> -->
+            </template>
+          </div>
+          <div class="close-btn" @click="cancel">
+            <i class="fa fa-times" aria-hidden="true" />
+            <!-- <span>关闭</span> -->
+          </div>
+        </div>
+        <div
+          class="Y-scrollbar"
+          style="
+            position: absolute;
+            top: 32px;
+            bottom: 0;
+            width: 100%;
+            overflow: auto;
+          "
+        ></div>
+        <el-form
+          ref="binRef"
+          class="master-container"
+          :model="form"
+          :rules="rules"
+          label-width="120px"
+        >
+          <el-row :gutter="30">
+            <el-col :span="6">
+              <el-form-item
+                label="来源外键 当该行标记子表删除时使用"
+                prop="fromId"
+              >
+                <el-input
+                  v-if="editStatus"
+                  v-model="form.fromId"
+                  placeholder="请输入来源外键 当该行标记子表删除时使用"
+                />
+                <span v-else>{{ form.fromId }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="来源表名" prop="sourceTableName">
+                <el-input
+                  v-if="editStatus"
+                  v-model="form.sourceTableName"
+                  placeholder="请输入来源表名"
+                />
+                <span v-else>{{ form.sourceTableName }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="来源表外键" prop="sourceId">
+                <el-input
+                  v-if="editStatus"
+                  v-model="form.sourceId"
+                  placeholder="请输入来源表外键"
+                />
+                <span v-else>{{ form.sourceId }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="数据json" prop="sourceValue">
+                <el-input
+                  v-if="editStatus"
+                  v-model="form.sourceValue"
+                  type="textarea"
+                  placeholder="请输入内容"
+                />
+                <span v-else>{{ form.sourceValue }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="是否清除" prop="isClean">
+                <el-input
+                  v-if="editStatus"
+                  v-model="form.isClean"
+                  placeholder="请输入是否清除"
+                />
+                <span v-else>{{ form.isClean }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="是否还原" prop="isReturn">
+                <el-input
+                  v-if="editStatus"
+                  v-model="form.isReturn"
+                  placeholder="请输入是否还原"
+                />
+                <span v-else>{{ form.isReturn }}</span>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+    </el-drawer>
+  </div>
+</template>
+<script setup>
+import { getBin } from "@/api/business/bin";
+const { proxy } = getCurrentInstance();
+/** 父组件传参 */
+const props = defineProps({
+  getList: {
+    type: Function,
+    default: () => {},
+  },
+});
+const { getList } = toRefs(props);
+/** 字典数组区 */
+/** 表单抽屉 页变量 */
+const title = ref("");
+const loading = ref(false);
+const multiple = ref(true);
+const visible = ref(false);
+const editStatus = ref(false);
+const isFullscreen = ref(false);
+const webHost = import.meta.env.VITE_APP_BASE_API;
+const data = reactive({
+  form: {},
+  rules: {
+    sourceTableName: [
+      { required: true, message: "来源表名不能为空", trigger: "blur" },
+    ],
+    sourceValue: [
+      { required: true, message: "数据json不能为空", trigger: "blur" },
+    ],
+    isClean: [{ required: true, message: "是否清除不能为空", trigger: "blur" }],
+    isReturn: [
+      { required: true, message: "是否还原不能为空", trigger: "blur" },
+    ],
+  },
+});
+const { form, rules } = toRefs(data);
+/***********************  方法区  ****************************/
+/** 打开抽屉 */
+function open(id) {
+  reset();
+  visible.value = true;
+  if (id) {
+    getBin(id).then((response) => {
+      form.value = response.data;
+      editStatus.value = false;
+      title.value = "修改项目信息";
+    });
+  } else {
+    editStatus.value = true;
+    title.value = "添加项目信息";
+  }
+}
+
+/** 取消按钮 */
+function cancel() {
+  visible.value = false;
+  reset();
+}
+
+/** 表单重置 */
+function reset() {
+  form.value = {
+    id: null,
+    fromId: null,
+    sourceTableName: null,
+    sourceId: null,
+    sourceValue: null,
+    createTime: null,
+    creatorId: null,
+    updateTime: null,
+    updaterId: null,
+    deleted: null,
+    version: null,
+    tenantId: null,
+    isClean: null,
+    isReturn: null,
+  };
+  proxy.resetForm("binRef");
+}
+
+/** 全屏缩放 */
+function handleScreen() {
+  const dom = document.querySelector(
+    ".list-container > .el-drawer__wrapper > .el-overlay"
+  );
+  isFullscreen.value = !isFullscreen.value;
+  dom.style.position = isFullscreen.value ? "fixed" : "absolute";
+}
+
+/** 提交按钮 */
+function submitForm() {
+  proxy.$refs["binRef"].validate((valid) => {
+    if (valid) {
+      if (form.value.id != null) {
+        updateBin(form.value).then((response) => {
+          proxy.$modal.msgSuccess("修改成功");
+          visible.value = false;
+          getList.value();
+        });
+      } else {
+        addBin(form.value).then((response) => {
+          proxy.$modal.msgSuccess("新增成功");
+          visible.value = false;
+          getList.value();
+        });
+      }
+    }
+  });
+}
+
+/** 查询表单信息  */
+function getForm() {
+  loading.value = true;
+  getBin(form.value.id).then((response) => {
+    loading.value = false;
+    form.value = response.data;
+  });
+}
+
+/** 暴露给父组件的方法 */
+defineExpose({
+  open,
+});
+</script>

+ 217 - 0
src/views/business/crm/bin/index.vue

@@ -0,0 +1,217 @@
+<template>
+  <div class="page-container list-container">
+    <!-- 功能按钮区 -->
+    <div class="list-btns-container">
+      <el-button
+        type="primary"
+        size="small"
+        icon="Finished"
+        :disabled="multiple"
+        @click="handleUpdate"
+        v-hasPermi="['business:bin:restore']"
+        >还原</el-button
+      >
+
+      <el-button
+        type="danger"
+        size="small"
+        icon="Delete"
+        :disabled="multiple"
+        @click="handleDelete"
+        v-hasPermi="['business:bin:remove']"
+        >删除</el-button
+      >
+
+      <el-button
+        type="info"
+        size="small"
+        icon="Download"
+        @click="handleExport"
+        v-hasPermi="['business:bin:export']"
+        >导出</el-button
+      >
+      <!--<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>-->
+    </div>
+    <!-- 搜索区 -->
+    <el-form
+      class="list-search-container"
+      size="small"
+      :model="queryParams"
+      ref="queryRef"
+      :inline="true"
+      label-width="68px"
+    >
+      <el-form-item label="客户名称:" prop="sourceTableName">
+        <el-input
+          v-model="queryParams.sourceValue"
+          placeholder="请输入客户名称"
+          style="width: 150px"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="Search" @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="Refresh" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <!-- 列表区 -->
+    <el-table
+      v-loading="loading"
+      :data="binList"
+      size="small"
+      border
+      height="100%"
+      @selection-change="handleSelectionChange"
+    >
+      <el-table-column type="selection" width="55" align="center" />
+      <!-- <el-table-column label="序号" align="center" type="index" /> -->
+      <el-table-column label="客户名称" align="center" prop="sourceValue" />
+      <!-- <el-table-column label="来源表" align="center" prop="sourceTableName" /> -->
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
+        <template #default="scope">
+          <el-button
+            link
+            type="primary"
+            size="small"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['business:bin:restore']"
+            >还原</el-button
+          >
+          <el-button
+            link
+            type="danger"
+            size="small"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['business:bin:remove']"
+            >删除</el-button
+          >
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <!-- 分页 -->
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      v-model:page="queryParams.pageNum"
+      v-model:limit="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 表单 -->
+    <bin-form ref="binRef" :get-list="getList"></bin-form>
+  </div>
+</template>
+
+<script setup name="Bin">
+import { listBin, delBin, restoreArchiveBin } from "@/api/business/bin";
+import binForm from "./form";
+const { proxy } = getCurrentInstance();
+/** 字典数组区 */
+/** 查询 对象 */
+
+const binList = ref([]);
+const loading = ref(true);
+const ids = ref([]);
+const single = ref(true);
+const multiple = ref(true);
+const total = ref(0);
+/** 查询对象 */
+const queryParams = ref({
+  pageNum: 1,
+  pageSize: 20,
+  orderByColumn: "create_time",
+  sourceTableName: "biz_archive_input",
+  sourceValue: null,
+  isClean: null,
+  isReturn: null,
+});
+
+/***********************  方法区  ****************************/
+
+/** 查询回收站列表 */
+function getList() {
+  loading.value = true;
+  listBin(queryParams.value).then((response) => {
+    binList.value = response.rows;
+    total.value = response.total;
+    loading.value = false;
+  });
+}
+
+/** 搜索按钮操作 */
+function handleQuery() {
+  queryParams.value.pageNum = 1;
+  getList();
+}
+
+/** 重置按钮操作 */
+function resetQuery() {
+  proxy.resetForm("queryRef");
+  handleQuery();
+}
+
+// 多选框选中数据
+function handleSelectionChange(selection) {
+  ids.value = selection.map((item) => item.id);
+  single.value = selection.length != 1;
+  multiple.value = !selection.length;
+}
+
+/** 新增按钮操作 */
+function handleAdd() {
+  proxy.$refs.binRef.open();
+}
+
+/** 修改按钮操作 */
+function handleUpdate(row) {
+  const _ids = row.id || ids.value;
+  proxy.$modal
+    .confirm("是否确认还原选中的数据项?")
+    .then(function () {
+      loading.value = true;
+      return restoreArchiveBin(_ids);
+    })
+    .then(() => {
+      getList();
+      proxy.$modal.msgSuccess("还原成功!");
+    })
+    .catch(() => {});
+}
+
+/** 删除按钮操作 */
+function handleDelete(row) {
+  const _ids = row.id || ids.value;
+  proxy.$modal
+    .confirm("删除数据项后不可恢复,是否确认删除选中的数据项?")
+    .then(function () {
+      return delBin(_ids);
+    })
+    .then(() => {
+      getList();
+      proxy.$modal.msgSuccess("删除成功!");
+    })
+    .catch(() => {});
+}
+
+/** 导出按钮操作 */
+function handleExport() {
+  proxy.download(
+    "business/bin/export",
+    {
+      ...queryParams.value,
+    },
+    `bin_${new Date().getTime()}.xlsx`
+  );
+}
+
+getList();
+</script>

文件差異過大導致無法顯示
+ 148 - 568
src/views/business/crm/company/form.vue


+ 1 - 0
src/views/business/crm/dict/index.vue

@@ -173,6 +173,7 @@ function reset() {
     dictType: undefined,
     status: "0",
     remark: undefined,
+    module: 'customer'
   };
   proxy.resetForm("dictRef");
 }

+ 37 - 37
src/views/business/crm/order/form.vue

@@ -12,9 +12,9 @@
           <el-button v-if="form.verifyStatus == 0 && !editStatus" type="warning" size="small" icon="Edit"
             @click="editStatus = true">修改</el-button>
           <el-button v-if="form.id && editStatus" type="info" size="small" icon="Close" @click="() => {
-              editStatus = false;
-              getForm();
-            }
+            editStatus = false;
+            getForm();
+          }
             ">取消编辑</el-button>
           <el-button v-if="form.id" type="success" size="small" icon="refresh" @click="getForm">
             刷新
@@ -178,7 +178,7 @@
                           <el-form-item label="月单价">
                             <el-input-number v-if="editStatus" v-model="item.price" :precision="2" :step="0.1" :min="0"
                               :controls="false" @change="(arg) =>
-                                  inputChangeHandler('loop', 'price', item, arg)
+                                inputChangeHandler('loop', 'price', item, arg)
                                 " />
                             <div v-else>{{ item.price }}</div>
                           </el-form-item>
@@ -187,12 +187,12 @@
                           <el-form-item label="服务月数">
                             <el-input-number v-if="editStatus" v-model="item.serviceNum" :step="1" step-strictly :min="0"
                               :controls="false" @change="(arg) =>
-                                  inputChangeHandler(
-                                    'loop',
-                                    'serviceNum',
-                                    item,
-                                    arg
-                                  )
+                                inputChangeHandler(
+                                  'loop',
+                                  'serviceNum',
+                                  item,
+                                  arg
+                                )
                                 " />
                             <div v-else>{{ item.serviceNum }}</div>
                           </el-form-item>
@@ -201,12 +201,12 @@
                           <el-form-item label="赠送月数">
                             <el-input-number v-if="editStatus" v-model="item.freeNum" :step="1" step-strictly :min="0"
                               :controls="false" @change="(arg) =>
-                                  inputChangeHandler(
-                                    'loop',
-                                    'freeNum',
-                                    item,
-                                    arg
-                                  )
+                                inputChangeHandler(
+                                  'loop',
+                                  'freeNum',
+                                  item,
+                                  arg
+                                )
                                 " />
                             <div v-else>{{ item.freeNum }}</div>
                           </el-form-item>
@@ -314,12 +314,12 @@
                                 </div>
                                 <el-input-number :disabled="item.addressStyle !== 2" v-if="editStatus"
                                   v-model="item.addressAmount" :step="1" step-strictly :min="0" :controls="false" @change="(arg) =>
-                                      inputChangeHandler(
-                                        'once',
-                                        'addressAmount',
-                                        item,
-                                        arg
-                                      )
+                                    inputChangeHandler(
+                                      'once',
+                                      'addressAmount',
+                                      item,
+                                      arg
+                                    )
                                     " />
                               </div>
                             </template>
@@ -440,12 +440,12 @@
                                   <el-input-number :disabled="item.addressStyle !== 2" v-if="editStatus"
                                     v-model="item.addressAmount" :step="1" step-strictly :min="0" :controls="false"
                                     @change="(arg) =>
-                                        inputChangeHandler(
-                                          'once',
-                                          'addressAmount',
-                                          item,
-                                          arg
-                                        )
+                                      inputChangeHandler(
+                                        'once',
+                                        'addressAmount',
+                                        item,
+                                        arg
+                                      )
                                       " />
                                 </div>
                               </template>
@@ -547,13 +547,13 @@
                                 )
                                   " size="small" v-if="editStatus" v-model="process.amount" :step="1" step-strictly
                                   :min="0" :controls="false" style="width: 100px" @click.stop="null" @change="(arg) =>
-                                      inputChangeHandler(
-                                        'process',
-                                        'amount',
-                                        process,
-                                        arg,
-                                        item
-                                      )
+                                    inputChangeHandler(
+                                      'process',
+                                      'amount',
+                                      process,
+                                      arg,
+                                      item
+                                    )
                                     " />
                                 <div v-else style="
                                     display: inline-block;
@@ -606,14 +606,14 @@
             </el-col>
             <el-col :span="6">
               <el-form-item label="合计:" prop="remark">
-                <span>{{ form.amount }}</span>
+                <span>{{ form.amount.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,') }}</span>
               </el-form-item>
             </el-col>
             <el-col :span="6">
               <el-form-item label="优惠金额:">
                 <el-input-number v-if="editStatus" v-model="form.discountAmount" :precision="2" :step="0.1"
                   :controls="false" @change="(arg) =>
-                      inputChangeHandler('default', 'discountAmount', form, arg)
+                    inputChangeHandler('default', 'discountAmount', form, arg)
                     " />
                 <div v-else>{{ form.discountAmount }}</div>
               </el-form-item>

+ 101 - 344
src/views/business/crm/order/index.vue

@@ -2,14 +2,8 @@
   <div class="page-container list-container">
     <!-- 功能按钮区 -->
     <div class="list-btns-container">
-      <el-button
-        type="primary"
-        size="small"
-        icon="Plus"
-        @click="handleAdd"
-        v-hasPermi="['business:archive:order:add']"
-        >新增</el-button
-      >
+      <el-button type="primary" size="small" icon="Plus" @click="handleAdd"
+        v-hasPermi="['business:archive:order:add']">新增</el-button>
 
       <!-- <el-button type="danger" size="small" icon="Delete" :disabled="multiple" @click="handleDelete"
         v-hasPermi="['business:archive:order:remove']">删除</el-button> -->
@@ -19,43 +13,22 @@
         </el-button>
         <template #dropdown>
           <el-dropdown-menu>
-            <el-dropdown-item
-              icon="Delete"
-              :disabled="single"
-              @click="handleAlter"
-              v-hasPermi="['business:archive:order:alter']"
-            >
-              合同变更</el-dropdown-item
-            >
-            <el-dropdown-item
-              icon="Delete"
-              :disabled="single"
-              @click="handleDissolution"
-              v-hasPermi="['business:archive:order:dissolution']"
-            >
-              合同解除</el-dropdown-item
-            >
-            <el-dropdown-item
-              icon="Delete"
-              :disabled="multiple"
-              @click="handleDelete"
-              v-hasPermi="['business:archive:order:remove']"
-            >
-              删除合同</el-dropdown-item
-            >
-            <el-dropdown-item
-              icon="Download"
-              @click="handleExport"
-              v-hasPermi="['business:archive:order:export']"
-            >
-              导出</el-dropdown-item
-            >
-            <el-dropdown-item
-              icon="Upload"
-              @click="handleImport"
-              v-hasPermi="['business:archive:order:export']"
-              >导入</el-dropdown-item
-            >
+            <el-dropdown-item icon="Delete" :disabled="single" @click="handleAlter"
+              v-hasPermi="['business:archive:order:alter']">
+              合同变更</el-dropdown-item>
+            <el-dropdown-item icon="Delete" :disabled="single" @click="handleDissolution"
+              v-hasPermi="['business:archive:order:dissolution']">
+              合同解除</el-dropdown-item>
+            <el-dropdown-item icon="Delete" :disabled="multiple" @click="handleDelete"
+              v-hasPermi="['business:archive:order:remove']">
+              删除合同</el-dropdown-item>
+            <el-dropdown-item icon="Delete" :disabled="multiple" @click="handleBinDelete"
+              v-hasPermi="['business:archive:order:bin']">
+              放入回收站</el-dropdown-item>
+            <el-dropdown-item icon="Download" @click="handleExport" v-hasPermi="['business:archive:order:export']">
+              导出</el-dropdown-item>
+            <el-dropdown-item icon="Upload" @click="handleImport"
+              v-hasPermi="['business:archive:order:export']">导入</el-dropdown-item>
             <!-- <el-dropdown-item type="warning" size="small" icon="Download" @click="handleArea"
               v-hasPermi="['business:archive:order:export']"> area</el-dropdown-item> -->
           </el-dropdown-menu>
@@ -66,364 +39,136 @@
       <!--<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>-->
     </div>
     <!-- 搜索区 -->
-    <el-form
-      class="list-search-container"
-      size="small"
-      :model="queryParams"
-      ref="queryRef"
-      :inline="true"
-      label-width="68px"
-    >
+    <el-form class="list-search-container" size="small" :model="queryParams" ref="queryRef" :inline="true"
+      label-width="68px">
       <el-form-item label="客户名称:" prop="companyName">
-        <el-input
-          v-model="queryParams.companyName"
-          placeholder="请输入客户名称"
-          clearable
-          style="width: 200px"
-          @keyup.enter="handleQuery"
-        />
+        <el-input v-model="queryParams.companyName" placeholder="请输入客户名称" clearable style="width: 200px"
+          @keyup.enter="handleQuery" />
       </el-form-item>
       <el-form-item label="合同类型:" prop="contractType">
-        <el-select
-          size="small"
-          v-model="queryParams.contractType"
-          placeholder="服务类型"
-          clearable
-          style="width: 100px"
-        >
-          <el-option
-            v-for="item in contractTypes"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          />
+        <el-select size="small" v-model="queryParams.contractType" placeholder="服务类型" clearable style="width: 100px">
+          <el-option v-for="item in contractTypes" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
       </el-form-item>
       <el-form-item label="服务类型:" prop="serviceType">
-        <el-select
-          size="small"
-          v-model="queryParams.serviceType"
-          placeholder="合同类型"
-          clearable
-          style="width: 100px"
-        >
-          <el-option
-            v-for="item in serviceTypes"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          />
+        <el-select size="small" v-model="queryParams.serviceType" placeholder="合同类型" clearable style="width: 100px">
+          <el-option v-for="item in serviceTypes" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" icon="Search" @click="handleQuery"
-          >搜索</el-button
-        >
+        <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
         <el-button icon="operation" @click="moreSearch = true">更多</el-button>
         <el-button icon="Refresh" @click="resetQuery">重置</el-button>
       </el-form-item>
     </el-form>
 
     <!-- 列表区 -->
-    <el-table
-      v-loading="loading"
-      :data="orderList"
-      size="small"
-      border
-      height="100%"
-      @selection-change="handleSelectionChange"
-    >
+    <el-table v-loading="loading" :data="orderList" size="small" border height="100%"
+      @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column
-        label="客户名称"
-        align="center"
-        prop="companyName"
-        min-width="250"
-      />
-      <el-table-column
-        label="税号"
-        align="center"
-        prop="socialCreditCode"
-        min-width="200"
-      />
-      <el-table-column
-        label="合同编号"
-        align="center"
-        prop="contractNo"
-        min-width="150"
-      />
-      <el-table-column
-        label="签约日期"
-        align="center"
-        prop="formDate"
-        width="80"
-      >
+      <el-table-column label="客户名称" align="center" prop="companyName" min-width="250" />
+      <el-table-column label="税号" align="center" prop="socialCreditCode" min-width="200" />
+      <el-table-column label="合同编号" align="center" prop="contractNo" min-width="150" />
+      <el-table-column label="签约日期" align="center" prop="formDate" width="100">
         <template #default="scope">
           <span>{{ parseTime(scope.row.formDate, "{y}-{m}-{d}") }}</span>
         </template>
       </el-table-column>
-      <el-table-column
-        label="签约金额"
-        header-align="center"
-        align="right"
-        prop="trueAmount"
-        width="80"
-      />
-      <el-table-column
-        label="签单人"
-        align="center"
-        prop="signerName"
-        min-width="120"
-      />
-      <el-table-column
-        label="合同来源"
-        align="center"
-        prop="sourceCategoryName"
-        min-width="120"
-      />
-      <el-table-column
-        label="审核状态"
-        align="center"
-        prop="verifyStatus"
-        width="110"
-      >
+      <el-table-column label="签约金额" header-align="center" align="right" prop="trueAmount" width="80">
+        <template #default="scope">{{ scope.row.trueAmount.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,') }}</template>
+      </el-table-column>
+      <el-table-column label="签单人" align="center" prop="signerName" min-width="120" />
+      <el-table-column label="合同来源" align="center" prop="sourceCategoryName" min-width="120" />
+      <el-table-column label="审核状态" align="center" prop="verifyStatus" width="110">
         <template #default="scope">
-          <dict-tag
-            :options="contract_verify_status"
-            :value="scope.row.verifyStatus"
-          />
+          <dict-tag :options="contract_verify_status" :value="scope.row.verifyStatus" />
         </template>
       </el-table-column>
-      <el-table-column
-        label="合同类型"
-        align="center"
-        prop="contractType"
-        width="80"
-      >
+      <el-table-column label="合同类型" align="center" prop="contractType" width="80">
         <template #default="scope">
           {{ scope.row.contractType === 0 ? "新签" : "续签" }}
         </template>
       </el-table-column>
-      <el-table-column
-        label="服务类型"
-        align="center"
-        prop="serviceType"
-        width="80"
-      >
+      <el-table-column label="服务类型" align="center" prop="serviceType" width="80">
         <template #default="scope">
           {{ scope.row.serviceType === 1 ? "循环" : "代办" }}
         </template>
       </el-table-column>
-      <el-table-column
-        label="合同状态"
-        width="110"
-        align="center"
-        prop="status"
-      >
+      <el-table-column label="合同状态" width="110" align="center" prop="status">
         <template #default="scope">
           <dict-tag :options="contract_status" :value="scope.row.status" />
         </template>
       </el-table-column>
-      <el-table-column
-        label="操作"
-        fixed="right"
-        align="center"
-        width="130"
-        class-name="small-padding fixed-width"
-      >
+      <el-table-column label="操作" fixed="right" align="center" width="130" class-name="small-padding fixed-width">
         <template #default="scope">
-          <el-button
-            link
-            type="primary"
-            size="small"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['business:archive:order:edit']"
-            >查看</el-button
-          >
-          <el-button
-            link
-            type="danger"
-            size="small"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['business:archive:order:remove']"
-            >删除</el-button
-          >
+          <el-button link type="primary" size="small" @click="handleUpdate(scope.row)"
+            v-hasPermi="['business:archive:order:edit']">查看</el-button>
+          <el-button link type="danger" size="small" @click="handleDelete(scope.row)"
+            v-hasPermi="['business:archive:order:remove']">删除</el-button>
         </template>
       </el-table-column>
     </el-table>
     <contract-form ref="contractRef" :get-list="getList" />
     <import-excel-dialog ref="importExcelDialogRef" :get-list="getList" />
     <!-- 分页 -->
-    <pagination
-      v-show="total > 0"
-      :total="total"
-      v-model:page="queryParams.pageNum"
-      v-model:limit="queryParams.pageSize"
-      @pagination="getList"
-    />
-    <el-dialog
-      title="更多搜索"
-      v-model="moreSearch"
-      width="620px"
-      append-to-body
-      size="small"
-      draggable
-    >
-      <el-form
-        :model="queryParams"
-        ref="queryRef"
-        :rules="rules"
-        size="small"
-        label-width="100"
-      >
+    <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
+      @pagination="getList" />
+    <el-dialog title="更多搜索" v-model="moreSearch" width="620px" append-to-body size="small" draggable>
+      <el-form :model="queryParams" ref="queryRef" size="small" label-width="100">
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="客户名称:" prop="companyName">
-              <el-input
-                v-model="queryParams.companyName"
-                placeholder="请输入客户名称"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-              />
+              <el-input v-model="queryParams.companyName" placeholder="请输入客户名称" clearable style="width: 200px"
+                @keyup.enter="handleQuery" />
             </el-form-item>
             <el-form-item label="服务类型:" prop="serviceType">
-              <el-select
-                size="small"
-                v-model="queryParams.serviceType"
-                placeholder="合同类型"
-                clearable
-                style="width: 100%"
-              >
-                <el-option
-                  v-for="item in serviceTypes"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                />
+              <el-select size="small" v-model="queryParams.serviceType" placeholder="合同类型" clearable style="width: 100%">
+                <el-option v-for="item in serviceTypes" :key="item.value" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
             <el-form-item label="代理记账:" prop="isKeepAccount">
-              <el-select
-                size="small"
-                v-model="queryParams.isKeepAccount"
-                placeholder="是否记账"
-                clearable
-                style="width: 100%"
-              >
-                <el-option
-                  v-for="item in yesOrNo"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                />
+              <el-select size="small" v-model="queryParams.isKeepAccount" placeholder="是否记账" clearable
+                style="width: 100%">
+                <el-option v-for="item in yesOrNo" :key="item.value" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
             <el-form-item label="公积金代缴:" prop="isHousingFund">
-              <el-select
-                size="small"
-                v-model="queryParams.isHousingFund"
-                placeholder="是否代缴公积金"
-                clearable
-                style="width: 100%"
-              >
-                <el-option
-                  v-for="item in yesOrNo"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                />
+              <el-select size="small" v-model="queryParams.isHousingFund" placeholder="是否代缴公积金" clearable
+                style="width: 100%">
+                <el-option v-for="item in yesOrNo" :key="item.value" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
             <el-form-item label="注册:" prop="isRegister">
-              <el-select
-                size="small"
-                v-model="queryParams.isRegister"
-                placeholder="是否注册"
-                clearable
-                style="width: 100%"
-              >
-                <el-option
-                  v-for="item in yesOrNo"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                />
+              <el-select size="small" v-model="queryParams.isRegister" placeholder="是否注册" clearable style="width: 100%">
+                <el-option v-for="item in yesOrNo" :key="item.value" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="合同类型:" prop="contractType">
-              <el-select
-                size="small"
-                v-model="queryParams.contractType"
-                placeholder="服务类型"
-                clearable
-                style="width: 100%"
-              >
-                <el-option
-                  v-for="item in contractTypes"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                />
+              <el-select size="small" v-model="queryParams.contractType" placeholder="服务类型" clearable style="width: 100%">
+                <el-option v-for="item in contractTypes" :key="item.value" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
             <el-form-item label="签约日期:" prop="formDate">
-              <el-date-picker
-                clearable
-                v-model="queryParams.formDate"
-                type="date"
-                value-format="YYYY-MM-DD"
-                placeholder="请选择签约日期"
-              />
+              <el-date-picker clearable v-model="queryParams.formDate" type="date" value-format="YYYY-MM-DD"
+                placeholder="请选择签约日期" />
             </el-form-item>
             <el-form-item label="社保代缴:" prop="isSocialSecurity">
-              <el-select
-                size="small"
-                v-model="queryParams.isSocialSecurity"
-                placeholder="是否代缴社保"
-                clearable
-                style="width: 100%"
-              >
-                <el-option
-                  v-for="item in yesOrNo"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                />
+              <el-select size="small" v-model="queryParams.isSocialSecurity" placeholder="是否代缴社保" clearable
+                style="width: 100%">
+                <el-option v-for="item in yesOrNo" :key="item.value" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
             <el-form-item label="返税申报:" prop="isReturnTax">
-              <el-select
-                size="small"
-                v-model="queryParams.isReturnTax"
-                placeholder="是否申报返税"
-                clearable
-                style="width: 100%"
-              >
-                <el-option
-                  v-for="item in yesOrNo"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                />
+              <el-select size="small" v-model="queryParams.isReturnTax" placeholder="是否申报返税" clearable
+                style="width: 100%">
+                <el-option v-for="item in yesOrNo" :key="item.value" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
             <el-form-item label="变更:" prop="isAlter">
-              <el-select
-                size="small"
-                v-model="queryParams.isAlter"
-                placeholder="是否变更"
-                clearable
-                style="width: 100%"
-              >
-                <el-option
-                  v-for="item in yesOrNo"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                />
+              <el-select size="small" v-model="queryParams.isAlter" placeholder="是否变更" clearable style="width: 100%">
+                <el-option v-for="item in yesOrNo" :key="item.value" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
           </el-col>
@@ -431,16 +176,8 @@
       </el-form>
       <template #footer>
         <div class="dialog-footer">
-          <el-button
-            type="primary"
-            icon="Finished"
-            size="small"
-            @click="handleQuery"
-            >确 定</el-button
-          >
-          <el-button icon="close" size="small" @click="moreSearch = false"
-            >取 消</el-button
-          >
+          <el-button type="primary" icon="Finished" size="small" @click="handleQuery">确 定</el-button>
+          <el-button icon="close" size="small" @click="moreSearch = false">取 消</el-button>
         </div>
       </template>
     </el-dialog>
@@ -450,7 +187,12 @@
 <script setup name="Order">
 import { dissolutionOrder } from "../../../../api/business/crm/contract";
 import contractForm from "./form";
-import { listOrder, delOrder, exportOrder } from "@/api/business/crm/contract";
+import {
+  listOrder,
+  delOrder,
+  delBinOrder,
+  exportOrder,
+} from "@/api/business/crm/contract";
 import importExcelDialog from "./importExcelDialog.vue";
 import { yesOrNo } from "@/utils/default";
 const { proxy } = getCurrentInstance();
@@ -604,7 +346,22 @@ function handleDelete(row) {
       getList();
       proxy.$modal.msgSuccess("删除成功!");
     })
-    .catch(() => {});
+    .catch(() => { });
+}
+
+/** 放入回收站按钮操作 */
+function handleBinDelete(row) {
+  const _ids = row.id || ids.value;
+  proxy.$modal
+    .confirm("是否确认选中的数据项放入回收站?")
+    .then(function () {
+      return delBinOrder(_ids);
+    })
+    .then(() => {
+      getList();
+      proxy.$modal.msgSuccess("数据已放入回收站!");
+    })
+    .catch(() => { });
 }
 
 function handleAlter(row) {
@@ -628,7 +385,7 @@ function handleDissolution() {
       getList();
       proxy.$modal.msgSuccess("解除成功!");
     })
-    .catch(() => {});
+    .catch(() => { });
 }
 
 /** 导出按钮操作 */

+ 29 - 23
src/views/business/deduction/index.vue

@@ -44,7 +44,7 @@
         <el-date-picker v-model="queryParams.currentMonth" type="month" format="YYYY年MM月" value-format="YYYY-MM"
           style="width: 130px" />
       </el-form-item>
-      <el-form-item label="是否自己负责:">
+      <el-form-item v-if="tenant.versionId !== '4'" label="是否自己负责:">
         <el-switch v-model="oneself" @change="handleOneself" />
       </el-form-item>
       <el-form-item>
@@ -99,26 +99,31 @@
       <el-table-column label="操作" fixed="right" width="220" align="center">
         <template #default="scope">
           <template v-if="scope.row.deductible === 1">
-            <el-button v-hasPermi="['business:deduction:confirm']" v-show="(scope.row.status === 0 || scope.row.status === 4) &&
-              checkConfirm(scope.row)
-              " link type="primary" size="small" @click="showConfirm(scope.row)">确认扣款</el-button>
+            <template v-if="(scope.row.status === 0 || scope.row.status === 4) && checkConfirm(scope.row)">
+              <el-button v-hasPermi="['business:deduction:confirm']" link type="primary" size="small"
+                @click="showConfirm(scope.row)">确认扣款</el-button>
+            </template>
             <div v-if="scope.row.sourceName === '公积金'">
-              <el-button link v-hasPermi="['business:deduction:declare']" v-show="scope.row.status === 1"
-                style="margin-right: 5px" type="primary" size="small" @click="applySuccess(scope.row, 5)">申报成功</el-button>
+              <template v-if="scope.row.status === 1">
+                <el-button link v-hasPermi="['business:deduction:declare']" style="margin-right: 5px" type="primary"
+                  size="small" @click="applySuccess(scope.row, 5)">申报成功</el-button>
+              </template>
             </div>
-            <div v-if="scope.row.sourceName === '公积金'" style="margin-left: 26px; display: flex; align-items: center">
-              <el-button link v-hasPermi="['business:deduction:deduction']" v-show="scope.row.status === 5"
-                style="margin-left: 5px; :5px " type="primary" size="small"
-                @click="showFeedbackDialog(scope.row)">扣款失败</el-button>
-              <el-button link v-hasPermi="['business:deduction:deduction']" v-show="scope.row.status === 5"
-                style="margin-right: 5px" type="primary" size="small" @click="openUpload(scope.row)">扣款成功</el-button>
+            <div v-if="scope.row.sourceName === '公积金'">
+              <template v-if="scope.row.status === 5">
+                <el-button link v-hasPermi="['business:deduction:deduction']" style="margin-right: 5px" type="primary"
+                  size="small" @click="openUpload(scope.row)">扣款成功</el-button>
+                <el-button link v-hasPermi="['business:deduction:deduction']" style="margin-left: 5px; :5px "
+                  type="primary" size="small" @click="showFeedbackDialog(scope.row)">扣款失败</el-button>
+              </template>
             </div>
-            <div v-else style="margin-left: 26px; display: flex; align-items: center">
-              <el-button link v-hasPermi="['business:deduction:deduction']" v-show="scope.row.status === 1"
-                style="margin-right: 5px" type="primary" size="small" @click="openUpload(scope.row)">扣款成功</el-button>
-              <el-button link v-hasPermi="['business:deduction:deduction']" v-show="scope.row.status === 1"
-                style="margin-left: 5px; :5px " type="primary" size="small"
-                @click="showFeedbackDialog(scope.row)">扣款失败</el-button>
+            <div v-else>
+              <template v-if="scope.row.status === 1">
+                <el-button link v-hasPermi="['business:deduction:deduction']" style="margin-right: 5px" type="primary"
+                  size="small" @click="openUpload(scope.row)">扣款成功</el-button>
+                <el-button link v-hasPermi="['business:deduction:deduction']" style="margin-left: 5px; :5px "
+                  type="primary" size="small" @click="showFeedbackDialog(scope.row)">扣款失败</el-button>
+              </template>
             </div>
           </template>
         </template>
@@ -134,7 +139,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="凭证附件:">
+            <el-form-item label="凭证附件:" required>
               <div class="details-btns-container" style="display: flex">
                 <el-upload action="#" :http-request="upload" :with-credentials="true" :show-file-list="false" multiple>
                   <el-button size="small" type="primary" icon="Upload">点击上传</el-button>
@@ -178,7 +183,7 @@
     <SocialSecurityViewDialog ref="socialSecurityViewDialog" />
     <!-- 更多搜索弹窗 -->
     <el-dialog title="更多搜索" v-model="moreSearch" width="620px" append-to-body draggable>
-      <el-form :model="queryParams" ref="queryRef" size="small" :rules="rules" label-width="100">
+      <el-form :model="queryParams" ref="queryRef" size="small" label-width="100">
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="客户名称:">
@@ -225,8 +230,8 @@ import {
   exportDeposition,
   saveDeduction,
 } from "@/api/business/production/deduction";
-import MergeTaxViewDialog from "./MergeTaxViewDialog.vue";
-import feedbackDialog from "./feedbackDialog.vue";
+import MergeTaxViewDialog from "./MergeTaxViewDialog";
+import feedbackDialog from "./feedbackDialog";
 import { uploadFile } from "@/api/tool/file";
 import { listCompany } from "@/api/business/crm/company";
 import { taxTypes } from "@/utils/default";
@@ -236,11 +241,12 @@ import { ref } from "vue";
 import FileDialog from "../../dialog/fileDialog.vue";
 import HousingFundViewDialog from "./HousingFundViewDialog";
 import SocialSecurityViewDialog from "./SocialSecurityViewDialog";
+
 // import DepositForm from "./form"
 const { proxy } = getCurrentInstance();
 /** 字典数组区 */
 /** 查询 对象 */
-
+const tenant = useUserStore().tenant
 const list = ref([]);
 const loading = ref(true);
 const ids = ref([]);

+ 4 - 3
src/views/business/entrust/deductOfFactory/index.vue

@@ -2,7 +2,7 @@
   <div class="page-container list-container">
     <!-- 功能按钮区 -->
     <div class="list-btns-container">
-      <el-button type="warning" size="small" icon="Refresh" @click="getList"
+      <el-button type="success" size="small" icon="Refresh" @click="getList"
         v-hasPermi="['business:entrustOrder:remove']">刷新</el-button>
       <el-dropdown>
         <el-button type="primary" size="small">
@@ -18,9 +18,10 @@
     </div>
     <!-- 搜索区 -->
     <el-form class="list-search-container" size="small" :model="queryParams" ref="queryRef" :inline="true"
-      label-width="68px">
+      label-width="68px" @submit.native.prevent>
       <el-form-item label="往来单位:" prop="contactCompany">
-        <el-input v-model="queryParams.contactCompany" placeholder="请输入往来单位" clearable @keyup.enter="handleQuery" />
+        <el-input v-model="queryParams.contactCompany" placeholder="请输入往来单位" clearable @keyup.enter="handleQuery"
+          style="width: 150px" />
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>

+ 1 - 1
src/views/business/entrust/depositOfFactory/index.vue

@@ -2,7 +2,7 @@
   <div class="page-container list-container">
     <!-- 功能按钮区 -->
     <div class="list-btns-container">
-      <el-button type="warning" size="small" icon="Refresh" @click="getList"
+      <el-button type="success" size="small" icon="Refresh" @click="getList"
         v-hasPermi="['business:entrustOrder:remove']">刷新</el-button>
       <el-dropdown>
         <el-button type="primary" size="small">

+ 1 - 1
src/views/business/entrust/entrustOrder/index.vue

@@ -22,7 +22,7 @@
     </div>
     <!-- 搜索区 -->
     <el-form class="list-search-container" size="small" :model="queryParams" ref="queryRef" :inline="true"
-      label-width="68px">
+      label-width="68px" @submit.native.prevent>
       <el-form-item label="往来单位:" prop="contactCompany">
         <el-input v-model="queryParams.contactCompany" placeholder="请输入往来单位" style="width: 150px" clearable
           @keyup.enter="handleQuery" />

+ 305 - 77
src/views/business/financial/collection/form.vue

@@ -4,16 +4,38 @@
     <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> -->
@@ -23,9 +45,15 @@
             <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">
@@ -42,37 +70,67 @@
             <!-- <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>
@@ -81,44 +139,84 @@
             </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>
@@ -144,8 +242,17 @@
             </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>
@@ -161,8 +268,14 @@
             </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>
@@ -179,28 +292,68 @@
                 </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>
@@ -210,27 +363,62 @@
                   <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>
@@ -241,26 +429,66 @@
         </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>
@@ -299,7 +527,7 @@ const baseUrl = import.meta.env.VITE_APP_BASE_API;
 const props = defineProps({
   getList: {
     type: Function,
-    default: () => { },
+    default: () => {},
   },
 });
 const { getList } = toRefs(props);
@@ -464,7 +692,7 @@ function rejectCancel() {
   rejectReset();
 }
 
-function rejectReset() { }
+function rejectReset() {}
 
 function rejectSubmitHandler() {
   if (form.value.verifyRemark === "" || form.value.verifyRemark == null) {

+ 284 - 70
src/views/business/financial/contract/form.vue

@@ -4,25 +4,61 @@
     <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-group>
-            <el-button v-if="editStatus" type="primary" size="small" icon="Finished" @click="submitForm">保存</el-button>
-            <el-button v-else-if="form.verifyStatus == 0" type="warning" size="small" icon="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">
+            <el-button
+              v-if="editStatus"
+              type="primary"
+              size="small"
+              icon="Finished"
+              @click="submitForm"
+              >保存</el-button
+            >
+            <el-button
+              v-else-if="form.verifyStatus == 0"
+              type="warning"
+              size="small"
+              icon="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>
-            <el-button v-show="form.id && !editStatus && form.verifyStatus == 0"
-              v-hasPermi="['business:archive:order:verify']" type="warning" size="small"
-              @click="verifyHandler">审核通过</el-button>
-            <el-button v-show="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.verifyStatus == 0"
+              v-hasPermi="['business:archive:order:verify']"
+              type="warning"
+              size="small"
+              @click="verifyHandler"
+              >审核通过</el-button
+            >
+            <el-button
+              v-show="form.id && !editStatus && form.verifyStatus == 0"
+              v-hasPermi="['business:archive:order:verify']"
+              type="danger"
+              size="small"
+              @click="rejectHandler"
+              >驳回</el-button
+            >
           </el-button-group>
           <div class="screen-btn" @click="handleScreen">
             <template v-if="!isFullscreen">
@@ -39,37 +75,66 @@
             <!-- <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="请输入收款账户" popper-class="my-autocomplete"
-                  @select="handleSelectAccount">
+                <el-autocomplete
+                  v-if="editStatus"
+                  :fetch-suggestions="querySearchAccountAsync"
+                  :trigger-on-focus="true"
+                  v-model="form.subsidiaryName"
+                  placeholder="请输入收款账户"
+                  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>
@@ -78,44 +143,83 @@
             </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"
-                  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"
+                  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" v-model.trim="form.arriveTime" :picker-options="timeOptions"
-                  placeholder="选择时间" />
+                <el-time-select
+                  v-if="editStatus"
+                  v-model.trim="form.arriveTime"
+                  :picker-options="timeOptions"
+                  placeholder="选择时间"
+                />
                 <span v-else>{{ form.arriveTime }}</span>
               </el-form-item>
             </el-col>
@@ -141,15 +245,30 @@
             </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>
             <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>
@@ -166,28 +285,68 @@
                 </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>
@@ -197,26 +356,61 @@
                   <i class="fa fa-th-list" aria-hidden="true" /> 附件
                   <i style="color: red">*</i>
                 </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" 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"
+                    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="操作" width="50" 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>
@@ -227,10 +421,21 @@
         </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">
         <el-form-item label="驳回原因" :prop="verifyRemark">
-          <el-input v-model.trim="form.verifyRemark" type="textarea" :rows="3" placeholder="请输入驳回原因" />
+          <el-input
+            v-model.trim="form.verifyRemark"
+            type="textarea"
+            :rows="3"
+            placeholder="请输入驳回原因"
+          />
         </el-form-item>
       </el-form>
       <template #footer>
@@ -259,6 +464,7 @@ import {
   getCollection,
   getCollectionByContract,
   saveCollection,
+  setCollectionStatus,
 } from "@/api/business/financial/collection";
 import { listSource } from "@/api/settings/source";
 import { listCompany } from "@/api/business/crm/company";
@@ -274,7 +480,7 @@ const baseUrl = import.meta.env.VITE_APP_BASE_API;
 const props = defineProps({
   getList: {
     type: Function,
-    default: () => { },
+    default: () => {},
   },
 });
 const { getList } = toRefs(props);
@@ -323,6 +529,7 @@ const provinces = ref(proxy.region.getProvinces());
 provinces.value.unshift({ code: "", name: "全部" });
 const cities = ref([]);
 const districts = ref([]);
+const archiveInput = ref({});
 
 const contractEmpty = {
   serviceType: 1,
@@ -344,6 +551,7 @@ const { form, rules, timeOptions } = toRefs(data);
 /** 打开抽屉 */
 function open(row) {
   reset();
+  archiveInput.value = row;
   visible.value = true;
   // console.log(virtual_address.value)
   getCollectionByContract(row).then((res) => {
@@ -385,6 +593,12 @@ function submitForm() {
     if (valid && detailValid()) {
       const formValue = form.value;
       saveCollection(formValue).then((res) => {
+        if (res.code === 200) {
+          archiveInput.value.collectionStatus = 1;
+          console.log(archiveInput.value);
+          setCollectionStatus(archiveInput.value);
+          proxy.$message.success("保存成功");
+        }
         getList.value();
         cancel();
       });

+ 144 - 29
src/views/business/financial/contract/index.vue

@@ -13,71 +13,184 @@
         </el-button>
         <template #dropdown>
           <el-dropdown-menu>
-            <el-dropdown-item icon="Download" @click="handleExport" v-hasPermi="['business:collection:export']">
-              导出</el-dropdown-item>
+            <el-dropdown-item
+              icon="Download"
+              @click="handleExport"
+              v-hasPermi="['business:collection:export']"
+            >
+              导出</el-dropdown-item
+            >
           </el-dropdown-menu>
         </template>
       </el-dropdown>
     </div>
     <!-- 搜索区 -->
-    <el-form class="list-search-container" size="small" :model="queryParams" ref="queryRef" :inline="true"
-      label-width="68px">
+    <el-form
+      class="list-search-container"
+      size="small"
+      :model="queryParams"
+      ref="queryRef"
+      :inline="true"
+      label-width="68px"
+    >
       <el-form-item label="客户名称:" prop="companyName">
-        <el-input v-model="queryParams.companyName" placeholder="请输入客户名称" clearable style="width: 150px"
-          @keyup.enter="handleQuery" />
+        <el-input
+          v-model="queryParams.companyName"
+          placeholder="请输入客户名称"
+          clearable
+          style="width: 150px"
+          @keyup.enter="handleQuery"
+        />
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
+        <el-button type="primary" icon="Search" @click="handleQuery"
+          >搜索</el-button
+        >
         <el-button icon="Refresh" @click="resetQuery">重置</el-button>
       </el-form-item>
     </el-form>
 
     <!-- 列表区 -->
-    <el-table v-loading="loading" :data="orderList" size="small" border height="100%"
-      @selection-change="handleSelectionChange">
+    <el-table
+      v-loading="loading"
+      :data="orderList"
+      size="small"
+      border
+      height="100%"
+      @selection-change="handleSelectionChange"
+    >
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="客户名称" align="center" prop="companyName" min-width="250" />
-      <el-table-column label="税号" align="center" prop="socialCreditCode" min-width="180" />
-      <el-table-column label="合同编号" align="center" prop="contractNo" min-width="150" />
-      <el-table-column label="签约日期" align="center" prop="formDate" width="85">
+      <el-table-column
+        label="客户名称"
+        align="center"
+        prop="companyName"
+        min-width="250"
+      />
+      <el-table-column
+        label="税号"
+        align="center"
+        prop="socialCreditCode"
+        min-width="180"
+      />
+      <el-table-column
+        label="合同编号"
+        align="center"
+        prop="contractNo"
+        min-width="150"
+      />
+      <el-table-column
+        label="签约日期"
+        align="center"
+        prop="formDate"
+        width="85"
+      >
         <template #default="scope">
           <span>{{ parseTime(scope.row.formDate, "{y}-{m}-{d}") }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="签约金额" header-align="center" align="right" prop="amount" min-width="80" />
-      <el-table-column label="签单人" align="center" prop="signerName" min-width="100" />
-      <el-table-column label="合同来源" align="center" prop="sourceName" min-width="130" />
-      <el-table-column label="审核状态" align="center" prop="verifyStatus" min-width="100">
+      <el-table-column
+        label="签约金额"
+        header-align="center"
+        align="right"
+        prop="amount"
+        min-width="80"
+      />
+      <el-table-column
+        label="签单人"
+        align="center"
+        prop="signerName"
+        min-width="100"
+      />
+      <el-table-column
+        label="收款状态"
+        align="center"
+        prop="collectionStatus"
+        min-width="100"
+      >
         <template #default="scope">
-          <dict-tag :options="contract_verify_status" :value="scope.row.verifyStatus" />
+          <dict-tag
+            :options="contract_receipt_verify"
+            :value="scope.row.collectionStatus"
+          />
         </template>
       </el-table-column>
-      <el-table-column label="合同类型" align="center" width="80" prop="contractType">
+      <el-table-column
+        label="合同来源"
+        align="center"
+        prop="sourceName"
+        min-width="130"
+      />
+      <el-table-column
+        label="审核状态"
+        align="center"
+        prop="verifyStatus"
+        min-width="100"
+      >
+        <template #default="scope">
+          <dict-tag
+            :options="contract_verify_status"
+            :value="scope.row.verifyStatus"
+          />
+        </template>
+      </el-table-column>
+      <el-table-column
+        label="合同类型"
+        align="center"
+        width="80"
+        prop="contractType"
+      >
         <template #default="scope">
           {{ scope.row.contractType === 0 ? "新签" : "续签" }}
         </template>
       </el-table-column>
-      <el-table-column label="任务类型" align="center" width="80" prop="serviceType">
+      <el-table-column
+        label="任务类型"
+        align="center"
+        width="80"
+        prop="serviceType"
+      >
         <template #default="scope">
           {{ scope.row.serviceType === 1 ? "循环" : "代办" }}
         </template>
       </el-table-column>
-      <el-table-column label="合同状态" min-width="100" align="center" prop="status">
+      <el-table-column
+        label="合同状态"
+        min-width="100"
+        align="center"
+        prop="status"
+      >
         <template #default="scope">
           <dict-tag :options="contract_status" :value="scope.row.status" />
         </template>
       </el-table-column>
-      <el-table-column label="操作" align="center" fixed="right" min-width="100" class-name="small-padding fixed-width">
+      <el-table-column
+        label="操作"
+        align="center"
+        fixed="right"
+        min-width="100"
+        class-name="small-padding fixed-width"
+      >
         <template #default="scope">
-          <el-button link type="warning" size="small" @click="handleAdd(scope.row)"
-            v-hasPermi="['business:collection:add']">新增收款</el-button>
+          <el-button
+            link
+            type="warning"
+            size="small"
+            @click="handleAdd(scope.row)"
+            v-hasPermi="['business:collection:add']"
+            >新增收款</el-button
+          >
         </template>
       </el-table-column>
     </el-table>
     <contract-form ref="contractRef" :get-list="getList" />
     <!-- 分页 -->
-    <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
-      @pagination="getList" />
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      v-model:page="queryParams.pageNum"
+      v-model:limit="queryParams.pageSize"
+      @pagination="getList"
+    />
   </div>
 </template>
 
@@ -97,6 +210,8 @@ const total = ref(0);
 
 const { contract_verify_status } = proxy.useDict("contract_verify_status");
 const { contract_status } = proxy.useDict("contract_status");
+const { contract_receipt_verify } = proxy.useDict("contract_receipt_verify");
+
 /** 查询对象 */
 const queryParams = ref({
   pageNum: 1,
@@ -164,7 +279,7 @@ function handleDelete(row) {
       getList();
       proxy.$modal.msgSuccess("删除成功!");
     })
-    .catch(() => { });
+    .catch(() => {});
 }
 
 function handleAlter(row) {
@@ -183,7 +298,7 @@ function handleDissolution() {
       getList();
       proxy.$modal.msgSuccess("删除成功!");
     })
-    .catch(() => { });
+    .catch(() => {});
 }
 
 /** 导出按钮操作 */
@@ -191,7 +306,7 @@ function handleExport() {
   exportOrder(queryParams.value);
 }
 
-function handleImport() { }
+function handleImport() {}
 
 getList();
 </script>

+ 112 - 30
src/views/business/financial/payment/form.vue

@@ -8,16 +8,18 @@
               <Document />
             </el-icon>
             支出信息</span>
-
-          <el-button v-if="editStatus" type="primary" size="small" icon="Finished" @click="submitForm">保存</el-button>
-          <el-button v-else-if="form.verifyDate == null" type="warning" size="small" icon="Edit"
-            @click="editStatus = true">修改</el-button>
-          <el-button v-if="form.id && editStatus" size="small" icon="Close" @click="editStatus = false">取消修改</el-button>
-
-          <el-button v-show="form.id && !editStatus && form.verifyDate == null"
-            v-hasPermi="['business:payment:submitVerify']" type="primary" size="small" icon="Check"
-            @click="verifyHandler">收款审核</el-button>
-
+          <template v-if="checkPermission(['business:payment:edit', 'business:payment:add'])">
+            <el-button v-if="editStatus" type="primary" size="small" icon="Finished" @click="submitForm">保存</el-button>
+            <el-button v-else-if="form.verifyStatus === 0" type="warning" size="small" icon="Edit"
+              @click="editStatus = true">修改</el-button>
+            <el-button v-if="form.id && editStatus" size="small" icon="Close" @click="editStatus = false">取消修改</el-button>
+          </template>
+          <el-button v-show="form.id && !editStatus && form.verifyStatus === 0"
+            v-hasPermi="['business:payment:financialVerify']" type="primary" size="small" icon="Check"
+            @click="verifyHandler">财务审核</el-button>
+          <el-button v-show="form.id && !editStatus && form.verifyStatus === 1"
+            v-hasPermi="['business:payment:cashierVerify']" type="primary" size="small" icon="Check"
+            @click="cashierVerifyHandler">出纳审核</el-button>
           <div class="screen-btn" @click="handleScreen">
             <template v-if="!isFullscreen">
               <i class="fa fa-window-maximize" aria-hidden="true" />
@@ -232,22 +234,18 @@
         </div>
       </div>
     </el-drawer>
-    <el-dialog title="审核详情" v-model="rejectOpen" width="500px" append-to-body draggable>
-      <el-form ref="dictRef" :model="form" label-width="100" size="small">
+    <el-dialog title="财务审核详情" v-model="rejectOpen" width="500px" append-to-body draggable>
+      <el-form ref="dictRef" :model="rejectForm" label-width="100" size="small">
         <el-form-item label="审核状态">
-          <el-select v-model.trim="form.verifyStatus" placeholder="请选择" size="small">
+          <el-select v-model.trim="rejectForm.verifyStatus" 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-form-item>
         <!-- <el-form-item label="支出附件上传" required>
 
         </el-form-item> -->
-        <el-form-item :label="form.verifyStatus == 2 ? '驳回原因' : '审核意见'" :prop="verifyRemark">
-          <el-input v-model.trim="form.verifyComment" type="textarea" maxlength="200" show-word-limit :rows="3"
+        <el-form-item :label="rejectForm.verifyStatus == 2 ? '驳回原因' : '审核意见'" :prop="verifyRemark">
+          <el-input v-model.trim="rejectForm.verifyComment" type="textarea" maxlength="200" show-word-limit :rows="3"
             placeholder="请输入审核意见" />
         </el-form-item>
       </el-form>
@@ -258,6 +256,32 @@
         </div>
       </template>
     </el-dialog>
+    <el-dialog title="出纳审核详情" v-model="cashierOpen" 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="cashierForm.verifyStatus" placeholder="请选择" size="small">
+            <el-option v-for="i in cashierVerified" :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="cashierForm.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="支出附件上传" required>
+        </el-form-item> -->
+        <el-form-item :label="cashierForm.verifyStatus == 4 ? '驳回原因' : '审核意见'" :prop="cashierVerifyComment">
+          <el-input v-model.trim="cashierForm.cashierVerifyComment" type="textarea" maxlength="200" show-word-limit
+            :rows="3" placeholder="请输入审核意见" />
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button type="primary" icon="Finished" size="small" @click="cashierVerifyUpload()">确 定</el-button>
+          <el-button icon="close" size="small" @click="cashierVerifyCancel">取 消</el-button>
+        </div>
+      </template>
+    </el-dialog>
     <dialog-contract-choice ref="contractChoiceRef" @choice="contractChoiceHandle" />
   </div>
 </template>
@@ -310,6 +334,9 @@ const sourceCategories = ref([]);
 const type = ref("");
 
 const rejectOpen = ref(false);
+const rejectForm = ref({})
+
+const cashierForm = ref({})
 
 const detailEmpty = {
   id: null,
@@ -385,11 +412,24 @@ const data = reactive({
     },
     {
       value: 2,
-      label: "不通过",
+      label: "驳回",
     },
   ],
+  cashierVerified: [
+    {
+      value: 1,
+      label: "未审核"
+    }, {
+      value: 3,
+      label: "通过"
+    }, {
+      value: 4,
+      label: "驳回",
+    }
+  ],
+  cashierOpen: false
 });
-const { form, rules, timeOptions, verified } = toRefs(data);
+const { form, rules, timeOptions, verified, cashierVerified, cashierOpen } = toRefs(data);
 /***********************  方法区  ****************************/
 /** 打开抽屉 */
 function open(id) {
@@ -491,12 +531,23 @@ function verifyHandler() {
   rejectHandler();
 }
 
+function cashierVerifyHandler() {
+  cashierOpen.value = true
+}
+
 function rejectHandler() {
   rejectOpen.value = true;
+  rejectForm.value = proxy.deepClone(form.value)
 }
 
 function rejectCancel() {
   rejectOpen.value = false;
+  rejectForm.value = {}
+}
+
+function cashierVerifyCancel() {
+  cashierOpen.value = false
+  cashierForm.value = proxy.deepClone(form.value)
 }
 
 function rejectSubmitHandler() {
@@ -510,23 +561,19 @@ function verifyUpload() {
   // const formValue = proxy.deepClone(form.value);
   // formValue.verifyStatus = status;
   // formValue.status = status;
-  if (form.value.verifyStatus === 0) {
+  if (rejectForm.value.verifyStatus === 0) {
     proxy.$modal.msgError("请选择审核结果");
     return;
   }
-  if (form.value.actuallyDate == null || form.value.actuallyDate === "") {
-    proxy.$modal.msgError("请输入实际支出时间");
-    return;
-  }
   if (
-    form.value.verifyStatus === 2 &&
-    (form.value.verifyComment == null || form.value.verifyComment === "")
+    rejectForm.value.verifyStatus === 2 &&
+    (rejectForm.value.verifyComment == null || rejectForm.value.verifyComment === "")
   ) {
     proxy.$modal.msgError("请输入审核意见");
     return;
   }
-  form.value.paymentStatus = form.value.verifyStatus === 1 ? 1 : 0;
-  verifyPayment(form.value).then((res) => {
+  // rejectForm.value.paymentStatus = rejectForm.value.verifyStatus === 1 ? 1 : 0;
+  verifyPayment(rejectForm.value).then((res) => {
     open(form.value.id);
     getList.value();
     rejectCancel();
@@ -534,6 +581,31 @@ function verifyUpload() {
   });
 }
 
+function cashierVerifyUpload() {
+  if (cashierForm.value.verifyStatus === 1) {
+    proxy.$modal.msgError("请选择审核结果");
+    return;
+  }
+  if (cashierForm.value.actuallyDate == null || cashierForm.value.actuallyDate === "") {
+    proxy.$modal.msgError("0");
+    return;
+  }
+  if (
+    cashierForm.value.verifyStatus === 4 &&
+    (cashierForm.value.verifyComment == null || cashierForm.value.verifyComment === "")
+  ) {
+    proxy.$modal.msgError("请输入审核意见");
+    return;
+  }
+  cashierForm.value.paymentStatus = cashierForm.value.verifyStatus === 3 ? 1 : 0;
+  verifyPayment(cashierForm.value).then((res) => {
+    open(cashierForm.value.id);
+    getList.value();
+    cashierVerifyCancel();
+    proxy.$modal.msg("保存成功");
+  });
+}
+
 /** 文件上传 */
 function upload(param) {
   const fileForm = new FormData();
@@ -670,6 +742,16 @@ function paymentSubjectChange(id) {
   }
 }
 
+function checkPermission(templatePermission) {
+  const all_permission = "*:*:*";
+  const permissions = useUserStore().permissions
+  const hasPermissions = permissions.some(permission => {
+    return all_permission === permission || templatePermission.includes(permission)
+  })
+  console.log(hasPermissions)
+  return hasPermissions
+}
+
 init();
 
 /** 暴露给父组件的方法 */

+ 4 - 2
src/views/business/financial/payment/index.vue

@@ -66,8 +66,10 @@
         </template>
         <template #default="scope">
           <span v-if="scope.row.verifyStatus === 0" style="color: #cd853f">未审核</span>
-          <span v-else-if="scope.row.verifyStatus === 1" style="color: #32cd32">审核通过</span>
-          <span v-else-if="scope.row.verifyStatus === 2" style="color: #dc143c">审核不通过</span>
+          <span v-else-if="scope.row.verifyStatus === 1" style="color: #32cd32">财务审核通过</span>
+          <span v-else-if="scope.row.verifyStatus === 2" style="color: #dc143c">财务审核不通过</span>
+          <span v-else-if="scope.row.verifyStatus === 3" style="color: #32cd32">出纳审核通过</span>
+          <span v-else-if="scope.row.verifyStatus === 4" style="color: #dc143c">出纳审核不通过</span>
         </template>
       </el-table-column>
       <el-table-column v-if="getShowStatus(9)" label="支付状态" min-width="100" prop="arriveStatus" align="center">

+ 13 - 13
src/views/business/housingFund/confirm/index.vue

@@ -23,7 +23,7 @@
       </el-form-item>
       <el-form-item label="月份:">
         <el-select v-model.trim="queryParams.month" size="small" placeholder="月份" style="width: 130px"
-          @change="handleQuery">
+          @change="handleQuery" :clearable="false">
           <el-option v-for="item in selectMonths" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
       </el-form-item>
@@ -33,7 +33,7 @@
           <el-option v-for="item in selectStatus" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
       </el-form-item>
-      <el-form-item label="是否自己负责:">
+      <el-form-item v-if="tenant.versionId !== '4'" label="是否自己负责:">
         <el-switch v-model="oneself" @change="handleOneself" />
       </el-form-item>
       <el-form-item>
@@ -111,35 +111,35 @@
     <view-dialog ref="viewDialogRef" :get-list="getList" />
     <!-- 更多搜索弹窗 -->
     <el-dialog title="更多搜索" v-model="moreSearch" width="620px" append-to-body size="small" draggable>
-      <el-form :model="queryParams" ref="queryRef" :rules="rules" size="small" label-width="100">
+      <el-form :model="queryParams" ref="queryRef" size="small" label-width="100">
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="客户名称:" prop="companyName">
               <el-input v-model="queryParams.companyName" placeholder="请输入客户名称" clearable @keyup.enter="handleQuery" />
             </el-form-item>
-            <el-form-item label="月份:">
-              <el-select v-model.trim="queryParams.month" size="small" placeholder="月份" :clearable="true">
-                <el-option v-for="item in selectMonths" :key="item.value" :label="item.label" :value="item.value" />
-              </el-select>
-            </el-form-item>
             <el-form-item label="纳税性质:" prop="taxType">
               <el-select size="small" v-model="queryParams.taxType" placeholder="请选择纳税性质" :clearable="true"
                 @change="taxTypeChange">
                 <el-option v-for="item in taxTypes" :key="item.label" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
+            <el-form-item v-if="tenant.versionId === '4'" label="来源:" prop="fromCompanyName">
+              <el-input size="small" v-model="queryParams.fromCompanyName" type="text" placeholder="客户来源"
+                :clearable="true" />
+            </el-form-item>
           </el-col>
           <el-col :span="12">
+            <el-form-item label="月份:">
+              <el-select v-model.trim="queryParams.month" size="small" placeholder="月份" :clearable="false">
+                <el-option v-for="item in selectMonths" :key="item.value" :label="item.label" :value="item.value" />
+              </el-select>
+            </el-form-item>
             <el-form-item label="状态:">
               <el-select v-model.trim="queryParams.status" prop="status" size="small" type="text" placeholder="状态"
                 :clearable="true" @clear="clearStatus">
                 <el-option v-for="item in selectStatus" :key="item.value" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
-            <el-form-item label="来源:" prop="fromCompanyName">
-              <el-input size="small" v-model="queryParams.fromCompanyName" type="text" placeholder="客户来源"
-                :clearable="true" />
-            </el-form-item>
           </el-col>
         </el-row>
       </el-form>
@@ -165,7 +165,7 @@ import viewDialog from "./view";
 const { proxy } = getCurrentInstance();
 /** 字典数组区 */
 /** 查询 对象 */
-
+const tenant = useUserStore().tenant
 const list = ref([]);
 const loading = ref(true);
 const oneself = ref(false);

+ 53 - 128
src/views/business/housingFund/confirm/view.vue

@@ -1,12 +1,5 @@
 <template>
-  <el-dialog
-    title="公积金人员信息"
-    v-model="visible"
-    :width="width"
-    append-to-body
-    draggable
-    @close="close"
-  >
+  <el-dialog title="公积金人员信息" v-model="visible" :width="width" append-to-body draggable @close="close">
     <!-- 功能按钮 -->
     <div style="padding: 8px 24px 16px 24px">
       <el-form size="small" label-width="120px" v-model="form">
@@ -21,6 +14,11 @@
               <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>
@@ -58,44 +56,29 @@
             <div class="details-head">
               <div class="title">
                 <i class="fa fa-th-list" aria-hidden="true" /> 人员信息
+                <el-button size="small" @click="printSalary" icon="printer" type="primary">打印</el-button>
+                <el-button size="small" @click="exportSalary" icon="download" type="info">导出</el-button>
               </div>
             </div>
             <div class="details-body">
               <div>
-                <el-table
-                  ref="sourceTable"
-                  :data="form.details"
-                  size="small"
-                  max-height="260px"
-                  border
-                  highlight-current-row
-                  header-row-class-name="list-header-row"
-                  row-class-name="list-row"
-                  @selection-change="handleCheckChange"
-                  @current-change="handleCurrentChange"
-                >
+                <el-table ref="sourceTable" :data="form.details" size="small" max-height="260px" border
+                  highlight-current-row header-row-class-name="list-header-row" row-class-name="list-row"
+                  @selection-change="handleCheckChange" @current-change="handleCurrentChange">
                   <el-table-column type="selection" width="40" align="center" />
-                  <el-table-column
-                    type="index"
-                    label="序号"
-                    width="55"
-                    align="center"
-                  />
+                  <el-table-column type="index" label="序号" width="55" align="center" />
                   <el-table-column label="姓名" width="80" align="center">
                     <template #default="scope">
                       <div>
                         {{ scope.row.employeeName }}
                       </div>
-                      <span
-                        style="
+                      <span style="
                           color: red;
                           position: absolute;
                           z-index: 10;
                           top: 4px;
                           right: 6px;
-                        "
-                        >*</span
-                      >
+                        ">*</span>
                     </template>
                   </el-table-column>
                   <el-table-column label="电话号" width="130" align="center">
@@ -103,74 +86,43 @@
                       <div>
                         {{ scope.row.phone }}
                       </div>
-                      <span
-                        style="
+                      <span style="
                           color: red;
                           position: absolute;
                           z-index: 10;
                           top: 4px;
                           right: 6px;
-                        "
-                        >*</span
-                      >
+                        ">*</span>
                     </template>
                   </el-table-column>
-                  <el-table-column
-                    label="身份证正面"
-                    width="120"
-                    align="center"
-                  >
+                  <el-table-column label="身份证正面" width="120" align="center">
                     <template #default="scope">
-                      <div
-                        class="show-image"
-                        style="display: flex; justify-content: center"
-                      >
-                        <img
-                          class="img"
-                          :src="baseUrl + '/' + scope.row.idCardImage"
-                          alt=""
-                          @click="handleImageView(scope.row.idCardImage)"
-                        />
+                      <div class="show-image" style="display: flex; justify-content: center">
+                        <img class="img" :src="baseUrl + '/' + scope.row.idCardImage" alt=""
+                          @click="handleImageView(scope.row.idCardImage)" />
                       </div>
-                      <span
-                        style="
+                      <span style="
                           color: red;
                           position: absolute;
                           z-index: 10;
                           top: 4px;
                           right: 6px;
-                        "
-                        >*</span
-                      >
+                        ">*</span>
                     </template>
                   </el-table-column>
-                  <el-table-column
-                    label="身份证反面"
-                    width="120"
-                    align="center"
-                  >
+                  <el-table-column label="身份证反面" width="120" align="center">
                     <template #default="scope">
-                      <div
-                        class="show-image"
-                        style="display: flex; justify-content: center"
-                      >
-                        <img
-                          class="img"
-                          :src="baseUrl + '/' + scope.row.idCardImageBack"
-                          alt=""
-                          @click="handleImageView(scope.row.idCardImageBack)"
-                        />
+                      <div class="show-image" style="display: flex; justify-content: center">
+                        <img class="img" :src="baseUrl + '/' + scope.row.idCardImageBack" alt=""
+                          @click="handleImageView(scope.row.idCardImageBack)" />
                       </div>
-                      <span
-                        style="
+                      <span style="
                           color: red;
                           position: absolute;
                           z-index: 10;
                           top: 4px;
                           right: 6px;
-                        "
-                        >*</span
-                      >
+                        ">*</span>
                     </template>
                   </el-table-column>
                   <el-table-column label="基数" width="100" align="center">
@@ -178,31 +130,25 @@
                       <div>
                         {{ scope.row.cardinalNumber }}
                       </div>
-                      <span
-                        style="
+                      <span style="
                           color: red;
                           position: absolute;
                           z-index: 10;
                           top: 4px;
                           right: 6px;
-                        "
-                        >*</span
-                      >
+                        ">*</span>
                     </template>
                   </el-table-column>
                   <el-table-column label="比例" width="100" align="center">
                     <template #default="scope">
                       <div>{{ scope.row.ratio }}%</div>
-                      <span
-                        style="
+                      <span style="
                           color: red;
                           position: absolute;
                           z-index: 10;
                           top: 4px;
                           right: 6px;
-                        "
-                        >*</span
-                      >
+                        ">*</span>
                     </template>
                   </el-table-column>
                   <el-table-column label="备注" header-align="center">
@@ -234,53 +180,23 @@
           </el-col>
           <el-col v-if="showVerify()" :span="24">
             <el-form-item label="备注">
-              <el-input
-                v-model.trim="form.verifyContent"
-                type="textarea"
-                rows="2"
-              />
+              <el-input v-model.trim="form.verifyContent" type="textarea" rows="2" />
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
     </div>
     <div class="form-btns-container" style="height: 40px">
-      <el-button
-        v-show="showVerify()"
-        type="danger"
-        size="small"
-        style="float: right; margin-left: 12px"
-        icon="back"
-        @click="handleVerify(4)"
-      >
-        驳回</el-button
-      >
-      <el-button
-        v-show="showVerify()"
-        type="primary"
-        size="small"
-        icon="check"
-        style="float: right; margin-left: 12px"
-        @click="handleVerify(3)"
-        >审核通过</el-button
-      >
-      <el-button
-        v-show="verifiable() && form.status === 3"
-        type="warning"
-        size="small"
-        icon="back"
-        style="float: right; margin-left: 12px"
-        @click="returnStatus()"
-        >退回</el-button
-      >
+      <el-button v-show="showVerify()" type="danger" size="small" style="float: right; margin-left: 12px" icon="back"
+        @click="handleVerify(4)">
+        驳回</el-button>
+      <el-button v-show="showVerify()" type="primary" size="small" icon="check" style="float: right; margin-left: 12px"
+        @click="handleVerify(3)">审核通过</el-button>
+      <el-button v-show="verifiable() && form.status === 3" type="warning" size="small" icon="back"
+        style="float: right; margin-left: 12px" @click="returnStatus()">退回</el-button>
     </div>
     <feedback-dialog ref="feedbackDialogView" :verify="verify" />
-    <el-image-viewer
-      v-if="showViewer"
-      :url-list="currentFileList"
-      @close="closeImages"
-      :initial-index="showIndex"
-    />
+    <el-image-viewer v-if="showViewer" :url-list="currentFileList" @close="closeImages" :initial-index="showIndex" />
 
     <!-- <print-dialog ref="printDialog" /> -->
   </el-dialog>
@@ -290,6 +206,8 @@ import {
   getDetail,
   verifyDetail,
   turnBackDetail,
+  exportHousingFundConfirmEmployee,
+  exportHousingFundConfirmPdf,
 } from "@/api/business/production/housingFundConfirm";
 import feedbackDialog from "../feedbackDialog.vue";
 import useUserStore from "@/store/modules/user";
@@ -326,7 +244,7 @@ const confirmChoices = ref([
 const props = defineProps({
   getList: {
     type: Function,
-    default: () => {},
+    default: () => { },
   },
 });
 
@@ -404,8 +322,15 @@ function reset() {
   total.value = 0;
 }
 
-function printSalary() {}
-function exportSalary() {}
+//人员信息打印
+function printSalary() {
+  exportHousingFundConfirmPdf(form.value.id);
+}
+
+//人员信息导出
+function exportSalary() {
+  exportHousingFundConfirmEmployee(form.value.id);
+}
 
 function showVerify() {
   if (

+ 65 - 225
src/views/business/housingFund/declare/index.vue

@@ -8,13 +8,8 @@
         </el-button>
         <template #dropdown>
           <el-dropdown-menu>
-            <el-dropdown-item
-              icon="Download"
-              @click="handleExport"
-              v-hasPermi="['business:deposit:export']"
-            >
-              导出</el-dropdown-item
-            >
+            <el-dropdown-item icon="Download" @click="handleExport" v-hasPermi="['business:deposit:export']">
+              导出</el-dropdown-item>
             <!-- <el-dropdown-item type="warning" size="small" icon="Download" @click="handleArea"
               v-hasPermi="['business:deposit:export']"> area</el-dropdown-item> -->
           </el-dropdown-menu>
@@ -22,132 +17,61 @@
       </el-dropdown>
     </div>
     <!-- 搜索区 -->
-    <el-form
-      class="list-search-container"
-      size="small"
-      :model="queryParams"
-      ref="queryRef"
-      :inline="true"
-      label-width="78px"
-    >
+    <el-form class="list-search-container" size="small" :model="queryParams" ref="queryRef" :inline="true"
+      label-width="78px">
       <el-form-item label="客户名称:" prop="companyName">
-        <el-input
-          v-model="queryParams.companyName"
-          placeholder="请输入客户名称"
-          clearable
-          @keyup.enter="handleQuery"
-        />
+        <el-input v-model="queryParams.companyName" placeholder="请输入客户名称" clearable style="width: 150px"
+          @keyup.enter="handleQuery" />
       </el-form-item>
       <el-form-item label="所属月:">
-        <el-date-picker
-          v-model="currentMonth"
-          type="month"
-          format="YYYY年MM月"
-          :clearable="false"
-          value-format="YYYY-MM-01"
-          @change="currentMonthChange"
-          :disabled-date="disabledDateHandler"
-        />
+        <el-date-picker v-model="currentMonth" type="month" format="YYYY年MM月" :clearable="false" value-format="YYYY-MM-01"
+          @change="currentMonthChange" :disabled-date="disabledDateHandler" />
       </el-form-item>
       <el-form-item label="状态:">
-        <el-select
-          v-model.trim="queryParams.status"
-          prop="status"
-          size="small"
-          type="text"
-          placeholder="状态"
-          :clearable="true"
-          style="width: 130px"
-          @clear="clearStatus"
-        >
-          <el-option
-            v-for="item in selectStatus"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          />
+        <el-select v-model.trim="queryParams.status" prop="status" size="small" type="text" placeholder="状态"
+          :clearable="true" style="width: 130px" @clear="clearStatus">
+          <el-option v-for="item in selectStatus" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
       </el-form-item>
-      <el-form-item label="是否自己负责:">
+      <el-form-item v-if="tenant.versionId !== '4'" label="是否自己负责:">
         <el-switch v-model="oneself" @change="handleOneself" />
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" icon="Search" @click="handleQuery"
-          >搜索</el-button
-        >
+        <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
         <el-button icon="operation" @click="moreSearch = true">更多</el-button>
         <el-button icon="Refresh" @click="resetQuery">重置</el-button>
       </el-form-item>
     </el-form>
 
     <!-- 列表区 -->
-    <el-table
-      v-loading="loading"
-      :data="orderList"
-      size="small"
-      border
-      height="100%"
-      @selection-change="handleSelectionChange"
-    >
+    <el-table v-loading="loading" :data="orderList" size="small" border height="100%"
+      @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column
-        label="客户名称"
-        min-width="250"
-        align="center"
-        prop="companyName"
-      />
-      <el-table-column
-        label="来源"
-        min-width="100"
-        align="center"
-        prop="fromCompanyName"
-      />
-      <el-table-column
-        label="纳税性质"
-        width="100"
-        align="center"
-        prop="taxType"
-      />
+      <el-table-column label="客户名称" min-width="250" align="center" prop="companyName" />
+      <el-table-column label="来源" min-width="100" align="center" prop="fromCompanyName" />
+      <el-table-column label="纳税性质" width="100" align="center" prop="taxType" />
       <el-table-column label="人员信息" width="100" align="center" prop="">
         <template #default="scope">
-          <el-button
-            v-if="scope.row.detail != null"
-            link
-            type="primary"
-            size="small"
-            @click="showMember(scope.row)"
-            >查看</el-button
-          >
+          <el-button v-if="scope.row.detail != null" link type="primary" size="small"
+            @click="showMember(scope.row)">查看</el-button>
         </template>
       </el-table-column>
       <el-table-column label="申报填写" width="100" align="center" prop="">
         <template #default="scope">
-          <el-button
-            link
-            type="primary"
-            size="small"
-            v-hasPermi="['business:housingFundConfirm:verify']"
-            @click="fillIn(scope.row)"
-            >{{
+          <el-button link type="primary" size="small" v-hasPermi="['business:housingFundConfirm:verify']"
+            @click="fillIn(scope.row)">{{
               scope.row.detail == null
-                ? "填写"
-                : scope.row.detail.status === 1
+              ? "填写"
+              : scope.row.detail.status === 1
                 ? "进行中"
                 : "已填写"
-            }}</el-button
-          >
+            }}</el-button>
         </template>
       </el-table-column>
       <el-table-column label="申报附件" width="100" align="center" prop="">
         <template #default="scope">
-          <el-button
-            size="small"
-            type="primary"
-            link
-            :disabled="scope.row.detail == null || scope.row.detail.status <= 1"
-            @click="showFiles(scope.row)"
-            >查看文件</el-button
-          >
+          <el-button size="small" type="primary" link :disabled="scope.row.detail == null || scope.row.detail.status <= 1"
+            @click="showFiles(scope.row)">查看文件</el-button>
         </template>
       </el-table-column>
       <el-table-column label="状态" width="110" align="center" prop="">
@@ -156,36 +80,28 @@
             {{ getStatusLabel(scope.row) }}
             <el-popover placement="top-start" width="250" trigger="hover">
               <div style="display: flex; flex-direction: row">
-                <div
-                  v-for="item in selectStatus"
-                  :key="item.value"
-                  style="display: flex; flex-direction: row; margin-right: 10px"
-                >
-                  <div
-                    :style="{
-                      backgroundColor: item.color,
-                      width: '14px',
-                      height: '14px',
-                      margin: 'auto',
-                      borderRadius: '50%',
-                      border: item.color === '#fff' ? '1px solid #ddd' : 'none',
-                    }"
-                  />
-                  <div
-                    style="
+                <div v-for="item in selectStatus" :key="item.value"
+                  style="display: flex; flex-direction: row; margin-right: 10px">
+                  <div :style="{
+                    backgroundColor: item.color,
+                    width: '14px',
+                    height: '14px',
+                    margin: 'auto',
+                    borderRadius: '50%',
+                    border: item.color === '#fff' ? '1px solid #ddd' : 'none',
+                  }" />
+                  <div style="
                       display: inline-block;
                       margin-left: 10px;
                       line-height: 36px;
                       font-size: 10px;
-                    "
-                  >
+                    ">
                     {{ item.label }}
                   </div>
                 </div>
               </div>
               <template #reference>
-                <span
-                  style="
+                <span style="
                     color: #fff;
                     font-size: 12px;
                     text-align: center;
@@ -195,9 +111,7 @@
                     height: 14px;
                     background-color: #ccc;
                     border-radius: 50%;
-                  "
-                  >?</span
-                >
+                  ">?</span>
               </template>
             </el-popover>
           </div>
@@ -206,129 +120,55 @@
       <el-table-column label="执行人" width="80" align="center" prop="" />
       <el-table-column label="操作" width="80" align="center" prop="">
         <template #default="scope">
-          <el-button
-            size="small"
-            type="primary"
-            link
-            :disabled="
-              scope.row.detail == null || scope.row.detail.status !== 3
-            "
-            v-hasPermi="['business:housingFundConfirm:verify']"
-            @click="turnBack(scope.row.detail)"
-            >退回</el-button
-          >
+          <el-button size="small" type="primary" link :disabled="scope.row.detail == null || scope.row.detail.status !== 3
+            " v-hasPermi="['business:housingFundConfirm:verify']" @click="turnBack(scope.row.detail)">退回</el-button>
         </template>
       </el-table-column>
     </el-table>
     <!-- 分页 -->
-    <pagination
-      v-show="total > 0"
-      :total="total"
-      v-model:page="queryParams.pageNum"
-      v-model:limit="queryParams.pageSize"
-      @pagination="getList"
-    />
+    <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
+      @pagination="getList" />
     <form-dialog ref="formDialogRef" :get-list="getList" />
     <view-dialog ref="viewDialogRef" :get-list="getList" />
     <member-dialog ref="memeberDialogRef" :get-list="getList" />
     <FileListDialog ref="fileListDialogRef" :get-list="getList" />
     <!-- 更多搜索弹窗 -->
-    <el-dialog
-      title="更多搜索"
-      v-model="moreSearch"
-      width="620px"
-      append-to-body
-      size="small"
-      draggable
-    >
-      <el-form
-        :model="queryParams"
-        ref="queryRef"
-        size="small"
-        :rules="rules"
-        label-width="100"
-      >
+    <el-dialog title="更多搜索" v-model="moreSearch" width="620px" append-to-body size="small" draggable>
+      <el-form :model="queryParams" ref="queryRef" size="small" label-width="100">
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="客户名称:" prop="companyName">
-              <el-input
-                v-model="queryParams.companyName"
-                placeholder="请输入客户名称"
-                clearable
-                @keyup.enter="handleQuery"
-              />
-            </el-form-item>
-            <el-form-item label="所属月:">
-              <el-date-picker
-                v-model="currentMonth"
-                type="month"
-                format="YYYY年MM月"
-                :clearable="false"
-                value-format="YYYY-MM-01"
-                @change="currentMonthChange"
-                :disabled-date="disabledDateHandler"
-              />
+              <el-input v-model="queryParams.companyName" placeholder="请输入客户名称" clearable @keyup.enter="handleQuery" />
             </el-form-item>
             <el-form-item label="纳税性质:" prop="taxType">
-              <el-select
-                size="small"
-                v-model="queryParams.taxType"
-                placeholder="请选择纳税性质"
-                :clearable="true"
-                @change="taxTypeChange"
-              >
-                <el-option
-                  v-for="item in taxTypes"
-                  :key="item.label"
-                  :label="item.label"
-                  :value="item.value"
-                />
+              <el-select size="small" v-model="queryParams.taxType" placeholder="请选择纳税性质" :clearable="true"
+                @change="taxTypeChange">
+                <el-option v-for="item in taxTypes" :key="item.label" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
+            <el-form-item v-if="tenant.versionId === '4'" label="来源:" prop="fromCompanyName">
+              <el-input size="small" v-model="queryParams.fromCompanyName" type="text" placeholder="客户来源"
+                :clearable="true" />
+            </el-form-item>
           </el-col>
           <el-col :span="12">
+            <el-form-item label="所属月:">
+              <el-date-picker v-model="currentMonth" type="month" format="YYYY年MM月" :clearable="false"
+                value-format="YYYY-MM-01" @change="currentMonthChange" :disabled-date="disabledDateHandler" />
+            </el-form-item>
             <el-form-item label="状态:">
-              <el-select
-                v-model.trim="queryParams.status"
-                prop="status"
-                size="small"
-                type="text"
-                placeholder="状态"
-                :clearable="true"
-                @clear="clearStatus"
-              >
-                <el-option
-                  v-for="item in selectStatus"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                />
+              <el-select v-model.trim="queryParams.status" prop="status" size="small" type="text" placeholder="状态"
+                :clearable="true" @clear="clearStatus">
+                <el-option v-for="item in selectStatus" :key="item.value" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
-            <el-form-item label="来源:" prop="fromCompanyName">
-              <el-input
-                size="small"
-                v-model="queryParams.fromCompanyName"
-                type="text"
-                placeholder="客户来源"
-                :clearable="true"
-              />
-            </el-form-item>
           </el-col>
         </el-row>
       </el-form>
       <template #footer>
         <div class="dialog-footer">
-          <el-button
-            type="primary"
-            icon="Finished"
-            size="small"
-            @click="handleQuery"
-            >确 定</el-button
-          >
-          <el-button icon="close" size="small" @click="moreSearch = false"
-            >取 消</el-button
-          >
+          <el-button type="primary" icon="Finished" size="small" @click="handleQuery">确 定</el-button>
+          <el-button icon="close" size="small" @click="moreSearch = false">取 消</el-button>
         </div>
       </template>
     </el-dialog>
@@ -352,7 +192,7 @@ import FileListDialog from "../fileListDialog.vue";
 const { proxy } = getCurrentInstance();
 /** 字典数组区 */
 /** 查询 对象 */
-
+const tenant = useUserStore().tenant
 const orderList = ref([]);
 const loading = ref(true);
 const ids = ref([]);

+ 231 - 64
src/views/business/production/IndividualIncomeTaxIs/index.vue

@@ -1,62 +1,142 @@
 <template>
   <div class="page-container list-container">
     <!-- 搜索区 -->
-    <el-form class="list-search-container" size="small" :model="queryParams" ref="queryRef" :inline="true"
-      label-width="78px">
+    <el-form
+      class="list-search-container"
+      size="small"
+      :model="queryParams"
+      ref="queryRef"
+      :inline="true"
+      label-width="78px"
+    >
       <el-form-item label="客户名称:">
-        <el-input v-model="queryParams.companyName" type="text" placeholder="请输入客户名称" :clearable="true"
-          style="width: 220px" />
+        <el-input
+          v-model="queryParams.companyName"
+          type="text"
+          placeholder="请输入客户名称"
+          :clearable="true"
+          style="width: 220px"
+        />
       </el-form-item>
       <el-form-item label="个税所属期:" prop="year">
-        <el-date-picker v-model="currentMonth" type="month" format="YYYY年MM月" style="width: 120px"
-          value-format="YYYY-MM-01" :disabled-date="disabledDateHandler" @change="monthChangeHandler" />
+        <el-date-picker
+          v-model="currentMonth"
+          type="month"
+          format="YYYY年MM月"
+          style="width: 120px"
+          :clearable="false"
+          value-format="YYYY-MM-01"
+          :disabled-date="disabledDateHandler"
+          @change="monthChangeHandler"
+        />
       </el-form-item>
       <el-form-item label="个税状态:">
-        <el-select v-model="queryParams.status" type="text" placeholder="状态" :clearable="true" style="width: 130px">
-          <el-option v-for="item in selectStatus" :key="item.value" :label="item.label" :value="item.value" />
+        <el-select
+          v-model="queryParams.status"
+          type="text"
+          placeholder="状态"
+          :clearable="true"
+          style="width: 130px"
+        >
+          <el-option
+            v-for="item in selectStatus"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
         </el-select>
       </el-form-item>
 
-      <el-form-item label="是否自己负责:">
+      <el-form-item v-if="tenant.versionId !== '4'" label="是否自己负责:">
         <el-switch v-model="oneself" @change="handleOneself" />
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
+        <el-button type="primary" icon="Search" @click="handleQuery"
+          >搜索</el-button
+        >
         <el-button icon="Operation" @click="moreSearch = true">更多</el-button>
         <el-button icon="Refresh" @click="resetQuery">重置</el-button>
       </el-form-item>
     </el-form>
 
     <!-- 列表区 -->
-    <el-table v-loading="loading" :data="detailList" size="small" border height="100%"
-      @selection-change="handleSelectionChange">
+    <el-table
+      v-loading="loading"
+      :data="detailList"
+      size="small"
+      border
+      height="100%"
+      @selection-change="handleSelectionChange"
+    >
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="客户名称" align="center" prop="companyName" min-width="250" />
-      <el-table-column label="来源" align="center" prop="fromCompanyName" width="180" />
-      <el-table-column label="税号" align="center" prop="socialCreditCode" width="180" />
-      <el-table-column label="纳税性质" align="center" width="100" prop="taxType" />
+      <el-table-column
+        label="客户名称"
+        align="center"
+        prop="companyName"
+        min-width="250"
+      />
+      <el-table-column
+        label="来源"
+        align="center"
+        prop="fromCompanyName"
+        width="180"
+      />
+      <el-table-column
+        label="税号"
+        align="center"
+        prop="socialCreditCode"
+        width="180"
+      />
+      <el-table-column
+        label="纳税性质"
+        align="center"
+        width="100"
+        prop="taxType"
+      />
       <el-table-column label="人员信息" align="center">
         <template #default="scope">
-          <el-button v-show="scope.row.detail != null" link type="primary" size="small" @click="showMember(scope.row)"
-            v-hasPermi="['business:tax:wageList']">查看</el-button>
+          <el-button
+            v-show="scope.row.detail != null"
+            link
+            type="primary"
+            size="small"
+            @click="showMember(scope.row)"
+            v-hasPermi="['business:tax:wageList']"
+            >查看</el-button
+          >
         </template>
       </el-table-column>
       <el-table-column label="个税填写" align="center" prop="evidenceFile">
         <template #default="scope">
-          <el-button type="primary" link size="small" v-hasPermi="['business:individualIncomeTaxDetail:saveDetail']"
-            @click="fillIn(scope.row)">{{
+          <el-button
+            type="primary"
+            link
+            size="small"
+            v-hasPermi="['business:individualIncomeTaxDetail:saveDetail']"
+            @click="fillIn(scope.row)"
+            >{{
               scope.row.detail == null
-              ? "填写"
-              : scope.row.detail.status === 1
+                ? "填写"
+                : scope.row.detail.status === 1
                 ? "进行中"
                 : "已填写"
-            }}</el-button>
+            }}</el-button
+          >
         </template>
       </el-table-column>
       <el-table-column label="个税附件" align="center" prop="content">
         <template #default="scope">
-          <el-button type="primary" link size="small" v-hasPermi="['business:individualIncomeTaxDetail:query']" :disabled="scope.row.detail == null || scope.row.detail.evidenceFile === ''
-            " @click="showFiles(scope.row)">查看文件</el-button>
+          <el-button
+            type="primary"
+            link
+            size="small"
+            v-hasPermi="['business:individualIncomeTaxDetail:query']"
+            :disabled="
+              scope.row.detail == null || scope.row.detail.evidenceFile === ''
+            "
+            @click="showFiles(scope.row)"
+            >查看文件</el-button
+          >
         </template>
       </el-table-column>
       <el-table-column label="状态" align="center" prop="verifyContent">
@@ -65,28 +145,36 @@
             {{ getStatusLabel(scope.row) }}
             <el-popover placement="top-start" width="250" trigger="hover">
               <div style="display: flex; flex-direction: row">
-                <div v-for="item in selectStatus" :key="item.value"
-                  style="display: flex; flex-direction: row; margin-right: 10px">
-                  <div :style="{
-                    backgroundColor: item.color,
-                    width: '14px',
-                    height: '14px',
-                    margin: 'auto',
-                    borderRadius: '50%',
-                    border: item.color === '#fff' ? '1px solid #ddd' : 'none',
-                  }" />
-                  <div style="
+                <div
+                  v-for="item in selectStatus"
+                  :key="item.value"
+                  style="display: flex; flex-direction: row; margin-right: 10px"
+                >
+                  <div
+                    :style="{
+                      backgroundColor: item.color,
+                      width: '14px',
+                      height: '14px',
+                      margin: 'auto',
+                      borderRadius: '50%',
+                      border: item.color === '#fff' ? '1px solid #ddd' : 'none',
+                    }"
+                  />
+                  <div
+                    style="
                       display: inline-block;
                       margin-left: 10px;
                       line-height: 36px;
                       font-size: 10px;
-                    ">
+                    "
+                  >
                     {{ item.label }}
                   </div>
                 </div>
               </div>
               <template #reference>
-                <span style="
+                <span
+                  style="
                     color: #fff;
                     font-size: 12px;
                     text-align: center;
@@ -96,71 +184,149 @@
                     height: 14px;
                     background-color: #ccc;
                     border-radius: 50%;
-                  ">?</span>
+                  "
+                  >?</span
+                >
               </template>
             </el-popover>
           </div>
         </template>
       </el-table-column>
       <el-table-column label="执行人" align="center" prop="serviceName" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
         <template #default="scope">
-          <el-button size="small" type="text" :disabled="scope.row.detail == null || scope.row.detail.status !== 3
-            " @click="turnBack(scope.row.detail)" v-hasPermi="[
-    'business:individualIncomeTaxDetail:deductionTurnBack',
-  ]">退回</el-button>
+          <el-button
+            size="small"
+            type="text"
+            :disabled="
+              scope.row.detail == null || scope.row.detail.status !== 3
+            "
+            @click="turnBack(scope.row.detail)"
+            v-hasPermi="[
+              'business:individualIncomeTaxDetail:deductionTurnBack',
+            ]"
+            >退回</el-button
+          >
         </template>
       </el-table-column>
     </el-table>
 
     <!-- 分页 -->
-    <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
-      @pagination="getList" />
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      v-model:page="queryParams.pageNum"
+      v-model:limit="queryParams.pageSize"
+      @pagination="getList"
+    />
 
     <!-- 表单 -->
     <MemberDialog ref="memberDialog" :get-list="getList"></MemberDialog>
     <FormDialog ref="fromDialog" :get-list="getList"></FormDialog>
 
     <!-- 更多搜索弹窗 -->
-    <el-dialog title="更多搜索" v-model="moreSearch" width="620px" append-to-body size="small" draggable>
-      <el-form ref="dictRef" label-width="100">
+    <el-dialog
+      title="更多搜索"
+      v-model="moreSearch"
+      width="620px"
+      append-to-body
+      size="small"
+      draggable
+    >
+      <el-form ref="dictRef" size="small" label-width="100">
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="报税所属期:" prop="year">
-              <el-date-picker size="small" v-model="currentMonth" type="month" format="YYYY年MM月" value-format="YYYY-MM-01"
-                :disabled-date="disabledDateHandler" @change="monthChangeHandler" />
+              <el-date-picker
+                size="small"
+                v-model="currentMonth"
+                type="month"
+                format="YYYY年MM月"
+                value-format="YYYY-MM-01"
+                :disabled-date="disabledDateHandler"
+                @change="monthChangeHandler"
+                :clearable="false"
+              />
             </el-form-item>
             <el-form-item label="纳税性质:" prop="taxType">
-              <el-select size="small" v-model="queryParams.taxType" placeholder="请选择纳税性质" :clearable="true">
-                <el-option v-for="item in taxTypes" :key="item.label" :label="item.label" :value="item.value" />
+              <el-select
+                size="small"
+                v-model="queryParams.taxType"
+                placeholder="请选择纳税性质"
+                :clearable="true"
+              >
+                <el-option
+                  v-for="item in taxTypes"
+                  :key="item.label"
+                  :label="item.label"
+                  :value="item.value"
+                />
               </el-select>
             </el-form-item>
             <el-form-item label="个税状态:">
-              <el-select size="small" v-model="queryParams.status" type="text" placeholder="状态" :clearable="true">
-                <el-option v-for="item in selectStatus" :key="item.value" :label="item.label" :value="item.value" />
+              <el-select
+                size="small"
+                v-model="queryParams.status"
+                type="text"
+                placeholder="状态"
+                :clearable="true"
+              >
+                <el-option
+                  v-for="item in selectStatus"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="关键字:">
-              <el-input size="small" v-model="queryParams.companyName" type="text" placeholder="请输入客户名称"
-                :clearable="true" />
+              <el-input
+                size="small"
+                v-model="queryParams.companyName"
+                type="text"
+                placeholder="请输入客户名称"
+                :clearable="true"
+              />
             </el-form-item>
-            <el-form-item label="来源:">
-              <el-input v-model="queryParams.fromCompanyName" size="small" type="text" placeholder="请输入客户来源"
-                :clearable="true" />
+            <el-form-item v-if="tenant.versionId === '4'" label="来源:">
+              <el-input
+                v-model="queryParams.fromCompanyName"
+                size="small"
+                type="text"
+                placeholder="请输入客户来源"
+                :clearable="true"
+              />
             </el-form-item>
             <el-form-item label="税号:">
-              <el-input size="small" v-model="queryParams.socialCreditCode" type="text" placeholder="请输入税号"
-                :clearable="true" />
+              <el-input
+                size="small"
+                v-model="queryParams.socialCreditCode"
+                type="text"
+                placeholder="请输入税号"
+                :clearable="true"
+              />
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
       <template #footer>
         <div class="dialog-footer">
-          <el-button type="primary" icon="Finished" size="small" @click="handleQuery">确 定</el-button>
-          <el-button icon="close" size="small" @click="moreSearch = false">取 消</el-button>
+          <el-button
+            type="primary"
+            icon="Finished"
+            size="small"
+            @click="handleQuery"
+            >确 定</el-button
+          >
+          <el-button icon="close" size="small" @click="moreSearch = false"
+            >取 消</el-button
+          >
         </div>
       </template>
     </el-dialog>
@@ -179,6 +345,7 @@ import FormDialog from "./FormDialog.vue";
 import useUserStore from "@/store/modules/user";
 
 const { proxy } = getCurrentInstance();
+const tenant = useUserStore().tenant;
 /** 字典数组区 */
 /** 查询 对象 */
 
@@ -346,7 +513,7 @@ function resetQuery() {
     socialCreditCode: null,
     taxType: null,
     currentEmployeeName: null,
-    year: proxy.moment().format("YYYY"),
+    year: proxy.moment().subtract(1, "month").format("YYYY"),
     month: proxy.moment().subtract(1, "month").format("MM"),
   };
   currentMonth.value = proxy.moment().subtract(1, "month").format("YYYY-MM-01");

+ 244 - 63
src/views/business/production/IndividualIncomeTaxIsZero/index.vue

@@ -21,61 +21,150 @@
 
   <div class="page-container list-container">
     <!-- 搜索区 -->
-    <el-form class="list-search-container" size="small" :model="queryParams" ref="queryRef" :inline="true"
-      label-width="80px">
+    <el-form
+      class="list-search-container"
+      size="small"
+      :model="queryParams"
+      ref="queryRef"
+      :inline="true"
+      label-width="80px"
+    >
       <el-form-item label="客户名称:">
-        <el-input v-model="queryParams.companyName" placeholder="请输入客户名称" :clearable="true" style="width: 220px" />
+        <el-input
+          v-model="queryParams.companyName"
+          placeholder="请输入客户名称"
+          :clearable="true"
+          style="width: 220px"
+        />
       </el-form-item>
       <el-form-item label="个税所属期:" prop="year">
-        <el-date-picker v-model="currentMonth" type="month" format="YYYY年MM月" style="width: 120px"
-          value-format="YYYY-MM-01" :disabled-date="disabledDateHandler" @change="monthChangeHandler" />
+        <el-date-picker
+          v-model="currentMonth"
+          type="month"
+          format="YYYY年MM月"
+          style="width: 120px"
+          value-format="YYYY-MM-01"
+          :disabled-date="disabledDateHandler"
+          @change="monthChangeHandler"
+          :clearable="false"
+        />
       </el-form-item>
       <el-form-item label="个税状态:">
-        <el-select v-model="queryParams.status" placeholder="状态" :clearable="true" style="width: 130px">
-          <el-option v-for="item in selectStatus" :key="item.value" :label="item.label" :value="item.value" />
+        <el-select
+          v-model="queryParams.status"
+          placeholder="状态"
+          :clearable="true"
+          style="width: 130px"
+        >
+          <el-option
+            v-for="item in selectStatus"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
         </el-select>
       </el-form-item>
 
-      <el-form-item label="是否自己负责:">
+      <el-form-item v-if="tenant.versionId !== '4'" label="是否自己负责:">
         <el-switch v-model="oneself" @change="handleOneself" />
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
+        <el-button type="primary" icon="Search" @click="handleQuery"
+          >搜索</el-button
+        >
         <el-button icon="operation" @click="moreSearch = true">更多</el-button>
         <el-button icon="Refresh" @click="resetQuery">重置</el-button>
       </el-form-item>
     </el-form>
 
     <!-- 列表区 -->
-    <el-table v-loading="loading" :data="detailList" size="small" border height="100%"
-      @selection-change="handleSelectionChange">
+    <el-table
+      v-loading="loading"
+      :data="detailList"
+      size="small"
+      border
+      height="100%"
+      @selection-change="handleSelectionChange"
+    >
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="客户名称" align="center" prop="companyName" min-width="250" />
-      <el-table-column label="来源" align="center" prop="fromCompanyName" min-width="100" />
-      <el-table-column label="税号" align="center" prop="socialCreditCode" min-width="180" />
-      <el-table-column label="纳税性质" align="center" width="100" prop="taxType" />
+      <el-table-column
+        label="客户名称"
+        align="center"
+        prop="companyName"
+        min-width="250"
+      />
+      <el-table-column
+        label="来源"
+        align="center"
+        prop="fromCompanyName"
+        min-width="100"
+      />
+      <el-table-column
+        label="税号"
+        align="center"
+        prop="socialCreditCode"
+        min-width="180"
+      />
+      <el-table-column
+        label="纳税性质"
+        align="center"
+        width="100"
+        prop="taxType"
+      />
       <el-table-column label="人员信息" min-width="60" align="center">
         <template #default="scope">
-          <el-button v-show="scope.row.detail != null" link type="primary" size="small" @click="showMember(scope.row)"
-            v-hasPermi="['business:tax:wageList']">查看</el-button>
+          <el-button
+            v-show="scope.row.detail != null"
+            link
+            type="primary"
+            size="small"
+            @click="showMember(scope.row)"
+            v-hasPermi="['business:tax:wageList']"
+            >查看</el-button
+          >
         </template>
       </el-table-column>
-      <el-table-column label="个税填写" align="center" min-width="80" prop="evidenceFile">
+      <el-table-column
+        label="个税填写"
+        align="center"
+        min-width="80"
+        prop="evidenceFile"
+      >
         <template #default="scope">
-          <el-button link type="primary" size="small" @click="fillIn(scope.row)"
-            v-hasPermi="['business:individualIncomeTaxDetail:saveDetail']">{{
+          <el-button
+            link
+            type="primary"
+            size="small"
+            @click="fillIn(scope.row)"
+            v-hasPermi="['business:individualIncomeTaxDetail:saveDetail']"
+            >{{
               scope.row.detail == null
-              ? "填写"
-              : scope.row.detail.status === 1
+                ? "填写"
+                : scope.row.detail.status === 1
                 ? "进行中"
                 : "已填写"
-            }}</el-button>
+            }}</el-button
+          >
         </template>
       </el-table-column>
-      <el-table-column label="个税附件" align="center" min-width="90" prop="content">
+      <el-table-column
+        label="个税附件"
+        align="center"
+        min-width="90"
+        prop="content"
+      >
         <template #default="scope">
-          <el-button size="small" link type="primary" v-hasPermi="['business:individualIncomeTaxDetail:query']" :disabled="scope.row.detail == null || scope.row.detail.evidenceFile === ''
-            " @click="showFiles(scope.row)">查看文件</el-button>
+          <el-button
+            size="small"
+            link
+            type="primary"
+            v-hasPermi="['business:individualIncomeTaxDetail:query']"
+            :disabled="
+              scope.row.detail == null || scope.row.detail.evidenceFile === ''
+            "
+            @click="showFiles(scope.row)"
+            >查看文件</el-button
+          >
         </template>
       </el-table-column>
       <el-table-column label="状态" align="center" min-width="80" prop="">
@@ -84,28 +173,36 @@
             {{ getStatusLabel(scope.row) }}
             <el-popover placement="top-start" width="250" trigger="hover">
               <div style="display: flex; flex-direction: row">
-                <div v-for="item in selectStatus" :key="item.value"
-                  style="display: flex; flex-direction: row; margin-right: 10px">
-                  <div :style="{
-                    backgroundColor: item.color,
-                    width: '14px',
-                    height: '14px',
-                    margin: 'auto',
-                    borderRadius: '50%',
-                    border: item.color === '#fff' ? '1px solid #ddd' : 'none',
-                  }" />
-                  <div style="
+                <div
+                  v-for="item in selectStatus"
+                  :key="item.value"
+                  style="display: flex; flex-direction: row; margin-right: 10px"
+                >
+                  <div
+                    :style="{
+                      backgroundColor: item.color,
+                      width: '14px',
+                      height: '14px',
+                      margin: 'auto',
+                      borderRadius: '50%',
+                      border: item.color === '#fff' ? '1px solid #ddd' : 'none',
+                    }"
+                  />
+                  <div
+                    style="
                       display: inline-block;
                       margin-left: 10px;
                       line-height: 36px;
                       font-size: 10px;
-                    ">
+                    "
+                  >
                     {{ item.label }}
                   </div>
                 </div>
               </div>
               <template #reference>
-                <span style="
+                <span
+                  style="
                     color: #fff;
                     font-size: 12px;
                     text-align: center;
@@ -115,66 +212,150 @@
                     height: 14px;
                     background-color: #ccc;
                     border-radius: 50%;
-                  ">?</span>
+                  "
+                  >?</span
+                >
               </template>
             </el-popover>
           </div>
         </template>
       </el-table-column>
-      <el-table-column label="执行人" align="center" min-width="100" prop="serviceName" />
-      <el-table-column label="操作" align="center" min-width="80" fixed="right" class-name="small-padding fixed-width">
+      <el-table-column
+        label="执行人"
+        align="center"
+        min-width="100"
+        prop="serviceName"
+      />
+      <el-table-column
+        label="操作"
+        align="center"
+        min-width="80"
+        fixed="right"
+        class-name="small-padding fixed-width"
+      >
         <template #default="scope">
-          <el-button size="small" link type="primary" :disabled="scope.row.detail == null || scope.row.detail.status !== 3
-            " @click="turnBack(scope.row)"
-            v-hasPermi="['business:individualIncomeTaxDetail:saveDetail']">退回</el-button>
+          <el-button
+            size="small"
+            link
+            type="primary"
+            :disabled="
+              scope.row.detail == null || scope.row.detail.status !== 3
+            "
+            @click="turnBack(scope.row)"
+            v-hasPermi="['business:individualIncomeTaxDetail:saveDetail']"
+            >退回</el-button
+          >
         </template>
       </el-table-column>
     </el-table>
 
     <!-- 分页 -->
-    <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
-      @pagination="getList" />
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      v-model:page="queryParams.pageNum"
+      v-model:limit="queryParams.pageSize"
+      @pagination="getList"
+    />
 
     <!-- 表单 -->
     <MemberDialog ref="memberDialog" :get-list="getList"></MemberDialog>
     <FormDialog ref="fromDialog" :get-list="getList"></FormDialog>
     <!-- 更多搜索弹窗 -->
-    <el-dialog title="更多搜索" v-model="moreSearch" width="620px" size="small" append-to-body draggable>
-      <el-form ref="dictRef" label-width="100">
+    <el-dialog
+      title="更多搜索"
+      v-model="moreSearch"
+      width="620px"
+      size="small"
+      append-to-body
+      draggable
+    >
+      <el-form ref="dictRef" size="small" label-width="100">
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="个税所属期:" prop="year">
-              <el-date-picker size="small" v-model="currentMonth" type="month" format="YYYY年MM月" value-format="YYYY-MM-01"
-                :disabled-date="disabledDateHandler" @change="monthChangeHandler" />
+              <el-date-picker
+                size="small"
+                v-model="currentMonth"
+                type="month"
+                format="YYYY年MM月"
+                value-format="YYYY-MM-01"
+                :disabled-date="disabledDateHandler"
+                @change="monthChangeHandler"
+                :clearable="false"
+              />
             </el-form-item>
             <el-form-item label="纳税性质:" prop="taxType">
-              <el-select size="small" v-model="queryParams.taxType" placeholder="请选择纳税性质" :clearable="true">
-                <el-option v-for="item in taxTypes" :key="item.label" :label="item.label" :value="item.value" />
+              <el-select
+                size="small"
+                v-model="queryParams.taxType"
+                placeholder="请选择纳税性质"
+                :clearable="true"
+              >
+                <el-option
+                  v-for="item in taxTypes"
+                  :key="item.label"
+                  :label="item.label"
+                  :value="item.value"
+                />
               </el-select>
             </el-form-item>
             <el-form-item label="个税状态:">
-              <el-select size="small" v-model="queryParams.status" placeholder="状态" :clearable="true">
-                <el-option v-for="item in selectStatus" :key="item.value" :label="item.label" :value="item.value" />
+              <el-select
+                size="small"
+                v-model="queryParams.status"
+                placeholder="状态"
+                :clearable="true"
+              >
+                <el-option
+                  v-for="item in selectStatus"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="关键字:">
-              <el-input size="small" v-model="queryParams.companyName" placeholder="请输入客户名称" :clearable="true" />
+              <el-input
+                size="small"
+                v-model="queryParams.companyName"
+                placeholder="请输入客户名称"
+                :clearable="true"
+              />
             </el-form-item>
-            <el-form-item label="来源:">
-              <el-input v-model="queryParams.fromCompanyName" size="small" placeholder="请输入客户来源" :clearable="true" />
+            <el-form-item label="来源:" v-if="tenant.versionId === 4">
+              <el-input
+                v-model="queryParams.fromCompanyName"
+                size="small"
+                placeholder="请输入客户来源"
+                :clearable="true"
+              />
             </el-form-item>
             <el-form-item label="税号:">
-              <el-input size="small" v-model="queryParams.socialCreditCode" placeholder="请输入税号" :clearable="true" />
+              <el-input
+                size="small"
+                v-model="queryParams.socialCreditCode"
+                placeholder="请输入税号"
+                :clearable="true"
+              />
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
       <template #footer>
         <div class="dialog-footer">
-          <el-button type="primary" icon="Finished" size="small" @click="handleQuery">确 定</el-button>
-          <el-button @click="moreSearch = false" icon="close" size="small">取 消</el-button>
+          <el-button
+            type="primary"
+            icon="Finished"
+            size="small"
+            @click="handleQuery"
+            >确 定</el-button
+          >
+          <el-button @click="moreSearch = false" icon="close" size="small"
+            >取 消</el-button
+          >
         </div>
       </template>
     </el-dialog>
@@ -197,7 +378,7 @@ import { get } from "@vueuse/core";
 const { proxy } = getCurrentInstance();
 /** 字典数组区 */
 /** 查询 对象 */
-
+const tenant = useUserStore().tenant;
 const detailList = ref([]);
 const bizStandardCompanyList = ref([]);
 const loading = ref(false);
@@ -378,7 +559,7 @@ function resetQuery() {
     month: null,
     taxType: null,
     currentEmployeeName: null,
-    year: proxy.moment().format("YYYY"),
+    year: proxy.moment().subtract(1, "month").format("YYYY"),
     month: proxy.moment().subtract(1, "month").format("MM"),
   };
   currentMonth.value = proxy.moment().subtract(1, "month").format("YYYY-MM-01");

+ 2 - 2
src/views/business/production/archiveTicket/index.vue

@@ -25,7 +25,7 @@
         <el-date-picker v-model="currentMonth" type="month" format="YYYY年MM月" :clearable="false" value-format="YYYY-MM-01"
           @change="currentMonthChange" :disabled-date="disabledDateHandler" />
       </el-form-item>
-      <el-form-item label="是否自己负责:">
+      <el-form-item v-if="tenant.versionId !== '4'" label="是否自己负责:">
         <el-switch v-model="oneself" @change="handleOneself" />
       </el-form-item>
       <el-form-item>
@@ -112,7 +112,7 @@ import viewDialog from "./view.vue";
 const { proxy } = getCurrentInstance();
 /** 字典数组区 */
 /** 查询 对象 */
-
+const tenant = useUserStore().tenant
 const list = ref([]);
 const loading = ref(true);
 const ids = ref([]);

+ 252 - 68
src/views/business/production/financialReportTax/index.vue

@@ -3,93 +3,193 @@
     <!-- 功能按钮区 -->
     <div class="list-btns-container"></div>
     <!-- 搜索区 -->
-    <el-form class="list-search-container" size="small" :model="queryParams" ref="queryRef" :inline="true"
-      label-width="77px">
+    <el-form
+      class="list-search-container"
+      size="small"
+      :model="queryParams"
+      ref="queryRef"
+      :inline="true"
+      label-width="77px"
+    >
       <el-form-item label="客户名称:">
-        <el-input v-model="queryParams.companyName" type="text" placeholder="请输入客户名称" :clearable="true"
-          style="width: 220px" />
+        <el-input
+          v-model="queryParams.companyName"
+          type="text"
+          placeholder="请输入客户名称"
+          :clearable="true"
+          style="width: 220px"
+        />
       </el-form-item>
       <el-form-item label="报税所属期:" prop="year">
-        <el-date-picker v-model="currentMonth" type="month" format="YYYY年MM月" style="width: 120px"
-          value-format="YYYY-MM-01" :disabled-date="disabledDateHandler" @change="monthChangeHandler" />
+        <el-date-picker
+          v-model="currentMonth"
+          type="month"
+          format="YYYY年MM月"
+          style="width: 120px"
+          :clearable="false"
+          value-format="YYYY-MM-01"
+          :disabled-date="disabledDateHandler"
+          @change="monthChangeHandler"
+        />
       </el-form-item>
       <el-form-item label="报税状态:">
-        <el-select v-model="queryParams.status" type="text" placeholder="状态" :clearable="true" style="width: 130px">
-          <el-option v-for="item in selectStatus" :key="item.value" :label="item.label" :value="item.value" />
+        <el-select
+          v-model="queryParams.status"
+          type="text"
+          placeholder="状态"
+          :clearable="true"
+          style="width: 130px"
+        >
+          <el-option
+            v-for="item in selectStatus"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
         </el-select>
       </el-form-item>
-      <el-form-item label="是否自己负责:">
+      <el-form-item v-if="tenant.versionId !== '4'" label="是否自己负责:">
         <el-switch v-model="oneself" @change="handleOneself" />
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
+        <el-button type="primary" icon="Search" @click="handleQuery"
+          >搜索</el-button
+        >
         <el-button icon="operation" @click="moreSearch = true">更多</el-button>
         <el-button icon="Refresh" @click="resetQuery">重置</el-button>
       </el-form-item>
     </el-form>
 
     <!-- 列表区 -->
-    <el-table v-loading="loading" :data="taxList" size="small" border height="100%"
-      @selection-change="handleSelectionChange">
+    <el-table
+      v-loading="loading"
+      :data="taxList"
+      size="small"
+      border
+      height="100%"
+      @selection-change="handleSelectionChange"
+    >
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="客户名称" align="center" prop="companyName" min-width="250" />
-      <el-table-column label="来源" align="center" prop="fromCompanyName" min-width="100" />
-      <el-table-column label="税号" align="center" prop="socialCreditCode" min-width="180" />
-      <el-table-column label="纳税性质" align="center" width="100" prop="taxType" />
-      <el-table-column label="是否零申报" align="center" min-width="80" prop="isZero">
+      <el-table-column
+        label="客户名称"
+        align="center"
+        prop="companyName"
+        min-width="250"
+      />
+      <el-table-column
+        label="来源"
+        align="center"
+        prop="fromCompanyName"
+        min-width="100"
+      />
+      <el-table-column
+        label="税号"
+        align="center"
+        prop="socialCreditCode"
+        min-width="180"
+      />
+      <el-table-column
+        label="纳税性质"
+        align="center"
+        width="100"
+        prop="taxType"
+      />
+      <el-table-column
+        label="是否零申报"
+        align="center"
+        min-width="80"
+        prop="isZero"
+      >
         <template #default="scope">
           {{
             scope.row.isZero === 1 ? "是" : scope.row.isZero === 0 ? "否" : ""
           }}
         </template>
       </el-table-column>
-      <el-table-column label="报税填写" align="center" width="80" prop="evidenceFile">
+      <el-table-column
+        label="报税填写"
+        align="center"
+        width="80"
+        prop="evidenceFile"
+      >
         <template #default="scope">
-          <el-button link type="primary" size="small" @click="fillIn(scope.row)"
-            v-hasPermi="['business:financialReportTaxNonZero:saveDetail']">{{
+          <el-button
+            link
+            type="primary"
+            size="small"
+            @click="fillIn(scope.row)"
+            v-hasPermi="['business:financialReportTaxNonZero:saveDetail']"
+            >{{
               scope.row.detail == null
-              ? "填写"
-              : scope.row.detail.status === 1
+                ? "填写"
+                : scope.row.detail.status === 1
                 ? "进行中"
                 : "已填写"
-            }}</el-button>
+            }}</el-button
+          >
         </template>
       </el-table-column>
-      <el-table-column label="报税附件" align="center" width="80" prop="content">
+      <el-table-column
+        label="报税附件"
+        align="center"
+        width="80"
+        prop="content"
+      >
         <template #default="scope">
-          <el-button link type="primary" :disabled="scope.row.detail == null || scope.row.detail.evidenceFile === ''
-            " size="small" @click="showFiles(scope.row)"
-            v-hasPermi="['business:financialReportTaxNonZero:query']">查看文件</el-button>
+          <el-button
+            link
+            type="primary"
+            :disabled="
+              scope.row.detail == null || scope.row.detail.evidenceFile === ''
+            "
+            size="small"
+            @click="showFiles(scope.row)"
+            v-hasPermi="['business:financialReportTaxNonZero:query']"
+            >查看文件</el-button
+          >
         </template>
       </el-table-column>
-      <el-table-column label="状态" align="center" min-width="80" prop="verifyContent">
+      <el-table-column
+        label="状态"
+        align="center"
+        min-width="80"
+        prop="verifyContent"
+      >
         <template #default="scope">
           <div :style="getStatusStyle(scope.row)">
             {{ getStatusLabel(scope.row) }}
             <el-popover placement="top-start" width="250" trigger="hover">
               <div style="display: flex; flex-direction: row">
-                <div v-for="item in selectStatus" :key="item.value"
-                  style="display: flex; flex-direction: row; margin-right: 10px">
-                  <div :style="{
-                    backgroundColor: item.color,
-                    width: '14px',
-                    height: '14px',
-                    margin: 'auto',
-                    borderRadius: '50%',
-                    border: item.color === '#fff' ? '1px solid #ddd' : 'none',
-                  }" />
-                  <div style="
+                <div
+                  v-for="item in selectStatus"
+                  :key="item.value"
+                  style="display: flex; flex-direction: row; margin-right: 10px"
+                >
+                  <div
+                    :style="{
+                      backgroundColor: item.color,
+                      width: '14px',
+                      height: '14px',
+                      margin: 'auto',
+                      borderRadius: '50%',
+                      border: item.color === '#fff' ? '1px solid #ddd' : 'none',
+                    }"
+                  />
+                  <div
+                    style="
                       display: inline-block;
                       margin-left: 10px;
                       line-height: 36px;
                       font-size: 10px;
-                    ">
+                    "
+                  >
                     {{ item.label }}
                   </div>
                 </div>
               </div>
               <template #reference>
-                <span style="
+                <span
+                  style="
                     color: #fff;
                     font-size: 12px;
                     text-align: center;
@@ -99,69 +199,153 @@
                     height: 14px;
                     background-color: #ccc;
                     border-radius: 50%;
-                  ">?</span>
+                  "
+                  >?</span
+                >
               </template>
             </el-popover>
           </div>
         </template>
       </el-table-column>
-      <el-table-column label="执行人" align="center" min-width="100" prop="serviceName" />
-      <el-table-column label="操作" align="center" width="80" class-name="small-padding fixed-width">
+      <el-table-column
+        label="执行人"
+        align="center"
+        min-width="100"
+        prop="serviceName"
+      />
+      <el-table-column
+        label="操作"
+        align="center"
+        width="80"
+        class-name="small-padding fixed-width"
+      >
         <template #default="scope">
-          <el-button size="small" link type="primary" :disabled="scope.row.detail == null || scope.row.detail.status !== 3
-            " @click="turnBack(scope.row.detail)"
-            v-hasPermi="['business:financialReportTaxNonZero:back']">退回</el-button>
+          <el-button
+            size="small"
+            link
+            type="primary"
+            :disabled="
+              scope.row.detail == null || scope.row.detail.status !== 3
+            "
+            @click="turnBack(scope.row.detail)"
+            v-hasPermi="['business:financialReportTaxNonZero:back']"
+            >退回</el-button
+          >
         </template>
       </el-table-column>
     </el-table>
 
     <!-- 分页 -->
-    <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
-      @pagination="getList" />
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      v-model:page="queryParams.pageNum"
+      v-model:limit="queryParams.pageSize"
+      @pagination="getList"
+    />
 
     <!-- 表单 -->
     <FormDialog ref="formDialog" :get-list="getList"></FormDialog>
 
     <!-- 更多搜索弹窗 -->
-    <el-dialog title="更多搜索" v-model="moreSearch" width="620px" append-to-body size="small" draggable>
-      <el-form ref="dictRef" label-width="100">
+    <el-dialog
+      title="更多搜索"
+      v-model="moreSearch"
+      width="620px"
+      append-to-body
+      size="small"
+      draggable
+    >
+      <el-form ref="dictRef" size="small" label-width="100">
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="报税所属期:" prop="year">
-              <el-date-picker size="small" v-model="currentMonth" type="month" format="YYYY年MM月" value-format="YYYY-MM-01"
-                :disabled-date="disabledDateHandler" @change="monthChangeHandler" />
+              <el-date-picker
+                size="small"
+                v-model="currentMonth"
+                type="month"
+                format="YYYY年MM月"
+                value-format="YYYY-MM-01"
+                :disabled-date="disabledDateHandler"
+                @change="monthChangeHandler"
+                :clearable="false"
+              />
             </el-form-item>
             <el-form-item label="纳税性质:" prop="taxType">
-              <el-select size="small" v-model="queryParams.taxType" placeholder="请选择纳税性质" :clearable="true">
-                <el-option v-for="item in taxTypes" :key="item.label" :label="item.label" :value="item.value" />
+              <el-select
+                size="small"
+                v-model="queryParams.taxType"
+                placeholder="请选择纳税性质"
+                :clearable="true"
+              >
+                <el-option
+                  v-for="item in taxTypes"
+                  :key="item.label"
+                  :label="item.label"
+                  :value="item.value"
+                />
               </el-select>
             </el-form-item>
             <el-form-item label="报税状态:">
-              <el-select size="small" v-model="queryParams.status" type="text" placeholder="状态" :clearable="true">
-                <el-option v-for="item in selectStatus" :key="item.value" :label="item.label" :value="item.value" />
+              <el-select
+                size="small"
+                v-model="queryParams.status"
+                type="text"
+                placeholder="状态"
+                :clearable="true"
+              >
+                <el-option
+                  v-for="item in selectStatus"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="关键字:">
-              <el-input size="small" v-model="queryParams.companyName" type="text" placeholder="请输入客户名称"
-                :clearable="true" />
+              <el-input
+                size="small"
+                v-model="queryParams.companyName"
+                type="text"
+                placeholder="请输入客户名称"
+                :clearable="true"
+              />
             </el-form-item>
-            <el-form-item label="来源:">
-              <el-input v-model="queryParams.fromCompanyName" size="small" type="text" placeholder="请输入客户来源"
-                :clearable="true" />
+            <el-form-item label="来源:" v-if="tenant.versionId === '4'">
+              <el-input
+                v-model="queryParams.fromCompanyName"
+                size="small"
+                type="text"
+                placeholder="请输入客户来源"
+                :clearable="true"
+              />
             </el-form-item>
             <el-form-item label="税号:">
-              <el-input size="small" v-model="queryParams.socialCreditCode" type="text" placeholder="请输入税号"
-                :clearable="true" />
+              <el-input
+                size="small"
+                v-model="queryParams.socialCreditCode"
+                type="text"
+                placeholder="请输入税号"
+                :clearable="true"
+              />
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
       <template #footer>
         <div class="dialog-footer">
-          <el-button type="primary" icon="Finished" size="small" @click="handleQuery">确 定</el-button>
-          <el-button icon="close" size="small" @click="moreSearch = false">取 消</el-button>
+          <el-button
+            type="primary"
+            icon="Finished"
+            size="small"
+            @click="handleQuery"
+            >确 定</el-button
+          >
+          <el-button icon="close" size="small" @click="moreSearch = false"
+            >取 消</el-button
+          >
         </div>
       </template>
     </el-dialog>
@@ -182,7 +366,7 @@ import FormDialog from "./FormDialog.vue";
 const { proxy } = getCurrentInstance();
 /** 字典数组区 */
 /** 查询 对象 */
-
+const tenant = useUserStore().tenant;
 const taxList = ref([]);
 const loading = ref(true);
 const moreSearch = ref(false);
@@ -253,7 +437,7 @@ function resetQuery() {
     creatorId: null,
     workOrderId: null,
     isStop: null,
-    year: proxy.moment().format("YYYY"),
+    year: proxy.moment().subtract(1, "month").format("YYYY"),
     month: proxy.moment().subtract(1, "month").format("MM"),
   };
   currentMonth.value = proxy.moment().subtract(1, "month").format("YYYY-MM-01");

+ 221 - 61
src/views/business/production/financialReportTaxIsZero/index.vue

@@ -3,40 +3,98 @@
     <!-- 功能按钮区 -->
     <div class="list-btns-container"></div>
     <!-- 搜索区 -->
-    <el-form class="list-search-container" size="small" :model="queryParams" ref="queryRef" :inline="true"
-      label-width="78px">
+    <el-form
+      class="list-search-container"
+      size="small"
+      :model="queryParams"
+      ref="queryRef"
+      :inline="true"
+      label-width="78px"
+    >
       <el-form-item label="客户名称:">
-        <el-input v-model="queryParams.companyName" type="text" placeholder="请输入客户名称" :clearable="true"
-          style="width: 220px" />
+        <el-input
+          v-model="queryParams.companyName"
+          type="text"
+          placeholder="请输入客户名称"
+          :clearable="true"
+          style="width: 220px"
+        />
       </el-form-item>
       <el-form-item label="报税所属期:" prop="year">
-        <el-date-picker v-model="currentMonth" type="month" format="YYYY年MM月" value-format="YYYY-MM-01"
-          :disabled-date="disabledDateHandler" style="width: 120px" @change="monthChangeHandler" />
+        <el-date-picker
+          v-model="currentMonth"
+          type="month"
+          format="YYYY年MM月"
+          value-format="YYYY-MM-01"
+          :clearable="false"
+          :disabled-date="disabledDateHandler"
+          style="width: 120px"
+          @change="monthChangeHandler"
+        />
       </el-form-item>
       <el-form-item label="报税状态:">
-        <el-select v-model="queryParams.status" type="text" placeholder="状态" :clearable="true" style="width: 130px">
-          <el-option v-for="item in selectStatus" :key="item.value" :label="item.label" :value="item.value" />
+        <el-select
+          v-model="queryParams.status"
+          type="text"
+          placeholder="状态"
+          :clearable="true"
+          style="width: 130px"
+        >
+          <el-option
+            v-for="item in selectStatus"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
         </el-select>
       </el-form-item>
 
-      <el-form-item label="是否自己负责:">
+      <el-form-item v-if="tenant.versionId !== '4'" label="是否自己负责:">
         <el-switch v-model="oneself" @change="handleOneself" />
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
+        <el-button type="primary" icon="Search" @click="handleQuery"
+          >搜索</el-button
+        >
         <el-button icon="operation" @click="moreSearch = true">更多</el-button>
         <el-button icon="Refresh" @click="resetQuery">重置</el-button>
       </el-form-item>
     </el-form>
 
     <!-- 列表区 -->
-    <el-table v-loading="loading" :data="taxList" size="small" border height="100%"
-      @selection-change="handleSelectionChange">
+    <el-table
+      v-loading="loading"
+      :data="taxList"
+      size="small"
+      border
+      height="100%"
+      @selection-change="handleSelectionChange"
+    >
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="客户名称" align="center" prop="companyName" min-width="250" />
-      <el-table-column label="来源" align="center" prop="fromCompanyName" width="180" />
-      <el-table-column label="税号" align="center" prop="socialCreditCode" width="180" />
-      <el-table-column label="纳税性质" align="center" width="100" prop="taxType" />
+      <el-table-column
+        label="客户名称"
+        align="center"
+        prop="companyName"
+        min-width="250"
+      />
+      <el-table-column
+        label="来源"
+        align="center"
+        prop="fromCompanyName"
+        width="180"
+      />
+      <el-table-column
+        label="税号"
+        align="center"
+        prop="socialCreditCode"
+        width="180"
+      />
+      <el-table-column
+        label="纳税性质"
+        align="center"
+        width="100"
+        prop="taxType"
+      />
       <el-table-column label="是否零申报" align="center" prop="isZero">
         <template #default="scope">
           {{
@@ -46,21 +104,35 @@
       </el-table-column>
       <el-table-column label="报税填写" align="center" prop="evidenceFile">
         <template #default="scope">
-          <el-button link type="primary" size="small" v-hasPermi="['business:financialReportTax:saveDetail']"
-            @click="fillIn(scope.row)">{{
+          <el-button
+            link
+            type="primary"
+            size="small"
+            v-hasPermi="['business:financialReportTax:saveDetail']"
+            @click="fillIn(scope.row)"
+            >{{
               scope.row.detail == null
-              ? "填写"
-              : scope.row.detail.status === 1
+                ? "填写"
+                : scope.row.detail.status === 1
                 ? "进行中"
                 : "已填写"
-            }}</el-button>
+            }}</el-button
+          >
         </template>
       </el-table-column>
       <el-table-column label="报税附件" align="center" prop="content">
         <template #default="scope">
-          <el-button link type="primary" :disabled="scope.row.detail == null || scope.row.detail.evidenceFile === ''
-            " size="small" v-hasPermi="['business:financialReportTax:query']"
-            @click="showFiles(scope.row)">查看文件</el-button>
+          <el-button
+            link
+            type="primary"
+            :disabled="
+              scope.row.detail == null || scope.row.detail.evidenceFile === ''
+            "
+            size="small"
+            v-hasPermi="['business:financialReportTax:query']"
+            @click="showFiles(scope.row)"
+            >查看文件</el-button
+          >
         </template>
       </el-table-column>
       <el-table-column label="状态" align="center" prop="verifyContent">
@@ -69,28 +141,36 @@
             {{ getStatusLabel(scope.row) }}
             <el-popover placement="top-start" width="250" trigger="hover">
               <div style="display: flex; flex-direction: row">
-                <div v-for="item in selectStatus" :key="item.value"
-                  style="display: flex; flex-direction: row; margin-right: 10px">
-                  <div :style="{
-                    backgroundColor: item.color,
-                    width: '14px',
-                    height: '14px',
-                    margin: 'auto',
-                    borderRadius: '50%',
-                    border: item.color === '#fff' ? '1px solid #ddd' : 'none',
-                  }" />
-                  <div style="
+                <div
+                  v-for="item in selectStatus"
+                  :key="item.value"
+                  style="display: flex; flex-direction: row; margin-right: 10px"
+                >
+                  <div
+                    :style="{
+                      backgroundColor: item.color,
+                      width: '14px',
+                      height: '14px',
+                      margin: 'auto',
+                      borderRadius: '50%',
+                      border: item.color === '#fff' ? '1px solid #ddd' : 'none',
+                    }"
+                  />
+                  <div
+                    style="
                       display: inline-block;
                       margin-left: 10px;
                       line-height: 36px;
                       font-size: 10px;
-                    ">
+                    "
+                  >
                     {{ item.label }}
                   </div>
                 </div>
               </div>
               <template #reference>
-                <span style="
+                <span
+                  style="
                     color: #fff;
                     font-size: 12px;
                     text-align: center;
@@ -100,67 +180,146 @@
                     height: 14px;
                     background-color: #ccc;
                     border-radius: 50%;
-                  ">?</span>
+                  "
+                  >?</span
+                >
               </template>
             </el-popover>
           </div>
         </template>
       </el-table-column>
       <el-table-column label="执行人" align="center" prop="serviceName" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
         <template #default="scope">
-          <el-button size="small" link type="primary" :disabled="scope.row.detail == null || scope.row.detail.status !== 3
-            " v-hasPermi="['business:financialReportTax:back']" @click="turnBack(scope.row.detail)">退回</el-button>
+          <el-button
+            size="small"
+            link
+            type="primary"
+            :disabled="
+              scope.row.detail == null || scope.row.detail.status !== 3
+            "
+            v-hasPermi="['business:financialReportTax:back']"
+            @click="turnBack(scope.row.detail)"
+            >退回</el-button
+          >
         </template>
       </el-table-column>
     </el-table>
 
     <!-- 分页 -->
-    <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
-      @pagination="getList" />
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      v-model:page="queryParams.pageNum"
+      v-model:limit="queryParams.pageSize"
+      @pagination="getList"
+    />
 
     <!-- 表单 -->
     <FormDialog ref="formDialog" :get-list="getList"></FormDialog>
     <!-- 更多搜索弹窗 -->
-    <el-dialog title="更多搜索" v-model="moreSearch" width="620px" append-to-body size="small" draggable>
-      <el-form ref="dictRef" label-width="100">
+    <el-dialog
+      title="更多搜索"
+      v-model="moreSearch"
+      width="620px"
+      append-to-body
+      size="small"
+      draggable
+    >
+      <el-form ref="dictRef" size="small" label-width="100">
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="报税所属期:" prop="year">
-              <el-date-picker size="small" v-model="currentMonth" type="month" format="YYYY年MM月" value-format="YYYY-MM-01"
-                :disabled-date="disabledDateHandler" @change="monthChangeHandler" />
+              <el-date-picker
+                size="small"
+                v-model="currentMonth"
+                type="month"
+                format="YYYY年MM月"
+                value-format="YYYY-MM-01"
+                :disabled-date="disabledDateHandler"
+                @change="monthChangeHandler"
+                :clearable="false"
+              />
             </el-form-item>
             <el-form-item label="纳税性质:" prop="taxType">
-              <el-select size="small" v-model="queryParams.taxType" placeholder="请选择纳税性质" :clearable="true">
-                <el-option v-for="item in taxTypes" :key="item.label" :label="item.label" :value="item.value" />
+              <el-select
+                size="small"
+                v-model="queryParams.taxType"
+                placeholder="请选择纳税性质"
+                :clearable="true"
+              >
+                <el-option
+                  v-for="item in taxTypes"
+                  :key="item.label"
+                  :label="item.label"
+                  :value="item.value"
+                />
               </el-select>
             </el-form-item>
             <el-form-item label="报税状态:">
-              <el-select size="small" v-model="queryParams.status" type="text" placeholder="状态" :clearable="true">
-                <el-option v-for="item in selectStatus" :key="item.value" :label="item.label" :value="item.value" />
+              <el-select
+                size="small"
+                v-model="queryParams.status"
+                type="text"
+                placeholder="状态"
+                :clearable="true"
+              >
+                <el-option
+                  v-for="item in selectStatus"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="关键字:">
-              <el-input size="small" v-model="queryParams.companyName" type="text" placeholder="请输入客户名称"
-                :clearable="true" />
+              <el-input
+                size="small"
+                v-model="queryParams.companyName"
+                type="text"
+                placeholder="请输入客户名称"
+                :clearable="true"
+              />
             </el-form-item>
-            <el-form-item label="来源:">
-              <el-input v-model="queryParams.fromCompanyName" size="small" type="text" placeholder="请输入客户来源"
-                :clearable="true" />
+            <el-form-item v-if="tenant.versionId === 4" label="来源:">
+              <el-input
+                v-model="queryParams.fromCompanyName"
+                size="small"
+                type="text"
+                placeholder="请输入客户来源"
+                :clearable="true"
+              />
             </el-form-item>
             <el-form-item label="税号:">
-              <el-input size="small" v-model="queryParams.socialCreditCode" type="text" placeholder="请输入税号"
-                :clearable="true" />
+              <el-input
+                size="small"
+                v-model="queryParams.socialCreditCode"
+                type="text"
+                placeholder="请输入税号"
+                :clearable="true"
+              />
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
       <template #footer>
         <div class="dialog-footer">
-          <el-button type="primary" icon="Finished" size="small" @click="handleQuery">确 定</el-button>
-          <el-button icon="close" size="small" @click="moreSearch = false">取 消</el-button>
+          <el-button
+            type="primary"
+            icon="Finished"
+            size="small"
+            @click="handleQuery"
+            >确 定</el-button
+          >
+          <el-button icon="close" size="small" @click="moreSearch = false"
+            >取 消</el-button
+          >
         </div>
       </template>
     </el-dialog>
@@ -185,6 +344,7 @@ const { proxy } = getCurrentInstance();
 /** 字典数组区 */
 /** 查询 对象 */
 
+const tenant = useUserStore().tenant;
 const taxList = ref([]);
 const moreSearch = ref(false);
 const loading = ref(true);
@@ -255,7 +415,7 @@ function resetQuery() {
     creatorId: null,
     workOrderId: null,
     isStop: null,
-    year: proxy.moment().format("YYYY"),
+    year: proxy.moment().subtract(1, "month").format("YYYY"),
     month: proxy.moment().subtract(1, "month").format("MM"),
   };
   currentMonth.value = proxy.moment().subtract(1, "month").format("YYYY-MM-01");

+ 65 - 235
src/views/business/production/keepAccount/index.vue

@@ -8,118 +8,50 @@
         </el-button>
         <template #dropdown>
           <el-dropdown-menu>
-            <el-dropdown-item
-              icon="Download"
-              @click="handleExport"
-              v-hasPermi="['business:workOrder:export']"
-            >
-              导出</el-dropdown-item
-            >
+            <el-dropdown-item icon="Download" @click="handleExport" v-hasPermi="['business:workOrder:export']">
+              导出</el-dropdown-item>
           </el-dropdown-menu>
         </template>
       </el-dropdown>
     </div>
     <!-- 搜索区 -->
-    <el-form
-      class="list-search-container"
-      size="small"
-      :model="queryParams"
-      ref="queryRef"
-      :inline="true"
-      label-width="78px"
-    >
+    <el-form class="list-search-container" size="small" :model="queryParams" ref="queryRef" :inline="true"
+      label-width="78px">
       <el-form-item label="客户名称:" prop="companyName">
-        <el-input
-          v-model="queryParams.companyName"
-          placeholder="请输入客户名称"
-          style="width: 150px"
-          clearable
-          @keyup.enter="handleQuery"
-        />
+        <el-input v-model="queryParams.companyName" placeholder="请输入客户名称" style="width: 150px" clearable
+          @keyup.enter="handleQuery" />
       </el-form-item>
       <el-form-item label="月份:">
-        <el-select
-          v-model.trim="queryParams.month"
-          size="small"
-          placeholder="月份"
-          :clearable="true"
-          style="width: 130px"
-          @change="handleQuery"
-        >
-          <el-option
-            v-for="item in selectMonths"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          />
+        <el-select v-model.trim="queryParams.month" size="small" placeholder="月份" :clearable="false" style="width: 130px"
+          @change="handleQuery">
+          <el-option v-for="item in selectMonths" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
       </el-form-item>
       <el-form-item label="状态:">
-        <el-select
-          v-model.trim="queryParams.status"
-          prop="status"
-          size="small"
-          type="text"
-          placeholder="状态"
-          :clearable="true"
-          style="width: 130px"
-          @clear="clearStatus"
-        >
-          <el-option
-            v-for="item in selectStatus"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          />
+        <el-select v-model.trim="queryParams.status" prop="status" size="small" type="text" placeholder="状态"
+          :clearable="true" style="width: 130px" @clear="clearStatus">
+          <el-option v-for="item in selectStatus" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
       </el-form-item>
 
-      <el-form-item label="是否自己负责:">
+      <el-form-item v-if="tenant.versionId !== '4'" label="是否自己负责:">
         <el-switch v-model="oneself" @change="handleOneself" />
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" icon="Search" @click="handleQuery"
-          >搜索</el-button
-        >
+        <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
         <el-button icon="operation" @click="moreSearch = true">更多</el-button>
         <el-button icon="Refresh" @click="resetQuery">重置</el-button>
       </el-form-item>
     </el-form>
 
     <!-- 列表区 -->
-    <el-table
-      v-loading="loading"
-      :data="list"
-      size="small"
-      border
-      height="100%"
-      @selection-change="handleSelectionChange"
-    >
+    <el-table v-loading="loading" :data="list" size="small" border height="100%"
+      @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column
-        label="客户名称"
-        align="center"
-        prop="companyName"
-        min-width="250"
-      />
-      <el-table-column
-        label="来源"
-        align="center"
-        prop="fromCompanyName"
-        min-width="100"
-      />
-      <el-table-column
-        label="纳税性质"
-        min-width="100"
-        align="center"
-        prop="taxType"
-      />
-      <el-table-column
-        label="税号"
-        align="center"
-        prop="socialCreditCode"
-        min-width="200"
-      />
+      <el-table-column label="客户名称" align="center" prop="companyName" min-width="250" />
+      <el-table-column label="来源" align="center" prop="fromCompanyName" min-width="100" />
+      <el-table-column label="纳税性质" min-width="100" align="center" prop="taxType" />
+      <el-table-column label="税号" align="center" prop="socialCreditCode" min-width="200" />
       <el-table-column label="当前期间" width="90" align="center">
         <template #default="scope">
           <!-- {{ scope.row.currentDate != null && scope.row.currentDate > scope.row.checkoutDate ? scope.row.currentDate :
@@ -129,198 +61,94 @@
       </el-table-column>
       <el-table-column align="center">
         <template #header>
-          <div
-            style="
+          <div style="
               display: flex;
               flex-direction: row;
               justify-content: space-between;
-            "
-          >
+            ">
             <div style="display: flex; flex-direction: row">
-              <el-button
-                link
-                type="primary"
-                size="small"
-                icon="ArrowLeft"
-                @click="prevYear"
-              />
+              <el-button link type="primary" size="small" icon="ArrowLeft" @click="prevYear" />
               <el-link style="margin: 0 40px" :underline="false">{{
                 queryParams.year
               }}</el-link>
-              <el-button
-                link
-                type="primary"
-                icon="ArrowRight"
-                size="small"
-                @click="nextYear"
-              />
+              <el-button link type="primary" icon="ArrowRight" size="small" @click="nextYear" />
             </div>
             <div style="display: flex; flex-direction: row; margin-right: 20px">
-              <div
-                v-for="item in selectStatus"
-                :key="item.value"
-                style="display: flex; flex-direction: row; margin-right: 10px"
-              >
-                <div
-                  :style="{
-                    backgroundColor: item.color,
-                    width: '14px',
-                    height: '14px',
-                    margin: 'auto',
-                    borderRadius: '50%',
-                    border: item.color === '#fff' ? '1px solid #ddd' : 'none',
-                  }"
-                />
-                <div
-                  style="
+              <div v-for="item in selectStatus" :key="item.value"
+                style="display: flex; flex-direction: row; margin-right: 10px">
+                <div :style="{
+                  backgroundColor: item.color,
+                  width: '14px',
+                  height: '14px',
+                  margin: 'auto',
+                  borderRadius: '50%',
+                  border: item.color === '#fff' ? '1px solid #ddd' : 'none',
+                }" />
+                <div style="
                     display: inline-block;
                     margin-left: 10px;
                     line-height: 36px;
-                  "
-                >
+                  ">
                   {{ item.label }}
                 </div>
               </div>
             </div>
           </div>
         </template>
-        <el-table-column
-          v-for="item in selectMonths"
-          :key="item.value"
-          width="50"
-          :label="item.label"
-          align="center"
-        >
+        <el-table-column v-for="item in selectMonths" :key="item.value" width="50" :label="item.label" align="center">
           <template #default="scope">
-            <el-button
-              size="small"
-              :style="monthStatusStyle(scope.row, item.value)"
-              circle
-              @click="openDetail(scope.row, item)"
-              style="width: 12px; height: 12px"
-            />
+            <el-button size="small" :style="monthStatusStyle(scope.row, item.value)" circle
+              @click="openDetail(scope.row, item)" style="width: 12px; height: 12px" />
           </template>
         </el-table-column>
       </el-table-column>
-      <el-table-column
-        label="执行人"
-        align="center"
-        prop="serviceName"
-        width="100"
-      >
+      <el-table-column label="执行人" align="center" prop="serviceName" width="100">
       </el-table-column>
     </el-table>
     <!-- 分页 -->
-    <pagination
-      v-show="total > 0"
-      :total="total"
-      v-model:page="queryParams.pageNum"
-      v-model:limit="queryParams.pageSize"
-      @pagination="getList"
-    />
+    <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
+      @pagination="getList" />
     <form-dialog ref="formDialogRef" :get-list="getList" />
     <view-dialog ref="viewDialogRef" :get-list="getList" />
     <!-- 更多搜索弹窗 -->
-    <el-dialog
-      title="更多搜索"
-      v-model="moreSearch"
-      width="620px"
-      append-to-body
-      draggable
-    >
-      <el-form
-        :model="queryParams"
-        ref="queryRef"
-        :rules="rules"
-        size="small"
-        label-width="100"
-      >
+    <el-dialog title="更多搜索" v-model="moreSearch" width="620px" append-to-body draggable>
+      <el-form :model="queryParams" ref="queryRef" size="small" label-width="100">
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="客户名称:" prop="companyName">
-              <el-input
-                v-model="queryParams.companyName"
-                placeholder="请输入客户名称"
-                clearable
-                @keyup.enter="handleQuery"
-              />
-            </el-form-item>
-            <el-form-item label="月份:">
-              <el-select
-                v-model.trim="queryParams.month"
-                size="small"
-                placeholder="月份"
-                :clearable="true"
-                @change="handleQuery"
-              >
-                <el-option
-                  v-for="item in selectMonths"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                />
-              </el-select>
+              <el-input v-model="queryParams.companyName" placeholder="请输入客户名称" clearable @keyup.enter="handleQuery" />
             </el-form-item>
             <el-form-item label="纳税性质:" prop="taxType">
-              <el-select
-                size="small"
-                v-model="queryParams.taxType"
-                placeholder="请选择纳税性质"
-                :clearable="true"
-                @change="taxTypeChange"
-              >
-                <el-option
-                  v-for="item in taxTypes"
-                  :key="item.label"
-                  :label="item.label"
-                  :value="item.value"
-                />
+              <el-select size="small" v-model="queryParams.taxType" placeholder="请选择纳税性质" :clearable="true"
+                @change="taxTypeChange">
+                <el-option v-for="item in taxTypes" :key="item.label" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
+            <el-form-item label="来源:" prop="fromCompanyName" v-if="tenant.versionId === '4'">
+              <el-input size="small" v-model="queryParams.fromCompanyName" type="text" placeholder="客户来源"
+                :clearable="true" />
+            </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="状态:">
-              <el-select
-                v-model.trim="queryParams.status"
-                prop="status"
-                size="small"
-                type="text"
-                placeholder="状态"
-                :clearable="true"
-                @clear="clearStatus"
-              >
-                <el-option
-                  v-for="item in selectStatus"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                />
+            <el-form-item label="月份:">
+              <el-select v-model.trim="queryParams.month" size="small" placeholder="月份" :clearable="false"
+                @change="handleQuery">
+                <el-option v-for="item in selectMonths" :key="item.value" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
-            <el-form-item label="来源:" prop="fromCompanyName">
-              <el-input
-                size="small"
-                v-model="queryParams.fromCompanyName"
-                type="text"
-                placeholder="客户来源"
-                :clearable="true"
-              />
+            <el-form-item label="状态:">
+              <el-select v-model.trim="queryParams.status" prop="status" size="small" type="text" placeholder="状态"
+                :clearable="true" @clear="clearStatus">
+                <el-option v-for="item in selectStatus" :key="item.value" :label="item.label" :value="item.value" />
+              </el-select>
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
       <template #footer>
         <div class="dialog-footer">
-          <el-button
-            type="primary"
-            icon="Finished"
-            size="small"
-            @click="handleQuery"
-            >确 定</el-button
-          >
-          <el-button icon="close" size="small" @click="moreSearch = false"
-            >取 消</el-button
-          >
+          <el-button type="primary" icon="Finished" size="small" @click="handleQuery">确 定</el-button>
+          <el-button icon="close" size="small" @click="moreSearch = false">取 消</el-button>
         </div>
       </template>
     </el-dialog>
@@ -340,6 +168,7 @@ const { proxy } = getCurrentInstance();
 /** 字典数组区 */
 /** 查询 对象 */
 
+const tenant = useUserStore().tenant;
 const list = ref([]);
 const loading = ref(true);
 const oneself = ref(false);
@@ -497,6 +326,7 @@ function resetQuery() {
   queryParams.value = {
     pageNum: 1,
     pageSize: 20,
+    orderByColumn: "create_time",
     year: proxy.moment().format("yyyy"),
     month: proxy.moment().subtract(1, "month").format("MM"),
     companyName: "",

+ 2 - 2
src/views/business/production/onceWork/index.vue

@@ -22,7 +22,7 @@
         <el-input v-model="queryParams.companyName" style="width: 150px" placeholder="请输入客户名称" clearable
           @keyup.enter="handleQuery" />
       </el-form-item>
-      <el-form-item label="是否自己负责:">
+      <el-form-item v-if="tenant.versionId !== '4'" label="是否自己负责:">
         <el-switch v-model="oneself" @change="handleOneself" />
       </el-form-item>
       <el-form-item>
@@ -148,7 +148,7 @@ const { selectStatus } = toRefs(data);
 
 /** 字典数组区 */
 /** 查询 对象 */
-
+const tenant = useUserStore().tenant
 const list = ref([]);
 const loading = ref(true);
 const ids = ref([]);

+ 12 - 11
src/views/business/production/receiveTicket/index.vue

@@ -22,7 +22,7 @@
           @keyup.enter="handleQuery" />
       </el-form-item>
       <el-form-item label="月份:">
-        <el-select v-model.trim="queryParams.month" size="small" placeholder="月份" :clearable="true" style="width: 130px"
+        <el-select v-model.trim="queryParams.month" size="small" placeholder="月份" :clearable="false" style="width: 130px"
           @change="handleQuery">
           <el-option v-for="item in selectMonths" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
@@ -33,7 +33,7 @@
           <el-option v-for="item in selectStatus" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
       </el-form-item>
-      <el-form-item label="是否自己负责:">
+      <el-form-item v-if="tenant.versionId !== '4'" label="是否自己负责:">
         <el-switch v-model="oneself" @change="handleOneself" />
       </el-form-item>
       <el-form-item>
@@ -111,17 +111,16 @@
     <view-dialog ref="viewDialogRef" :get-list="getList" />
     <!-- 更多搜索弹窗 -->
     <el-dialog title="更多搜索" v-model="moreSearch" width="620px" append-to-body draggable>
-      <el-form :model="queryParams" ref="queryRef" :rules="rules" size="small" label-width="100">
+      <el-form :model="queryParams" ref="queryRef" size="small" label-width="100">
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="客户名称:" prop="companyName">
               <el-input v-model="queryParams.companyName" size="small" placeholder="请输入客户名称" clearable
                 @keyup.enter="handleQuery" />
             </el-form-item>
-            <el-form-item label="月份:">
-              <el-select v-model.trim="queryParams.month" size="small" placeholder="月份">
-                <el-option v-for="item in selectMonths" :key="item.value" :label="item.label" :value="item.value" />
-              </el-select>
+            <el-form-item label="来源:" v-if="tenant.versionId === '4'">
+              <el-input size="small" v-model="queryParams.fromCompanyName" type="text" placeholder="客户来源"
+                :clearable="true" />
             </el-form-item>
             <el-form-item label="收票状态:">
               <el-select v-model.trim="queryParams.status" prop="status" size="small" type="text" placeholder="状态"
@@ -156,9 +155,10 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="来源:">
-              <el-input size="small" v-model="queryParams.fromCompanyName" type="text" placeholder="客户来源"
-                :clearable="true" />
+            <el-form-item label="月份:">
+              <el-select v-model.trim="queryParams.month" size="small" placeholder="月份" :clearable="false">
+                <el-option v-for="item in selectMonths" :key="item.value" :label="item.label" :value="item.value" />
+              </el-select>
             </el-form-item>
             <el-form-item label="纳税性质:">
               <el-select size="small" v-model="queryParams.taxType" placeholder="请选择纳税性质" :clearable="true"
@@ -208,6 +208,7 @@
 import useUserStore from "@/store/modules/user";
 
 import { listReceiveTicket } from "@/api/business/production/receiveTicket";
+import { taxTypes } from "@/utils/default";
 import { listCompany } from "@/api/business/crm/company";
 import { reactive, ref, toRefs } from "vue";
 import formDialog from "./form";
@@ -216,7 +217,7 @@ import viewDialog from "./view";
 const { proxy } = getCurrentInstance();
 /** 字典数组区 */
 /** 查询 对象 */
-
+const tenant = useUserStore().tenant
 const list = ref([]);
 const loading = ref(true);
 const ids = ref([]);

+ 40 - 140
src/views/business/production/receiveTicket/view.vue

@@ -1,12 +1,5 @@
 <template>
-  <el-dialog
-    title="收票信息"
-    v-model="visible"
-    :width="width"
-    append-to-body
-    draggable
-    @close="close"
-  >
+  <el-dialog title="收票信息" v-model="visible" :width="width" append-to-body draggable @close="close">
     <!-- 功能按钮 -->
     <div style="padding: 8px 24px 16px 24px">
       <el-form size="small" label-width="100px" v-model="form">
@@ -21,6 +14,11 @@
               <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="24">
             <el-divider />
           </el-col>
@@ -60,8 +58,8 @@
               <div v-else>
                 {{
                   salaryDetail == null
-                    ? "未开始"
-                    : getStatusOfSalary(salaryDetail)
+                  ? "未开始"
+                  : getStatusOfSalary(salaryDetail)
                 }}
               </div>
             </el-form-item>
@@ -121,114 +119,50 @@
           </el-col>
           <el-col v-if="showVerify()" :span="12">
             <el-form-item label="收入票">
-              <el-input-number
-                v-model="form.incomeTicket"
-                size="small"
-                placeholder="收入票"
-                :step="1"
-                step-strictly
-                :controls="false"
-                style="width: 100%"
-                @change="ticketNumberChange"
-              />
+              <el-input-number v-model="form.incomeTicket" size="small" placeholder="收入票" :step="1" step-strictly
+                :controls="false" style="width: 100%" @change="ticketNumberChange" />
             </el-form-item>
           </el-col>
           <el-col v-if="showVerify()" :span="12">
             <el-form-item label="成本票">
-              <el-input-number
-                v-model="form.costTicket"
-                size="small"
-                placeholder="成本票"
-                :step="1"
-                step-strictly
-                :controls="false"
-                style="width: 100%"
-                @change="ticketNumberChange"
-              />
+              <el-input-number v-model="form.costTicket" size="small" placeholder="成本票" :step="1" step-strictly
+                :controls="false" style="width: 100%" @change="ticketNumberChange" />
             </el-form-item>
           </el-col>
           <el-col v-if="showVerify()" :span="12">
             <el-form-item label="费用票">
-              <el-input-number
-                v-model="form.feeTicketNumber"
-                size="small"
-                placeholder="费用票"
-                :step="1"
-                step-strictly
-                :controls="false"
-                style="width: 100%"
-                @change="ticketNumberChange"
-              />
+              <el-input-number v-model="form.feeTicketNumber" size="small" placeholder="费用票" :step="1" step-strictly
+                :controls="false" style="width: 100%" @change="ticketNumberChange" />
             </el-form-item>
           </el-col>
           <el-col v-if="showVerify()" :span="12">
             <el-form-item label="银行对账">
-              <el-input-number
-                v-model="form.bankCopyNumber"
-                size="small"
-                placeholder="银行回单"
-                :step="1"
-                step-strictly
-                :controls="false"
-                style="width: 100%"
-                @change="ticketNumberChange"
-              />
+              <el-input-number v-model="form.bankCopyNumber" size="small" placeholder="银行回单" :step="1" step-strictly
+                :controls="false" style="width: 100%" @change="ticketNumberChange" />
             </el-form-item>
           </el-col>
           <el-col v-if="showVerify()" :span="12">
             <el-form-item label="银行回单">
-              <el-input-number
-                v-model="form.bankSlipsNumber"
-                size="small"
-                placeholder="银行回单"
-                :step="1"
-                step-strictly
-                :controls="false"
-                style="width: 100%"
-                @change="ticketNumberChange"
-              />
+              <el-input-number v-model="form.bankSlipsNumber" size="small" placeholder="银行回单" :step="1" step-strictly
+                :controls="false" style="width: 100%" @change="ticketNumberChange" />
             </el-form-item>
           </el-col>
           <el-col v-if="showVerify()" :span="12">
             <el-form-item label="工资单">
-              <el-input-number
-                v-model="form.salaryTicket"
-                size="small"
-                placeholder="工资单"
-                :step="1"
-                step-strictly
-                :controls="false"
-                style="width: 100%"
-                @change="ticketNumberChange"
-              />
+              <el-input-number v-model="form.salaryTicket" size="small" placeholder="工资单" :step="1" step-strictly
+                :controls="false" style="width: 100%" @change="ticketNumberChange" />
             </el-form-item>
           </el-col>
           <el-col v-if="showVerify()" :span="12">
             <el-form-item label="社保公积金">
-              <el-input-number
-                v-model="form.ssafTicket"
-                size="small"
-                placeholder="社保公积金"
-                :step="1"
-                step-strictly
-                :controls="false"
-                style="width: 100%"
-                @change="ticketNumberChange"
-              />
+              <el-input-number v-model="form.ssafTicket" size="small" placeholder="社保公积金" :step="1" step-strictly
+                :controls="false" style="width: 100%" @change="ticketNumberChange" />
             </el-form-item>
           </el-col>
           <el-col v-if="showVerify()" :span="12">
             <el-form-item label="其他票">
-              <el-input-number
-                v-model="form.otherTicket"
-                size="small"
-                placeholder="其他票"
-                :step="1"
-                step-strictly
-                :controls="false"
-                style="width: 100%"
-                @change="ticketNumberChange"
-              />
+              <el-input-number v-model="form.otherTicket" size="small" placeholder="其他票" :step="1" step-strictly
+                :controls="false" style="width: 100%" @change="ticketNumberChange" />
             </el-form-item>
           </el-col>
           <el-col v-if="showVerify()" :span="12">
@@ -238,14 +172,8 @@
           </el-col>
           <el-col :span="24">
             <el-form-item label="审核备注">
-              <el-input
-                v-if="form.status === 2"
-                show-word-limit
-                maxlength="200"
-                v-model.trim="form.verifyContent"
-                type="textarea"
-                rows="2"
-              />
+              <el-input v-if="form.status === 2" show-word-limit maxlength="200" v-model.trim="form.verifyContent"
+                type="textarea" rows="2" />
               <div v-else>{{ form.verifyContent }}</div>
             </el-form-item>
           </el-col>
@@ -253,45 +181,17 @@
       </el-form>
     </div>
     <div class="form-btns-container" style="height: 40px">
-      <el-button
-        v-if="showVerify()"
-        type="danger"
-        size="small"
-        style="float: right; margin-left: 12px"
-        @click="handleVerify(4)"
-        icon="back"
-      >
-        驳回</el-button
-      >
-      <el-button
-        v-if="showVerify()"
-        type="primary"
-        size="small"
-        icon="check"
-        style="float: right; margin-left: 12px"
-        @click="handleVerify(3, 0)"
-        >审核通过</el-button
-      >
-      <el-button
-        v-if="showVerify()"
-        type="primary"
-        size="small"
-        icon="check"
-        style="float: right; margin-left: 12px"
-        @click="handleVerify(3, 1)"
-      >
-        审核通过并反馈</el-button
-      >
-      <el-button
-        v-if="verifiable() && form.status === 3"
-        type="warning"
-        size="small"
-        icon="back"
-        style="float: right; margin-left: 12px"
-        @click="returnStatus()"
-      >
-        退回</el-button
-      >
+      <el-button v-if="showVerify()" type="danger" size="small" style="float: right; margin-left: 12px"
+        @click="handleVerify(4)" icon="back">
+        驳回</el-button>
+      <el-button v-if="showVerify()" type="primary" size="small" icon="check" style="float: right; margin-left: 12px"
+        @click="handleVerify(3, 0)">审核通过</el-button>
+      <el-button v-if="showVerify()" type="primary" size="small" icon="check" style="float: right; margin-left: 12px"
+        @click="handleVerify(3, 1)">
+        审核通过并反馈</el-button>
+      <el-button v-if="verifiable() && form.status === 3" type="warning" size="small" icon="back"
+        style="float: right; margin-left: 12px" @click="returnStatus()">
+        退回</el-button>
     </div>
     <feedback-dialog ref="feedbackDialogView" :verify="verify" />
     <!-- <print-dialog ref="printDialog" /> -->
@@ -322,7 +222,7 @@ const feedbackDialogView = ref(null);
 const props = defineProps({
   getList: {
     type: Function,
-    default: () => {},
+    default: () => { },
   },
 });
 
@@ -450,8 +350,8 @@ function reset() {
   total.value = 0;
 }
 
-function printSalary() {}
-function exportSalary() {}
+function printSalary() { }
+function exportSalary() { }
 
 function showVerify() {
   if (salaryDetail.value == null || salaryDetail.value.status !== 3) {

+ 3 - 3
src/views/business/production/receiveTicketFeedback/index.vue

@@ -33,7 +33,7 @@
         <el-input v-model="queryParams.companyName" style="width: 150px" placeholder="请输入客户名称" clearable
           @keyup.enter="handleQuery" />
       </el-form-item>
-      <el-form-item label="是否自己负责:">
+      <el-form-item v-if="tenant.versionId !== '4'" label="是否自己负责:">
         <el-switch v-model="oneself" @change="handleOneself" />
       </el-form-item>
       <el-form-item>
@@ -98,7 +98,7 @@
     <el-image-viewer v-if="showViewer" :url-list="currentFileList" @close="closeImages" :initial-index="showIndex" />
     <!-- 更多搜索弹窗 -->
     <el-dialog title="更多搜索" v-model="moreSearch" width="620px" size="small" append-to-body draggable>
-      <el-form :model="queryParams" ref="queryRef" :rules="rules" label-width="100">
+      <el-form :model="queryParams" ref="queryRef" label-width="100">
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="反馈月份:" prop="feedbackMonth">
@@ -150,7 +150,7 @@ import { ref } from "vue";
 const { proxy } = getCurrentInstance();
 /** 字典数组区 */
 /** 查询 对象 */
-
+const tenant = useUserStore().tenant
 const list = ref([]);
 const loading = ref(true);
 const oneself = ref(false);

+ 7 - 6
src/views/business/production/salary/index.vue

@@ -22,7 +22,7 @@
           @keyup.enter="handleQuery" />
       </el-form-item>
       <el-form-item label="月份:">
-        <el-select v-model.trim="queryParams.month" size="small" placeholder="月份" style="width: 130px"
+        <el-select v-model.trim="queryParams.month" size="small" placeholder="月份" style="width: 130px" :clearable="false"
           @change="handleQuery">
           <el-option v-for="item in selectMonths" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
@@ -34,7 +34,7 @@
         </el-select>
       </el-form-item>
       <el-form-item>
-        <el-form-item label="是否自己负责:">
+        <el-form-item v-if="tenant.versionId !== '4'" label="是否自己负责:">
           <el-switch v-model="oneself" @change="handleOneself" />
         </el-form-item>
         <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
@@ -115,7 +115,7 @@
     <view-dialog ref="viewDialogRef" :get-list="getList" />
     <!-- 更多搜索弹窗 -->
     <el-dialog title="更多搜索" v-model="moreSearch" width="620px" append-to-body draggable>
-      <el-form :model="queryParams" ref="queryRef" :rules="rules" size="small" label-width="100">
+      <el-form :model="queryParams" ref="queryRef" size="small" label-width="100">
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="客户名称:" prop="companyName">
@@ -123,7 +123,8 @@
                 @keyup.enter="handleQuery" />
             </el-form-item>
             <el-form-item label="月份:">
-              <el-select v-model.trim="queryParams.month" size="small" placeholder="月份" @change="handleQuery">
+              <el-select v-model.trim="queryParams.month" size="small" placeholder="月份" @change="handleQuery"
+                :clearable="false">
                 <el-option v-for="item in selectMonths" :key="item.value" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
@@ -135,7 +136,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="来源:">
+            <el-form-item label="来源:" v-if="tenant.versionId === '4'">
               <el-input size="small" v-model="queryParams.fromCompanyName" type="text" placeholder="客户来源"
                 :clearable="true" />
             </el-form-item>
@@ -176,7 +177,7 @@ import viewDialog from "./view";
 const { proxy } = getCurrentInstance();
 /** 字典数组区 */
 /** 查询 对象 */
-
+const tenant = useUserStore().tenant
 const list = ref([]);
 const loading = ref(true);
 const ids = ref([]);

+ 228 - 57
src/views/business/production/salary/view.vue

@@ -1,5 +1,12 @@
 <template>
-  <el-dialog title="工资信息" v-model="visible" :width="width" append-to-body draggable @close="close">
+  <el-dialog
+    title="工资信息"
+    v-model="visible"
+    :width="width"
+    append-to-body
+    draggable
+    @close="close"
+  >
     <!-- 功能按钮 -->
     <div style="padding: 8px 24px 16px 24px">
       <el-form size="small" label-width="100px" v-model="form">
@@ -19,30 +26,62 @@
               <div class="title">
                 <i class="fa fa-th-list" aria-hidden="true" /> 人员信息
 
-                <!-- <el-button size="small" @click="printSalary" icon="printer" type="primary">打印</el-button>
-                <el-button size="small" @click="exportSalary" icon="download" type="info">导出</el-button> -->
+                <el-button
+                  size="small"
+                  @click="printSalary"
+                  icon="printer"
+                  type="primary"
+                  >打印</el-button
+                >
+
+                <el-button
+                  size="small"
+                  @click="exportSalary"
+                  icon="download"
+                  type="info"
+                  >导出</el-button
+                >
               </div>
               <!-- <el-button size="small" @click="printSalary">打印</el-button>
               <el-button size="small" @click="exportSalary">导出</el-button> -->
             </div>
             <div class="details-body">
               <div>
-                <el-table ref="sourceTable" :data="form.details" size="small" max-height="260px" border show-summary
-                  :summary-method="getSummaries" highlight-current-row header-row-class-name="list-header-row"
-                  row-class-name="list-row" @selection-change="handleCheckChange" @current-change="handleCurrentChange">
-                  <el-table-column type="index" label="序号" width="50" align="center" />
+                <el-table
+                  ref="sourceTable"
+                  :data="form.details"
+                  size="small"
+                  max-height="260px"
+                  border
+                  show-summary
+                  :summary-method="getSummaries"
+                  highlight-current-row
+                  header-row-class-name="list-header-row"
+                  row-class-name="list-row"
+                  @selection-change="handleCheckChange"
+                  @current-change="handleCurrentChange"
+                >
+                  <el-table-column
+                    type="index"
+                    label="序号"
+                    width="50"
+                    align="center"
+                  />
                   <el-table-column label="员工姓名" width="80" align="center">
                     <template #default="scope">
                       <div>
                         {{ scope.row.employeeName }}
                       </div>
-                      <span style="
+                      <span
+                        style="
                           color: red;
                           position: absolute;
                           z-index: 10;
                           top: 4px;
                           right: 6px;
-                        ">*</span>
+                        "
+                        >*</span
+                      >
                     </template>
                   </el-table-column>
                   <el-table-column label="身份证号" width="150" align="center">
@@ -50,30 +89,48 @@
                       <div>
                         {{ scope.row.idCode }}
                       </div>
-                      <span style="
+                      <span
+                        style="
                           color: red;
                           position: absolute;
                           z-index: 10;
                           top: 4px;
                           right: 6px;
-                        ">*</span>
+                        "
+                        >*</span
+                      >
                     </template>
                   </el-table-column>
-                  <el-table-column label="应发工资" width="70" align="center" prop="planSalary">
+                  <el-table-column
+                    label="应发工资"
+                    width="70"
+                    align="center"
+                    prop="planSalary"
+                  >
                     <template #default="scope">
                       <div>
                         {{ scope.row.planSalary }}
                       </div>
                     </template>
                   </el-table-column>
-                  <el-table-column label="实发工资" width="70" align="center" prop="actuallySalary">
+                  <el-table-column
+                    label="实发工资"
+                    width="70"
+                    align="center"
+                    prop="actuallySalary"
+                  >
                     <template #default="scope">
                       <div>
                         {{ scope.row.actuallySalary }}
                       </div>
                     </template>
                   </el-table-column>
-                  <el-table-column label="奖金及其他" width="95" align="center" prop="bonusAmount">
+                  <el-table-column
+                    label="奖金及其他"
+                    width="95"
+                    align="center"
+                    prop="bonusAmount"
+                  >
                     <template #default="scope">
                       <div>
                         {{ scope.row.bonusAmount }}
@@ -81,28 +138,48 @@
                     </template>
                   </el-table-column>
                   <el-table-column label="社保" align="center">
-                    <el-table-column label="养老保险" width="70" align="center" prop="endowmentInsurance">
+                    <el-table-column
+                      label="养老保险"
+                      width="70"
+                      align="center"
+                      prop="endowmentInsurance"
+                    >
                       <template #default="scope">
                         <div>
                           {{ scope.row.endowmentInsurance }}
                         </div>
                       </template>
                     </el-table-column>
-                    <el-table-column label="医疗保险" width="70" align="center" prop="medicalInsurance">
+                    <el-table-column
+                      label="医疗保险"
+                      width="70"
+                      align="center"
+                      prop="medicalInsurance"
+                    >
                       <template #default="scope">
                         <div>
                           {{ scope.row.medicalInsurance }}
                         </div>
                       </template>
                     </el-table-column>
-                    <el-table-column label="失业险" width="70" align="center" prop="unemploymentBenefit">
+                    <el-table-column
+                      label="失业险"
+                      width="70"
+                      align="center"
+                      prop="unemploymentBenefit"
+                    >
                       <template #default="scope">
                         <div>
                           {{ scope.row.unemploymentBenefit }}
                         </div>
                       </template>
                     </el-table-column>
-                    <el-table-column label="大病险" width="70" align="center" prop="seriousIllnessInsurance">
+                    <el-table-column
+                      label="大病险"
+                      width="70"
+                      align="center"
+                      prop="seriousIllnessInsurance"
+                    >
                       <template #default="scope">
                         <div>
                           {{ scope.row.seriousIllnessInsurance }}
@@ -110,34 +187,54 @@
                       </template>
                     </el-table-column>
                   </el-table-column>
-                  <el-table-column label="公积金" width="80" align="center" prop="housingFund">
+                  <el-table-column
+                    label="公积金"
+                    width="80"
+                    align="center"
+                    prop="housingFund"
+                  >
                     <template #default="scope">
                       <div>
                         {{ scope.row.housingFund }}
                       </div>
                     </template>
                   </el-table-column>
-                  <el-table-column label="个税" align="center" :prop="form.status === 3 && form.hasIndividualIncomeTax
-                    ? 'individualIncomeTaxConfirm'
-                    : 'currentIndividualIncomeTax'
-                    ">
+                  <el-table-column
+                    label="个税"
+                    align="center"
+                    :prop="
+                      form.status === 3 && form.hasIndividualIncomeTax
+                        ? 'individualIncomeTaxConfirm'
+                        : 'currentIndividualIncomeTax'
+                    "
+                  >
                     <template #default="scope">
                       <div>
                         {{
                           form.status === 3 && form.hasIndividualIncomeTax
-                          ? scope.row.individualIncomeTaxConfirm
-                          : scope.row.currentIndividualIncomeTax
+                            ? scope.row.individualIncomeTaxConfirm
+                            : scope.row.currentIndividualIncomeTax
                         }}
                       </div>
-                    </template></el-table-column>
-                  <el-table-column label="其他扣款" width="70" align="center" prop="otherCut">
+                    </template></el-table-column
+                  >
+                  <el-table-column
+                    label="其他扣款"
+                    width="70"
+                    align="center"
+                    prop="otherCut"
+                  >
                     <template #default="scope">
                       <div>
                         {{ scope.row.otherCut }}
                       </div>
                     </template>
                   </el-table-column>
-                  <el-table-column label="备注" width="100" header-align="center">
+                  <el-table-column
+                    label="备注"
+                    width="100"
+                    header-align="center"
+                  >
                     <template #default="scope">
                       <div>
                         {{ scope.row.remark }}
@@ -168,13 +265,27 @@
           </el-col>
           <el-col v-if="showVerify()" :span="24">
             <el-form-item label="是否有个税">
-              <el-select v-model.trim="form.hasIndividualIncomeTax" placeholder="请选择" size="small" style="width: 100%"
-                @change="changeIndividual">
-                <el-option v-for="item in confirmChoices" :key="item.value" :label="item.label" :value="item.value" />
+              <el-select
+                v-model.trim="form.hasIndividualIncomeTax"
+                placeholder="请选择"
+                size="small"
+                style="width: 100%"
+                @change="changeIndividual"
+              >
+                <el-option
+                  v-for="item in confirmChoices"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                />
               </el-select>
             </el-form-item>
           </el-col>
-          <el-col v-if="showVerify() && form.hasIndividualIncomeTax === 1" :span="24" class="details-container">
+          <el-col
+            v-if="showVerify() && form.hasIndividualIncomeTax === 1"
+            :span="24"
+            class="details-container"
+          >
             <div class="details-head">
               <div class="title">
                 <i class="fa fa-th-list" aria-hidden="true" /> 人员信息
@@ -182,29 +293,58 @@
             </div>
             <div class="details-body">
               <div>
-                <el-table ref="sourceTable" :data="form.details" size="small" max-height="260px" border
-                  highlight-current-row header-row-class-name="list-header-row" row-class-name="list-row"
-                  @selection-change="handleCheckChange" @current-change="handleCurrentChange">
-                  <el-table-column type="index" label="序号" width="50" align="center" />
+                <el-table
+                  ref="sourceTable"
+                  :data="form.details"
+                  size="small"
+                  max-height="260px"
+                  border
+                  highlight-current-row
+                  header-row-class-name="list-header-row"
+                  row-class-name="list-row"
+                  @selection-change="handleCheckChange"
+                  @current-change="handleCurrentChange"
+                >
+                  <el-table-column
+                    type="index"
+                    label="序号"
+                    width="50"
+                    align="center"
+                  />
                   <el-table-column label="员工姓名" width="120" align="center">
                     <template #default="scope">
                       <div>
                         {{ scope.row.employeeName }}
                       </div>
-                      <span style="
+                      <span
+                        style="
                           color: red;
                           position: absolute;
                           z-index: 10;
                           top: 4px;
                           right: 6px;
-                        ">*</span>
+                        "
+                        >*</span
+                      >
                     </template>
                   </el-table-column>
-                  <el-table-column label="实际个税" align="center" width="120" prop="individualIncomeTaxConfirm">
+                  <el-table-column
+                    label="实际个税"
+                    align="center"
+                    width="120"
+                    prop="individualIncomeTaxConfirm"
+                  >
                     <template #default="scope">
                       <div>
-                        <el-input-number v-model="scope.row.individualIncomeTaxConfirm" size="small" placeholder="个税"
-                          :precision="2" :controls="false" style="width: 100%" @change="rowChangeSum(scope.row)" />
+                        <el-input-number
+                          v-model="scope.row.individualIncomeTaxConfirm"
+                          size="small"
+                          placeholder="个税"
+                          :precision="2"
+                          :controls="false"
+                          style="width: 100%"
+                          @change="rowChangeSum(scope.row)"
+                        />
                       </div>
                     </template>
                   </el-table-column>
@@ -215,8 +355,14 @@
           </el-col>
           <el-col :span="24">
             <el-form-item label="审核备注">
-              <el-input v-if="form.status === 2" v-model.trim="form.verifyContent" maxlength="200" show-word-limit
-                type="textarea" rows="2" />
+              <el-input
+                v-if="form.status === 2"
+                v-model.trim="form.verifyContent"
+                maxlength="200"
+                show-word-limit
+                type="textarea"
+                rows="2"
+              />
               <span v-else> {{ form.verifyContent }}</span>
             </el-form-item>
           </el-col>
@@ -224,17 +370,37 @@
       </el-form>
     </div>
     <div class="form-btns-container" style="height: 40px">
-      <el-button v-if="showVerify()" type="danger" size="small" icon="back" style="float: right; margin-left: 12px"
-        @click="handleVerify(4)">
-        驳回</el-button>
-      <el-button v-if="showVerify()" type="primary" icon="check" size="small" style="float: right; margin-left: 12px"
-        @click="handleVerify(3)">
-        审核通过</el-button>
-      <el-button v-if="verifiable() && form.status === 3" type="warning" size="small" icon="back"
-        style="float: right; margin-left: 12px" @click="returnStatus()">退回</el-button>
+      <el-button
+        v-if="showVerify()"
+        type="danger"
+        size="small"
+        icon="back"
+        style="float: right; margin-left: 12px"
+        @click="handleVerify(4)"
+      >
+        驳回</el-button
+      >
+      <el-button
+        v-if="showVerify()"
+        type="primary"
+        icon="check"
+        size="small"
+        style="float: right; margin-left: 12px"
+        @click="handleVerify(3)"
+      >
+        审核通过</el-button
+      >
+      <el-button
+        v-if="verifiable() && form.status === 3"
+        type="warning"
+        size="small"
+        icon="back"
+        style="float: right; margin-left: 12px"
+        @click="returnStatus()"
+        >退回</el-button
+      >
     </div>
     <feedback-dialog ref="feedbackDialogView" :verify="verify" />
-    <!-- <print-dialog ref="printDialog" /> -->
   </el-dialog>
 </template>
 <script setup>
@@ -242,7 +408,8 @@ import {
   getDetail,
   verifyDetail,
   turnBackDetail,
-  exportSalaryEmployee
+  exportSalaryEmployee,
+  exportSalaryPdf,
 } from "@/api/business/production/salary";
 import feedbackDialog from "../feedbackDialog.vue";
 import useUserStore from "@/store/modules/user";
@@ -255,7 +422,6 @@ const currentSource = ref(null);
 
 const permissions = useUserStore().permissions;
 const all_permission = "*:*:*";
-
 const feedbackDialogView = ref(null);
 
 const confirmChoices = ref([
@@ -272,7 +438,7 @@ const confirmChoices = ref([
 const props = defineProps({
   getList: {
     type: Function,
-    default: () => { },
+    default: () => {},
   },
 });
 
@@ -350,9 +516,14 @@ function reset() {
   total.value = 0;
 }
 
-function printSalary() { }
+//打印工资列表
+function printSalary() {
+  exportSalaryPdf(form.value.id);
+}
+
+//导出工资列表
 function exportSalary() {
-  exportSalaryEmployee(form.value.id)
+  exportSalaryEmployee(form.value.id);
 }
 
 function showVerify() {

+ 12 - 11
src/views/business/production/salaryZero/index.vue

@@ -23,7 +23,7 @@
       </el-form-item>
       <el-form-item label="月份:">
         <el-select v-model.trim="queryParams.month" size="small" placeholder="月份" style="width: 130px"
-          @change="handleQuery">
+          @change="handleQuery" :clearable="false">
           <el-option v-for="item in selectMonths" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
       </el-form-item>
@@ -33,7 +33,7 @@
           <el-option v-for="item in selectStatus" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
       </el-form-item>
-      <el-form-item label="是否自己负责:">
+      <el-form-item v-if="tenant.versionId !== '4'" label="是否自己负责:">
         <el-switch v-model="oneself" @change="handleOneself" />
       </el-form-item>
       <el-form-item>
@@ -109,17 +109,16 @@
     <view-dialog ref="viewDialogRef" :get-list="getList" />
     <!-- 更多搜索弹窗 -->
     <el-dialog title="更多搜索" v-model="moreSearch" width="620px" append-to-body draggable>
-      <el-form :model="queryParams" ref="queryRef" :rules="rules" size="small" label-width="100">
+      <el-form :model="queryParams" ref="queryRef" size="small" label-width="100">
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="客户名称:" prop="companyName">
               <el-input v-model="queryParams.companyName" size="small" placeholder="请输入客户名称" clearable
                 @keyup.enter="handleQuery" />
             </el-form-item>
-            <el-form-item label="月份:">
-              <el-select v-model.trim="queryParams.month" size="small" placeholder="月份" @change="handleQuery">
-                <el-option v-for="item in selectMonths" :key="item.value" :label="item.label" :value="item.value" />
-              </el-select>
+            <el-form-item v-if="tenant.versionId === '4'" label="来源:">
+              <el-input size="small" v-model="queryParams.fromCompanyName" type="text" placeholder="客户来源"
+                :clearable="true" />
             </el-form-item>
             <el-form-item label="状态:">
               <el-select v-model.trim="queryParams.status" prop="status" size="small" type="text" placeholder="状态"
@@ -129,9 +128,11 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="来源:">
-              <el-input size="small" v-model="queryParams.fromCompanyName" type="text" placeholder="客户来源"
-                :clearable="true" />
+            <el-form-item label="月份:">
+              <el-select v-model.trim="queryParams.month" size="small" placeholder="月份" @change="handleQuery"
+                :clearable="false">
+                <el-option v-for="item in selectMonths" :key="item.value" :label="item.label" :value="item.value" />
+              </el-select>
             </el-form-item>
             <el-form-item label="纳税性质:">
               <el-select size="small" v-model="queryParams.taxType" placeholder="请选择纳税性质" :clearable="true"
@@ -164,7 +165,7 @@ import viewDialog from "./view";
 const { proxy } = getCurrentInstance();
 /** 字典数组区 */
 /** 查询 对象 */
-
+const tenant = useUserStore().tenant
 const list = ref([]);
 const oneself = ref(false);
 const loading = ref(true);

+ 229 - 55
src/views/business/production/salaryZero/view.vue

@@ -1,5 +1,12 @@
 <template>
-  <el-dialog title="工资信息" v-model="visible" :width="width" append-to-body draggable @close="close">
+  <el-dialog
+    title="工资信息"
+    v-model="visible"
+    :width="width"
+    append-to-body
+    draggable
+    @close="close"
+  >
     <!-- 功能按钮 -->
     <div style="padding: 8px 24px 16px 24px">
       <el-form size="small" label-width="100px" v-model="form">
@@ -18,28 +25,60 @@
             <div class="details-head">
               <div class="title">
                 <i class="fa fa-th-list" aria-hidden="true" /> 人员信息
+
+                <el-button
+                  size="small"
+                  @click="printSalary"
+                  icon="printer"
+                  type="primary"
+                  >打印</el-button
+                >
+                <el-button
+                  size="small"
+                  @click="exportSalary"
+                  icon="download"
+                  type="info"
+                  >导出</el-button
+                >
               </div>
-              <!-- <el-button size="small" @click="printSalary">打印</el-button>
-              <el-button size="small" @click="exportSalary">导出</el-button> -->
             </div>
             <div class="details-body">
               <div>
-                <el-table ref="sourceTable" :data="form.details" size="small" max-height="260px" border show-summary
-                  :summary-method="getSummaries" highlight-current-row header-row-class-name="list-header-row"
-                  row-class-name="list-row" @selection-change="handleCheckChange" @current-change="handleCurrentChange">
-                  <el-table-column type="index" label="序号" width="50" align="center" />
+                <el-table
+                  ref="sourceTable"
+                  :data="form.details"
+                  size="small"
+                  max-height="260px"
+                  border
+                  show-summary
+                  :summary-method="getSummaries"
+                  highlight-current-row
+                  header-row-class-name="list-header-row"
+                  row-class-name="list-row"
+                  @selection-change="handleCheckChange"
+                  @current-change="handleCurrentChange"
+                >
+                  <el-table-column
+                    type="index"
+                    label="序号"
+                    width="50"
+                    align="center"
+                  />
                   <el-table-column label="员工姓名" width="80" align="center">
                     <template #default="scope">
                       <div>
                         {{ scope.row.employeeName }}
                       </div>
-                      <span style="
+                      <span
+                        style="
                           color: red;
                           position: absolute;
                           z-index: 10;
                           top: 4px;
                           right: 6px;
-                        ">*</span>
+                        "
+                        >*</span
+                      >
                     </template>
                   </el-table-column>
                   <el-table-column label="身份证号" width="150" align="center">
@@ -47,30 +86,48 @@
                       <div>
                         {{ scope.row.idCode }}
                       </div>
-                      <span style="
+                      <span
+                        style="
                           color: red;
                           position: absolute;
                           z-index: 10;
                           top: 4px;
                           right: 6px;
-                        ">*</span>
+                        "
+                        >*</span
+                      >
                     </template>
                   </el-table-column>
-                  <el-table-column label="应发工资" width="70" align="center" prop="planSalary">
+                  <el-table-column
+                    label="应发工资"
+                    width="70"
+                    align="center"
+                    prop="planSalary"
+                  >
                     <template #default="scope">
                       <div>
                         {{ scope.row.planSalary }}
                       </div>
                     </template>
                   </el-table-column>
-                  <el-table-column label="实发工资" width="70" align="center" prop="actuallySalary">
+                  <el-table-column
+                    label="实发工资"
+                    width="70"
+                    align="center"
+                    prop="actuallySalary"
+                  >
                     <template #default="scope">
                       <div>
                         {{ scope.row.actuallySalary }}
                       </div>
                     </template>
                   </el-table-column>
-                  <el-table-column label="奖金及其他" width="95" align="center" prop="bonusAmount">
+                  <el-table-column
+                    label="奖金及其他"
+                    width="95"
+                    align="center"
+                    prop="bonusAmount"
+                  >
                     <template #default="scope">
                       <div>
                         {{ scope.row.bonusAmount }}
@@ -78,28 +135,48 @@
                     </template>
                   </el-table-column>
                   <el-table-column label="社保" align="center">
-                    <el-table-column label="养老保险" width="70" align="center" prop="endowmentInsurance">
+                    <el-table-column
+                      label="养老保险"
+                      width="70"
+                      align="center"
+                      prop="endowmentInsurance"
+                    >
                       <template #default="scope">
                         <div>
                           {{ scope.row.endowmentInsurance }}
                         </div>
                       </template>
                     </el-table-column>
-                    <el-table-column label="医疗保险" width="70" align="center" prop="medicalInsurance">
+                    <el-table-column
+                      label="医疗保险"
+                      width="70"
+                      align="center"
+                      prop="medicalInsurance"
+                    >
                       <template #default="scope">
                         <div>
                           {{ scope.row.medicalInsurance }}
                         </div>
                       </template>
                     </el-table-column>
-                    <el-table-column label="失业险" width="70" align="center" prop="unemploymentBenefit">
+                    <el-table-column
+                      label="失业险"
+                      width="70"
+                      align="center"
+                      prop="unemploymentBenefit"
+                    >
                       <template #default="scope">
                         <div>
                           {{ scope.row.unemploymentBenefit }}
                         </div>
                       </template>
                     </el-table-column>
-                    <el-table-column label="大病险" width="70" align="center" prop="seriousIllnessInsurance">
+                    <el-table-column
+                      label="大病险"
+                      width="70"
+                      align="center"
+                      prop="seriousIllnessInsurance"
+                    >
                       <template #default="scope">
                         <div>
                           {{ scope.row.seriousIllnessInsurance }}
@@ -107,34 +184,54 @@
                       </template>
                     </el-table-column>
                   </el-table-column>
-                  <el-table-column label="公积金" width="80" align="center" prop="housingFund">
+                  <el-table-column
+                    label="公积金"
+                    width="80"
+                    align="center"
+                    prop="housingFund"
+                  >
                     <template #default="scope">
                       <div>
                         {{ scope.row.housingFund }}
                       </div>
                     </template>
                   </el-table-column>
-                  <el-table-column label="个税" align="center" :prop="form.status === 3 && form.hasIndividualIncomeTax
-                      ? 'individualIncomeTaxConfirm'
-                      : 'currentIndividualIncomeTax'
-                    ">
+                  <el-table-column
+                    label="个税"
+                    align="center"
+                    :prop="
+                      form.status === 3 && form.hasIndividualIncomeTax
+                        ? 'individualIncomeTaxConfirm'
+                        : 'currentIndividualIncomeTax'
+                    "
+                  >
                     <template #default="scope">
                       <div>
                         {{
                           form.status === 3 && form.hasIndividualIncomeTax
-                          ? scope.row.individualIncomeTaxConfirm
-                          : scope.row.currentIndividualIncomeTax
+                            ? scope.row.individualIncomeTaxConfirm
+                            : scope.row.currentIndividualIncomeTax
                         }}
                       </div>
-                    </template></el-table-column>
-                  <el-table-column label="其他扣款" width="70" align="center" prop="otherCut">
+                    </template></el-table-column
+                  >
+                  <el-table-column
+                    label="其他扣款"
+                    width="70"
+                    align="center"
+                    prop="otherCut"
+                  >
                     <template #default="scope">
                       <div>
                         {{ scope.row.otherCut }}
                       </div>
                     </template>
                   </el-table-column>
-                  <el-table-column label="备注" width="100" header-align="center">
+                  <el-table-column
+                    label="备注"
+                    width="100"
+                    header-align="center"
+                  >
                     <template #default="scope">
                       <div>
                         {{ scope.row.remark }}
@@ -165,13 +262,27 @@
           </el-col>
           <el-col v-if="showVerify()" :span="24">
             <el-form-item label="是否有个税">
-              <el-select v-model.trim="form.hasIndividualIncomeTax" placeholder="请选择" size="small" style="width: 100%"
-                @change="changeIndividual">
-                <el-option v-for="item in confirmChoices" :key="item.value" :label="item.label" :value="item.value" />
+              <el-select
+                v-model.trim="form.hasIndividualIncomeTax"
+                placeholder="请选择"
+                size="small"
+                style="width: 100%"
+                @change="changeIndividual"
+              >
+                <el-option
+                  v-for="item in confirmChoices"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                />
               </el-select>
             </el-form-item>
           </el-col>
-          <el-col v-if="showVerify() && form.hasIndividualIncomeTax === 1" :span="24" class="details-container">
+          <el-col
+            v-if="showVerify() && form.hasIndividualIncomeTax === 1"
+            :span="24"
+            class="details-container"
+          >
             <div class="details-head">
               <div class="title">
                 <i class="fa fa-th-list" aria-hidden="true" /> 人员信息
@@ -179,29 +290,58 @@
             </div>
             <div class="details-body">
               <div>
-                <el-table ref="sourceTable" :data="form.details" size="small" max-height="260px" border
-                  highlight-current-row header-row-class-name="list-header-row" row-class-name="list-row"
-                  @selection-change="handleCheckChange" @current-change="handleCurrentChange">
-                  <el-table-column type="index" label="序号" width="50" align="center" />
+                <el-table
+                  ref="sourceTable"
+                  :data="form.details"
+                  size="small"
+                  max-height="260px"
+                  border
+                  highlight-current-row
+                  header-row-class-name="list-header-row"
+                  row-class-name="list-row"
+                  @selection-change="handleCheckChange"
+                  @current-change="handleCurrentChange"
+                >
+                  <el-table-column
+                    type="index"
+                    label="序号"
+                    width="50"
+                    align="center"
+                  />
                   <el-table-column label="员工姓名" width="120" align="center">
                     <template #default="scope">
                       <div>
                         {{ scope.row.employeeName }}
                       </div>
-                      <span style="
+                      <span
+                        style="
                           color: red;
                           position: absolute;
                           z-index: 10;
                           top: 4px;
                           right: 6px;
-                        ">*</span>
+                        "
+                        >*</span
+                      >
                     </template>
                   </el-table-column>
-                  <el-table-column label="实际个税" align="center" width="120" prop="individualIncomeTaxConfirm">
+                  <el-table-column
+                    label="实际个税"
+                    align="center"
+                    width="120"
+                    prop="individualIncomeTaxConfirm"
+                  >
                     <template #default="scope">
                       <div>
-                        <el-input-number v-model="scope.row.individualIncomeTaxConfirm" size="small" placeholder="个税"
-                          :precision="2" :controls="false" style="width: 100%" @change="rowChangeSum(scope.row)" />
+                        <el-input-number
+                          v-model="scope.row.individualIncomeTaxConfirm"
+                          size="small"
+                          placeholder="个税"
+                          :precision="2"
+                          :controls="false"
+                          style="width: 100%"
+                          @change="rowChangeSum(scope.row)"
+                        />
                       </div>
                     </template>
                   </el-table-column>
@@ -212,8 +352,14 @@
           </el-col>
           <el-col :span="24">
             <el-form-item label="审核备注">
-              <el-input v-if="form.status === 2" maxlength="200" show-word-limit v-model.trim="form.verifyContent"
-                type="textarea" rows="2" />
+              <el-input
+                v-if="form.status === 2"
+                maxlength="200"
+                show-word-limit
+                v-model.trim="form.verifyContent"
+                type="textarea"
+                rows="2"
+              />
               <span v-else>{{ form.verifyContent }}</span>
             </el-form-item>
           </el-col>
@@ -221,15 +367,36 @@
       </el-form>
     </div>
     <div class="form-btns-container" style="height: 40px">
-      <el-button v-if="showVerify()" type="danger" size="small" icon="back" style="float: right; margin-left: 12px"
-        @click="handleVerify(4)">
-        驳回</el-button>
-      <el-button v-if="showVerify()" type="primary" size="small" style="float: right; margin-left: 12px" icon="check"
-        @click="handleVerify(3)">
-        审核通过</el-button>
-      <el-button v-if="verifiable() && form.status === 3" type="warning" size="small" icon="back"
-        style="float: right; margin-left: 12px" @click="returnStatus()">
-        退回</el-button>
+      <el-button
+        v-if="showVerify()"
+        type="danger"
+        size="small"
+        icon="back"
+        style="float: right; margin-left: 12px"
+        @click="handleVerify(4)"
+      >
+        驳回</el-button
+      >
+      <el-button
+        v-if="showVerify()"
+        type="primary"
+        size="small"
+        style="float: right; margin-left: 12px"
+        icon="check"
+        @click="handleVerify(3)"
+      >
+        审核通过</el-button
+      >
+      <el-button
+        v-if="verifiable() && form.status === 3"
+        type="warning"
+        size="small"
+        icon="back"
+        style="float: right; margin-left: 12px"
+        @click="returnStatus()"
+      >
+        退回</el-button
+      >
     </div>
     <feedback-dialog ref="feedbackDialogView" :verify="verify" />
     <!-- <print-dialog ref="printDialog" /> -->
@@ -240,6 +407,8 @@ import {
   getDetail,
   verifyDetail,
   turnBackDetail,
+  exportSalaryEmployee,
+  exportSalaryPdf,
 } from "@/api/business/production/salaryZero";
 import feedbackDialog from "../feedbackDialog.vue";
 import useUserStore from "@/store/modules/user";
@@ -269,7 +438,7 @@ const confirmChoices = ref([
 const props = defineProps({
   getList: {
     type: Function,
-    default: () => { },
+    default: () => {},
   },
 });
 
@@ -347,8 +516,13 @@ function reset() {
   total.value = 0;
 }
 
-function printSalary() { }
-function exportSalary() { }
+function printSalary() {
+  exportSalaryPdf(form.value.id);
+}
+
+function exportSalary() {
+  exportSalaryEmployee(form.value.id);
+}
 
 function showVerify() {
   if (

+ 2 - 1
src/views/business/service/loop/housingFundView.vue

@@ -158,7 +158,8 @@
           </el-col>
           <el-col :span="24">
             <el-form-item label="备注">
-              <el-input v-model.trim="form.housingFundDeclare.content" type="textarea" rows="2" />
+              <!-- <el-input v-model.trim="form.housingFundDeclare.content" type="textarea" rows="2" /> -->
+              {{ form.housingFundDeclare.content }}
             </el-form-item>
           </el-col>
           <el-col :span="24">

+ 15 - 11
src/views/business/service/loop/index.vue

@@ -5,16 +5,17 @@
       <!-- <el-button type="danger" size="small" icon="Delete" :disabled="multiple" @click="handleDelete"
         v-hasPermi="['business:workOrder:remove']">删除</el-button> -->
       <el-dropdown>
-        <el-button type="primary" size="small">
+        <el-button type="primary" size="small"
+          v-if="hasPermi(['business:customer:service:loop:export', 'business:customer:service:loop:transactor'])">
           其它<el-icon class="el-icon--right"><arrow-down /></el-icon>
         </el-button>
         <template #dropdown>
           <el-dropdown-menu>
             <el-dropdown-item icon="Download" @click="handleExport"
-              v-hasPermi="['business:customer:service:loop:export']">
+              v-if="hasPermi(['business:customer:service:loop:export'])">
               导出</el-dropdown-item>
             <el-dropdown-item icon="Operation" @click="setServiceHandler"
-              v-hasPermi="['business:customer:service:loop:transactor']">
+              v-if="hasPermi(['business:customer:service:loop:transactor'])">
               设置执行人</el-dropdown-item>
           </el-dropdown-menu>
         </template>
@@ -172,15 +173,16 @@
 
 <script setup name="Company">
 // import contractForm from "./form";
+import auth from '@/plugins/auth'
 import { listLoop } from "@/api/business/crm/serviceWorkOrder";
 import { listCompany } from "@/api/business/crm/company";
 import serviceForm from "../serviceForm";
 import { reactive, ref, toRefs } from "vue";
-import KeepAccountView from "./keepAccountView.vue";
-import KeepAccountForm from "./keepAccountForm.vue";
-import HousingFundForm from "./housingFundForm.vue";
-import HousingFundView from "./housingFundView.vue";
-import SocialSecurityForm from "./socialSecurityForm.vue";
+import KeepAccountView from "./keepAccountView";
+import KeepAccountForm from "./keepAccountForm";
+import HousingFundForm from "./housingFundForm";
+import HousingFundView from "./housingFundView";
+import SocialSecurityForm from "./socialSecurityForm";
 import SocialSecurityView from "./socialSecurityView.vue";
 import useUserStore from "@/store/modules/user";
 const permissions = useUserStore().permissions;
@@ -477,9 +479,8 @@ function handleByRow(row, item) {
   }
   if (
     record != null &&
-    record.status === 3 &&
-    (editable || viewable) &&
-    row.isStop == 1
+    (record.status === 3 || row.isStop == 1) &&
+    (editable || viewable)
   ) {
     if (row.taskTypeId === "1") {
       keepAccountViewRef.value.open({
@@ -607,5 +608,8 @@ function handleByRow(row, item) {
   }
 }
 
+function hasPermi(arr) {
+  return auth.hasPermiOr(arr)
+}
 getList();
 </script>

+ 112 - 486
src/views/business/service/loop/keepAccountForm.vue

@@ -1,13 +1,5 @@
 <template>
-  <el-dialog
-    title="记账信息"
-    v-model="visible"
-    :width="width"
-    append-to-body
-    draggable
-    @close="close"
-    class="dialog-form"
-  >
+  <el-dialog title="记账信息" v-model="visible" :width="width" append-to-body draggable @close="close" class="dialog-form">
     <!-- <div slot="title" class="dialog-title-container">
       <span class="title-label"><i class="el-icon-document" /> 工资信息</span>
       <i class="el-icon-close" @click="close" />
@@ -29,12 +21,7 @@
           <el-col :span="12">
             <el-form-item label="服务状态">
               <el-select v-model="form.status" placeholder="请选择">
-                <el-option
-                  v-for="item in selectStatus"
-                  :key="item.value"
-                  :value="item.value"
-                  :label="item.label"
-                />
+                <el-option v-for="item in selectStatus" :key="item.value" :value="item.value" :label="item.label" />
               </el-select>
             </el-form-item>
           </el-col>
@@ -45,303 +32,139 @@
               <div class="title">
                 <i class="fa fa-th-list" aria-hidden="true" /> 工资人员信息
               </div>
-              <el-button
-                type="primary"
-                size="small"
-                icon="plus"
-                @click="handleEmployeeCreate"
-                >新增</el-button
-              >
-              <el-button
-                v-if="selections.length > 0"
-                type="danger"
-                size="small"
-                icon="delete"
-                @click="handleEmployeeBatchDelete"
-              >
-                删除</el-button
-              >
+              <el-button type="primary" size="small" icon="plus" @click="handleEmployeeCreate">新增</el-button>
+              <el-button v-if="selections.length > 0" type="danger" size="small" icon="delete"
+                @click="handleEmployeeBatchDelete">
+                删除</el-button>
             </div>
             <div class="details-body">
               <div>
-                <el-table
-                  ref="sourceTable"
-                  :data="form.salary.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 ref="sourceTable" :data="form.salary.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 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%"
-                        />
+                        <el-input v-model="scope.row.employeeName" size="small" placeholder="员工姓名" style="width: 100%" />
                       </div>
-                      <span
-                        style="
+                      <span style="
                           color: red;
                           position: absolute;
                           z-index: 10;
                           top: 4px;
                           right: 12px;
-                        "
-                        >*</span
-                      >
+                        ">*</span>
                     </template>
                   </el-table-column>
                   <el-table-column label="身份证号" width="150" align="center">
                     <template #default="scope">
                       <div>
-                        <el-input
-                          v-model="scope.row.idCode"
-                          size="small"
-                          placeholder="身份证号"
-                          style="width: 100%"
-                        />
+                        <el-input v-model="scope.row.idCode" size="small" placeholder="身份证号" style="width: 100%" />
                       </div>
-                      <span
-                        style="
+                      <span style="
                           color: red;
                           position: absolute;
                           z-index: 10;
                           top: 4px;
                           right: 12px;
-                        "
-                        >*</span
-                      >
+                        ">*</span>
                     </template>
                   </el-table-column>
-                  <el-table-column
-                    label="应发工资"
-                    width="70"
-                    align="center"
-                    prop="planSalary"
-                  >
+                  <el-table-column label="应发工资" width="70" align="center" prop="planSalary">
                     <template #default="scope">
                       <div>
-                        <el-input-number
-                          v-model="scope.row.planSalary"
-                          size="small"
-                          placeholder="应发工资"
-                          :precision="2"
-                          :controls="false"
-                          style="width: 100%"
-                          @change="rowChangeSum(scope.row)"
-                        />
+                        <el-input-number v-model="scope.row.planSalary" size="small" placeholder="应发工资" :precision="2"
+                          :controls="false" style="width: 100%" @change="rowChangeSum(scope.row)" />
                       </div>
                     </template>
                   </el-table-column>
-                  <el-table-column
-                    label="实发工资"
-                    width="70"
-                    align="center"
-                    prop="actuallySalary"
-                  >
+                  <el-table-column label="实发工资" width="70" align="center" prop="actuallySalary">
                     <template #default="scope">
                       <div>
-                        <el-input-number
+                        <!-- <el-input-number
                           v-model="scope.row.actuallySalary"
                           size="small"
                           placeholder="实发工资"
                           :precision="2"
                           :controls="false"
                           style="width: 100%"
-                        />
+                        /> -->
+                        {{ scope.row.actuallySalary }}
                       </div>
                     </template>
                   </el-table-column>
-                  <el-table-column
-                    label="奖金及其他"
-                    width="85"
-                    align="center"
-                    prop="bonusAmount"
-                  >
+                  <el-table-column label="奖金及其他" width="85" align="center" prop="bonusAmount">
                     <template #default="scope">
                       <div>
-                        <el-input-number
-                          v-model="scope.row.bonusAmount"
-                          size="small"
-                          placeholder="奖金及其他"
-                          :precision="2"
-                          :controls="false"
-                          style="width: 100%"
-                          @change="rowChangeSum(scope.row)"
-                        />
+                        <el-input-number v-model="scope.row.bonusAmount" size="small" placeholder="奖金及其他" :precision="2"
+                          :controls="false" style="width: 100%" @change="rowChangeSum(scope.row)" />
                       </div>
                     </template>
                   </el-table-column>
                   <el-table-column label="社保" align="center">
-                    <el-table-column
-                      label="养老保险"
-                      width="70"
-                      align="center"
-                      prop="endowmentInsurance"
-                    >
+                    <el-table-column label="养老保险" width="70" align="center" prop="endowmentInsurance">
                       <template #default="scope">
                         <div>
-                          <el-input-number
-                            v-model="scope.row.endowmentInsurance"
-                            size="small"
-                            placeholder="养老保险"
-                            :precision="2"
-                            :controls="false"
-                            style="width: 100%"
-                            @change="rowChangeSum(scope.row)"
-                          />
+                          <el-input-number v-model="scope.row.endowmentInsurance" size="small" placeholder="养老保险"
+                            :precision="2" :controls="false" style="width: 100%" @change="rowChangeSum(scope.row)" />
                         </div>
                       </template>
                     </el-table-column>
-                    <el-table-column
-                      label="医疗保险"
-                      width="70"
-                      align="center"
-                      prop="medicalInsurance"
-                    >
+                    <el-table-column label="医疗保险" width="70" align="center" prop="medicalInsurance">
                       <template #default="scope">
                         <div>
-                          <el-input-number
-                            v-model="scope.row.medicalInsurance"
-                            size="small"
-                            placeholder="医疗保险"
-                            :precision="2"
-                            :controls="false"
-                            style="width: 100%"
-                            @change="rowChangeSum(scope.row)"
-                          />
+                          <el-input-number v-model="scope.row.medicalInsurance" size="small" placeholder="医疗保险"
+                            :precision="2" :controls="false" style="width: 100%" @change="rowChangeSum(scope.row)" />
                         </div>
                       </template>
                     </el-table-column>
-                    <el-table-column
-                      label="失业险"
-                      width="70"
-                      align="center"
-                      prop="unemploymentBenefit"
-                    >
+                    <el-table-column label="失业险" width="70" align="center" prop="unemploymentBenefit">
                       <template #default="scope">
                         <div>
-                          <el-input-number
-                            v-model="scope.row.unemploymentBenefit"
-                            size="small"
-                            placeholder="失业险"
-                            :precision="2"
-                            :controls="false"
-                            style="width: 100%"
-                            @change="rowChangeSum(scope.row)"
-                          />
+                          <el-input-number v-model="scope.row.unemploymentBenefit" size="small" placeholder="失业险"
+                            :precision="2" :controls="false" style="width: 100%" @change="rowChangeSum(scope.row)" />
                         </div>
                       </template>
                     </el-table-column>
-                    <el-table-column
-                      label="大病险"
-                      width="70"
-                      align="center"
-                      prop="seriousIllnessInsurance"
-                    >
+                    <el-table-column label="大病险" width="70" align="center" prop="seriousIllnessInsurance">
                       <template #default="scope">
                         <div>
-                          <el-input-number
-                            v-model="scope.row.seriousIllnessInsurance"
-                            size="small"
-                            placeholder="大病险"
-                            :precision="2"
-                            :controls="false"
-                            style="width: 100%"
-                            @change="rowChangeSum(scope.row)"
-                          />
+                          <el-input-number v-model="scope.row.seriousIllnessInsurance" size="small" placeholder="大病险"
+                            :precision="2" :controls="false" style="width: 100%" @change="rowChangeSum(scope.row)" />
                         </div>
                       </template>
                     </el-table-column>
                   </el-table-column>
-                  <el-table-column
-                    label="公积金"
-                    width="70"
-                    align="center"
-                    prop="housingFund"
-                  >
+                  <el-table-column label="公积金" width="70" align="center" prop="housingFund">
                     <template #default="scope">
                       <div>
-                        <el-input-number
-                          v-model="scope.row.housingFund"
-                          size="small"
-                          placeholder="住房公积金"
-                          :precision="2"
-                          :controls="false"
-                          style="width: 100%"
-                          @change="rowChangeSum(scope.row)"
-                        />
+                        <el-input-number v-model="scope.row.housingFund" size="small" placeholder="住房公积金" :precision="2"
+                          :controls="false" style="width: 100%" @change="rowChangeSum(scope.row)" />
                       </div>
                     </template>
                   </el-table-column>
-                  <el-table-column
-                    label="个税"
-                    align="center"
-                    width="70"
-                    prop="currentIndividualIncomeTax"
-                  >
+                  <el-table-column label="个税" align="center" width="70" prop="currentIndividualIncomeTax">
                     <template #default="scope">
                       <div>
-                        <el-input-number
-                          v-model="scope.row.currentIndividualIncomeTax"
-                          size="small"
-                          placeholder="个税"
-                          :precision="2"
-                          :controls="false"
-                          style="width: 100%"
-                          @change="rowChangeSum(scope.row)"
-                        />
-                      </div> </template
-                  ></el-table-column>
-                  <el-table-column
-                    label="其他扣款"
-                    width="70"
-                    align="center"
-                    prop="otherCut"
-                  >
+                        <el-input-number v-model="scope.row.currentIndividualIncomeTax" size="small" placeholder="个税"
+                          :precision="2" :controls="false" style="width: 100%" @change="rowChangeSum(scope.row)" />
+                      </div>
+                    </template></el-table-column>
+                  <el-table-column label="其他扣款" width="70" align="center" prop="otherCut">
                     <template #default="scope">
                       <div>
-                        <el-input-number
-                          v-model="scope.row.otherCut"
-                          size="small"
-                          placeholder="其他扣款"
-                          :precision="2"
-                          :controls="false"
-                          style="width: 100%"
-                          @change="rowChangeSum(scope.row)"
-                        />
+                        <el-input-number v-model="scope.row.otherCut" size="small" placeholder="其他扣款" :precision="2"
+                          :controls="false" style="width: 100%" @change="rowChangeSum(scope.row)" />
                       </div>
                     </template>
                   </el-table-column>
-                  <el-table-column
-                    label="备注"
-                    width="100"
-                    header-align="center"
-                  >
+                  <el-table-column label="备注" width="100" header-align="center">
                     <template #default="scope">
                       <div>
-                        <el-input
-                          v-model="scope.row.remark"
-                          size="small"
-                          placeholder="备注"
-                        />
+                        <el-input v-model="scope.row.remark" size="small" placeholder="备注" />
                       </div>
                     </template>
                   </el-table-column>
@@ -359,126 +182,56 @@
           </el-col>
           <el-col :span="24">
             <el-form-item label="工资备注">
-              <el-input
-                v-model.trim="form.salary.content"
-                maxlength="200"
-                show-word-limit
-                type="textarea"
-                rows="2"
-              />
+              <el-input v-model.trim="form.salary.content" maxlength="200" show-word-limit type="textarea" rows="2" />
             </el-form-item>
           </el-col>
           <el-divider content-position="left">收票</el-divider>
           <el-col :span="12">
             <el-form-item label="收入票">
-              <el-input-number
-                v-model="form.ticket.incomeTicket"
-                size="small"
-                placeholder="收入票"
-                :step="1"
-                step-strictly
-                :controls="false"
-                style="width: 100%"
-                @change="ticketNumberChange"
-              />
+              <el-input-number v-model="form.ticket.incomeTicket" size="small" placeholder="收入票" :step="1" step-strictly
+                :controls="false" style="width: 100%" @change="ticketNumberChange" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="成本票">
-              <el-input-number
-                v-model="form.ticket.costTicket"
-                size="small"
-                placeholder="成本票"
-                :step="1"
-                step-strictly
-                :controls="false"
-                style="width: 100%"
-                @change="ticketNumberChange"
-              />
+              <el-input-number v-model="form.ticket.costTicket" size="small" placeholder="成本票" :step="1" step-strictly
+                :controls="false" style="width: 100%" @change="ticketNumberChange" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="费用票">
-              <el-input-number
-                v-model="form.ticket.feeTicketNumber"
-                size="small"
-                placeholder="费用票"
-                :step="1"
-                step-strictly
-                :controls="false"
-                style="width: 100%"
-                @change="ticketNumberChange"
-              />
+              <el-input-number v-model="form.ticket.feeTicketNumber" size="small" placeholder="费用票" :step="1"
+                step-strictly :controls="false" style="width: 100%" @change="ticketNumberChange" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="银行对账">
-              <el-input-number
-                v-model="form.ticket.bankCopyNumber"
-                size="small"
-                placeholder="银行回单"
-                :step="1"
-                step-strictly
-                :controls="false"
-                style="width: 100%"
-                @change="ticketNumberChange"
-              />
+              <el-input-number v-model="form.ticket.bankCopyNumber" size="small" placeholder="银行回单" :step="1"
+                step-strictly :controls="false" style="width: 100%" @change="ticketNumberChange" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="银行回单">
-              <el-input-number
-                v-model="form.ticket.bankSlipsNumber"
-                size="small"
-                placeholder="银行回单"
-                :step="1"
-                step-strictly
-                :controls="false"
-                style="width: 100%"
-                @change="ticketNumberChange"
-              />
+              <el-input-number v-model="form.ticket.bankSlipsNumber" size="small" placeholder="银行回单" :step="1"
+                step-strictly :controls="false" style="width: 100%" @change="ticketNumberChange" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="工资单">
-              <el-input-number
-                v-model="form.ticket.salaryTicket"
-                size="small"
-                placeholder="工资单"
-                :step="1"
-                step-strictly
-                :controls="false"
-                style="width: 100%"
-                @change="ticketNumberChange"
-              />
+              <el-input-number v-model="form.ticket.salaryTicket" size="small" placeholder="工资单" :step="1" step-strictly
+                :controls="false" style="width: 100%" @change="ticketNumberChange" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="社保公积金">
-              <el-input-number
-                v-model="form.ticket.ssafTicket"
-                size="small"
-                placeholder="社保公积金"
-                :step="1"
-                step-strictly
-                :controls="false"
-                style="width: 100%"
-                @change="ticketNumberChange"
-              />
+              <el-input-number v-model="form.ticket.ssafTicket" size="small" placeholder="社保公积金" :step="1" step-strictly
+                :controls="false" style="width: 100%" @change="ticketNumberChange" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="其他票">
-              <el-input-number
-                v-model="form.ticket.otherTicket"
-                size="small"
-                placeholder="其他票"
-                :step="1"
-                step-strictly
-                :controls="false"
-                style="width: 100%"
-                @change="ticketNumberChange"
-              />
+              <el-input-number v-model="form.ticket.otherTicket" size="small" placeholder="其他票" :step="1" step-strictly
+                :controls="false" style="width: 100%" @change="ticketNumberChange" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -497,239 +250,136 @@
           </el-col>
           <el-col :span="24">
             <el-form-item label="备注">
-              <el-input
-                v-model.trim="form.ticket.content"
-                maxlength="200"
-                show-word-limit
-                type="textarea"
-                rows="2"
-              />
+              <el-input v-model.trim="form.ticket.content" maxlength="200" show-word-limit type="textarea" rows="2" />
             </el-form-item>
           </el-col>
           <el-divider content-position="left">记账</el-divider>
           <el-col :span="12">
             <el-form-item label="本期收入">
-              <el-input-number
-                v-model="form.keepAccount.currentIncome"
-                size="small"
-                placeholder="本期收入"
-                :precision="2"
-                :controls="false"
-                style="width: 100%"
-              />
+              <el-input-number v-model="form.keepAccount.currentIncome" size="small" placeholder="本期收入" :precision="2"
+                :controls="false" style="width: 100%" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="本年收入">
-              <el-input-number
-                v-model="form.keepAccount.currentYearIncome"
-                size="small"
-                placeholder="本年收入"
-                :precision="2"
-                :controls="false"
-                style="width: 100%"
-              />
+              <el-input-number v-model="form.keepAccount.currentYearIncome" size="small" placeholder="本年收入" :precision="2"
+                :controls="false" style="width: 100%" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="本年累计成本">
-              <el-input-number
-                v-model="form.keepAccount.cumulativeCost"
-                size="small"
-                placeholder="本年累计成本"
-                :precision="2"
-                :controls="false"
-                style="width: 100%"
-              />
+              <el-input-number v-model="form.keepAccount.cumulativeCost" size="small" placeholder="本年累计成本" :precision="2"
+                :controls="false" style="width: 100%" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="本年利润总额">
-              <el-input-number
-                v-model="form.keepAccount.currentYearProfit"
-                size="small"
-                placeholder="本年利润总额"
-                :precision="2"
-                :controls="false"
-                style="width: 100%"
-              />
+              <el-input-number v-model="form.keepAccount.currentYearProfit" size="small" placeholder="本年利润总额"
+                :precision="2" :controls="false" style="width: 100%" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="是否暂估">
-              <el-checkbox
-                v-model="form.keepAccount.isProvisionalEstimate"
-                :true-label="1"
-                :false-label="0"
-              />
+              <el-checkbox v-model="form.keepAccount.isProvisionalEstimate" :true-label="1" :false-label="0" />
             </el-form-item>
           </el-col>
-          <el-col
-            v-if="form.keepAccount.isProvisionalEstimate === 1"
-            :span="12"
-          >
+          <el-col v-if="form.keepAccount.isProvisionalEstimate === 1" :span="12">
             <el-form-item label="暂估金额">
-              <el-input-number
-                v-model="form.keepAccount.provisionalEstimateAmount"
-                size="small"
-                placeholder="暂估金额"
-                :precision="2"
-                :controls="false"
-                style="width: 100%"
-              />
+              <el-input-number v-model="form.keepAccount.provisionalEstimateAmount" size="small" placeholder="暂估金额"
+                :precision="2" :controls="false" style="width: 100%" />
             </el-form-item>
           </el-col>
           <el-col :span="24">
             <el-form-item label="备注">
-              <el-input
-                v-model.trim="form.keepAccount.content"
-                maxlength="200"
-                show-word-limit
-                type="textarea"
-                rows="2"
-              />
+              <el-input v-model.trim="form.keepAccount.content" maxlength="200" show-word-limit type="textarea"
+                rows="2" />
             </el-form-item>
           </el-col>
           <el-divider content-position="left">报税</el-divider>
           <el-col :span="12">
             <el-form-item label="可弥补之前年度亏损">
-              <el-input-number
-                size="small"
-                placeholder="可弥补之前年度亏损"
-                v-model="form.reportTax.previousAnnualLosses"
-                :precision="2"
-                :controls="false"
-                style="align: right; text-align: right; width: 100%"
-              />
+              <el-input-number size="small" placeholder="可弥补之前年度亏损" v-model="form.reportTax.previousAnnualLosses"
+                :precision="2" :controls="false" style="align: right; text-align: right; width: 100%" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="增值税">
-              <el-input-number
-                placeholder="增值税"
-                v-model="form.reportTax.valueAddedTax"
-                style="
+              <el-input-number placeholder="增值税" v-model="form.reportTax.valueAddedTax" style="
                   display: flex;
                   align-items: center;
                   justify-content: center;
                   width: 100%;
-                "
-                @change="taxChangeHandler"
-                :controls="false"
-                :precision="2"
-              />
+                " @change="taxChangeHandler" :controls="false" :precision="2" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="城建税">
-              <el-input-number
-                placeholder="城建税"
-                v-model="form.reportTax.cityConstructTax"
-                style="
+              <el-input-number placeholder="城建税" v-model="form.reportTax.cityConstructTax" style="
                   display: flex;
                   align-items: center;
                   justify-content: center;
                   width: 100%;
-                "
-                @change="taxChangeHandler"
-                :controls="false"
-              />
+                " @change="taxChangeHandler" :controls="false" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="教育费附加">
-              <el-input-number
-                placeholder="教育费附加"
-                v-model="form.reportTax.additionsTaxOfEducation"
-                style="
+              <el-input-number placeholder="教育费附加" v-model="form.reportTax.additionsTaxOfEducation" style="
                   display: flex;
                   align-items: center;
                   justify-content: center;
                   width: 100%;
-                "
-                @change="taxChangeHandler"
-                :controls="false"
-              />
+                " @change="taxChangeHandler" :controls="false" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="地方教育费附加">
-              <el-input-number
-                placeholder="地方教育费附加"
-                v-model="form.reportTax.ladditionsTaxOfEducation"
-                style="
+              <el-input-number placeholder="地方教育费附加" v-model="form.reportTax.ladditionsTaxOfEducation" style="
                   display: flex;
                   align-items: center;
                   justify-content: center;
                   width: 100%;
-                "
-                @change="taxChangeHandler"
-                :controls="false"
-              />
+                " @change="taxChangeHandler" :controls="false" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="企业所得税">
-              <el-input-number
-                placeholder="企业所得税"
-                v-model="form.reportTax.businessIncomeTax"
-                style="
+              <el-input-number placeholder="企业所得税" v-model="form.reportTax.businessIncomeTax" style="
                   display: flex;
                   align-items: center;
                   justify-content: center;
                   width: 100%;
-                "
-                @change="taxChangeHandler"
-                :controls="false"
-              />
+                " @change="taxChangeHandler" :controls="false" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="印花税">
-              <el-input-number
-                placeholder="印花税"
-                v-model="form.reportTax.stampTax"
-                style="
+              <el-input-number placeholder="印花税" v-model="form.reportTax.stampTax" style="
                   display: flex;
                   align-items: center;
                   width: 100%;
                   justify-content: center;
-                "
-                @change="taxChangeHandler"
-                :controls="false"
-              />
+                " @change="taxChangeHandler" :controls="false" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="文化事业建设税">
-              <el-input-number
-                placeholder="文化事业建设税"
-                v-model="form.reportTax.culturalConstructTax"
-                style="
+              <el-input-number placeholder="文化事业建设税" v-model="form.reportTax.culturalConstructTax" style="
                   display: flex;
                   align-items: center;
                   justify-content: center;
                   width: 100%;
-                "
-                @change="taxChangeHandler"
-                :controls="false"
-              />
+                " @change="taxChangeHandler" :controls="false" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="消费税">
-              <el-input-number
-                placeholder="消费税"
-                v-model="form.reportTax.excise"
-                style="
+              <el-input-number placeholder="消费税" v-model="form.reportTax.excise" style="
                   display: flex;
                   align-items: center;
                   justify-content: center;
                   width: 100%;
-                "
-                @change="taxChangeHandler"
-                :controls="false"
-              />
+                " @change="taxChangeHandler" :controls="false" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -740,51 +390,27 @@
           <el-divider content-position="left">个税</el-divider>
           <el-col :span="12">
             <el-form-item label="个税金额">
-              <el-input-number
-                placeholder="个税金额"
-                v-model="form.individual.amount"
-                style="
+              <el-input-number placeholder="个税金额" v-model="form.individual.amount" style="
                   display: flex;
                   align-items: center;
                   justify-content: center;
                   width: 100%;
-                "
-                :controls="false"
-              />
+                " :controls="false" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="备注">
-              <el-input
-                type="textarea"
-                maxlength="200"
-                show-word-limit
-                rows="2"
-                v-model="form.individual.remark"
-              />
+              <el-input type="textarea" maxlength="200" show-word-limit rows="2" v-model="form.individual.remark" />
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
     </div>
     <div class="form-btns-container" style="height: 40px">
-      <el-button
-        size="small"
-        icon="close"
-        @click="close"
-        style="float: right; margin-left: 12px; margin-right: 12px"
-      >
-        取消</el-button
-      >
-      <el-button
-        type="primary"
-        size="small"
-        icon="Finished"
-        style="float: right"
-        @click="handleSave"
-      >
-        保存</el-button
-      >
+      <el-button size="small" icon="close" @click="close" style="float: right; margin-left: 12px; margin-right: 12px">
+        取消</el-button>
+      <el-button type="primary" size="small" icon="Finished" style="float: right" @click="handleSave">
+        保存</el-button>
     </div>
     <!-- <feedback-dialog ref="feedbackDialogView" :parent="this" />
     <print-dialog ref="printDialog" :parent="this" /> -->
@@ -806,7 +432,7 @@ const currentSource = ref(null);
 const props = defineProps({
   getList: {
     type: Function,
-    default: () => {},
+    default: () => { },
   },
 });
 const selectStatus = ref([
@@ -902,8 +528,8 @@ function reset() {
   form.value = proxy.deepClone(emptyForm);
 }
 
-function printSalary() {}
-function exportSalary() {}
+function printSalary() { }
+function exportSalary() { }
 
 function handleCurrentChange(row) {
   currentSource.value = row;

+ 2 - 1
src/views/business/service/loop/socialSecurityView.vue

@@ -207,7 +207,8 @@
           </el-col>
           <el-col :span="24">
             <el-form-item label="备注">
-              <el-input v-model.trim="form.socialSecurityDeclare.content" type="textarea" rows="2" />
+              <!-- <el-input v-model.trim="form.socialSecurityDeclare.content" type="textarea" rows="2" /> -->
+              {{ form.socialSecurityDeclare.content }}
             </el-form-item>
           </el-col>
           <el-col :span="24">

+ 15 - 7
src/views/business/service/once/index.vue

@@ -8,16 +8,17 @@
       <!-- <el-button type="danger" size="small" icon="Delete" :disabled="multiple" @click="handleDelete"
         v-hasPermi="['business:workOrder:remove']">删除</el-button> -->
       <el-dropdown>
-        <el-button type="primary" size="small">
+        <el-button type="primary" size="small"
+          v-if="hasPermi(['business:customer:service:once:export', 'business:customer:service:once:transactor'])">
           其它<el-icon class="el-icon--right"><arrow-down /></el-icon>
         </el-button>
         <template #dropdown>
           <el-dropdown-menu>
             <el-dropdown-item icon="Download" @click="handleExport"
-              v-hasPermi="['business:customer:service:once:export']">
+              v-if="hasPermi(['business:customer:service:once:export'])">
               导出</el-dropdown-item>
             <el-dropdown-item icon="Operation" @click="setServiceHandler"
-              v-hasPermi="['business:customer:service:once:transactor']">
+              v-if="hasPermi(['business:customer:service:once:transactor'])">
               设置执行人</el-dropdown-item>
           </el-dropdown-menu>
         </template>
@@ -135,7 +136,7 @@
 <script setup name="Company">
 // import contractForm from "./form";
 import { listOnce } from "@/api/business/crm/serviceWorkOrder";
-
+import auth from '@/plugins/auth'
 import useUserStore from "@/store/modules/user";
 const permissions = useUserStore().permissions;
 const all_permission = "*:*:*";
@@ -365,9 +366,8 @@ function handleByRow(row) {
 
   if (
     record != null &&
-    record.status === 3 &&
-    (editable || viewable) &&
-    row.isStop == 1
+    (record.status === 3 || row.isStop == 1) &&
+    (editable || viewable)
   ) {
     viewRef.value.open({
       workOrderId: row.id,
@@ -413,5 +413,13 @@ function getTransactor(row) {
     return row.serviceName;
   }
 }
+
+function clearStatus() {
+  queryParams.value.status = null
+}
+
+function hasPermi(arr) {
+  return auth.hasPermiOr(arr)
+}
 getList();
 </script>

+ 11 - 11
src/views/business/socialSecurity/confirm/index.vue

@@ -23,7 +23,7 @@
       </el-form-item>
       <el-form-item label="月份:">
         <el-select v-model.trim="queryParams.month" size="small" placeholder="月份" style="width: 130px"
-          @change="handleQuery">
+          @change="handleQuery" :clearable="false">
           <el-option v-for="item in selectMonths" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
       </el-form-item>
@@ -33,7 +33,7 @@
           <el-option v-for="item in selectStatus" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
       </el-form-item>
-      <el-form-item label="是否自己负责:">
+      <el-form-item v-if="tenant.versionId !== '4'" label="是否自己负责:">
         <el-switch v-model="oneself" @change="handleOneself" />
       </el-form-item>
       <el-form-item>
@@ -111,16 +111,15 @@
     <view-dialog ref="viewDialogRef" :get-list="getList" />
     <!-- 更多搜索弹窗 -->
     <el-dialog title="更多搜索" v-model="moreSearch" width="620px" append-to-body size="small" draggable>
-      <el-form :model="queryParams" ref="queryRef" :rules="rules" size="small" label-width="100">
+      <el-form :model="queryParams" ref="queryRef" size="small" label-width="100">
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="客户名称:" prop="companyName">
               <el-input v-model="queryParams.companyName" placeholder="请输入客户名称" clearable @keyup.enter="handleQuery" />
             </el-form-item>
-            <el-form-item label="月份:">
-              <el-select v-model.trim="queryParams.month" size="small" placeholder="月份" :clearable="true">
-                <el-option v-for="item in selectMonths" :key="item.value" :label="item.label" :value="item.value" />
-              </el-select>
+            <el-form-item v-if="tenant.versionId === '4'" label="来源:" prop="fromCompanyName">
+              <el-input size="small" v-model="queryParams.fromCompanyName" type="text" placeholder="客户来源"
+                :clearable="true" />
             </el-form-item>
             <el-form-item label="纳税性质:" prop="taxType">
               <el-select size="small" v-model="queryParams.taxType" placeholder="请选择纳税性质" :clearable="true"
@@ -136,9 +135,10 @@
                 <el-option v-for="item in selectStatus" :key="item.value" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
-            <el-form-item label="来源:" prop="fromCompanyName">
-              <el-input size="small" v-model="queryParams.fromCompanyName" type="text" placeholder="客户来源"
-                :clearable="true" />
+            <el-form-item label="月份:">
+              <el-select v-model.trim="queryParams.month" size="small" placeholder="月份" :clearable="false">
+                <el-option v-for="item in selectMonths" :key="item.value" :label="item.label" :value="item.value" />
+              </el-select>
             </el-form-item>
           </el-col>
         </el-row>
@@ -165,7 +165,7 @@ import viewDialog from "./view";
 const { proxy } = getCurrentInstance();
 /** 字典数组区 */
 /** 查询 对象 */
-
+const tenant = useUserStore().tenant
 const list = ref([]);
 const loading = ref(true);
 const ids = ref([]);

+ 20 - 4
src/views/business/socialSecurity/confirm/view.vue

@@ -14,6 +14,11 @@
               <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>
@@ -73,6 +78,10 @@
             <div class="details-head">
               <div class="title">
                 <i class="fa fa-th-list" aria-hidden="true" /> 人员信息
+
+                <el-button size="small" @click="printSalary" icon="printer" type="primary">打印</el-button>
+
+                <el-button size="small" @click="exportSalary" icon="download" type="info">导出</el-button>
               </div>
             </div>
             <div class="details-body">
@@ -226,6 +235,8 @@ import {
   getDetail,
   verifyDetail,
   turnBackDetail,
+  exportSocialSecurityEmployee,
+  exportSocialSecurityPdf,
 } from "@/api/business/production/socialSecurityConfirm";
 import feedbackDialog from "../feedbackDialog.vue";
 import useUserStore from "@/store/modules/user";
@@ -340,8 +351,15 @@ function reset() {
   total.value = 0;
 }
 
-function printSalary() { }
-function exportSalary() { }
+//人员信息打印
+function printSalary() {
+  exportSocialSecurityPdf(form.value.id);
+}
+
+//人员信息导出
+function exportSalary() {
+  exportSocialSecurityEmployee(form.value.id);
+}
 
 function showVerify() {
   if (
@@ -359,8 +377,6 @@ function showVerify() {
 }
 
 function verifiable() {
-  // console.log(permissions)
-  // console.log(permissions)
   return (
     permissions.includes(all_permission) ||
     permissions.includes("business:socialSecurityConfirm:verify")

+ 44 - 181
src/views/business/socialSecurity/declare/form.vue

@@ -1,12 +1,5 @@
 <template>
-  <el-dialog
-    title="社保申报信息"
-    v-model="visible"
-    :width="width"
-    append-to-body
-    draggable
-    @close="close"
-  >
+  <el-dialog title="社保申报信息" v-model="visible" :width="width" append-to-body draggable @close="close">
     <!-- <div slot="title" class="dialog-title-container">
       <span class="title-label"><i class="el-icon-document" /> 工资信息</span>
       <i class="el-icon-close" @click="close" />
@@ -75,157 +68,81 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="单位养老金:">
-              <el-input-number
-                v-model="form.unitPension"
-                size="small"
-                placeholder="单位养老金"
-                :precision="2"
-                :controls="false"
-                style="width: 100%"
-                @change="amountChangeHandler"
-              />
+              <el-input-number v-model="form.unitPension" size="small" placeholder="单位养老金" :precision="2"
+                :controls="false" style="width: 100%" @change="amountChangeHandler" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="单位医疗险:">
-              <el-input-number
-                v-model="form.unitMedical"
-                size="small"
-                placeholder="单位医疗险"
-                :precision="2"
-                :controls="false"
-                style="width: 100%"
-                @change="amountChangeHandler"
-              />
+              <el-input-number v-model="form.unitMedical" size="small" placeholder="单位医疗险" :precision="2"
+                :controls="false" style="width: 100%" @change="amountChangeHandler" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="单位工伤险:">
-              <el-input-number
-                v-model="form.unitInjury"
-                size="small"
-                placeholder="单位工伤险"
-                :precision="2"
-                :controls="false"
-                style="width: 100%"
-                @change="amountChangeHandler"
-              />
+              <el-input-number v-model="form.unitInjury" size="small" placeholder="单位工伤险" :precision="2" :controls="false"
+                style="width: 100%" @change="amountChangeHandler" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="单位失业金:">
-              <el-input-number
-                v-model="form.unitUnemployment"
-                size="small"
-                placeholder="单位失业金"
-                :precision="2"
-                :controls="false"
-                style="width: 100%"
-                @change="amountChangeHandler"
-              />
+              <el-input-number v-model="form.unitUnemployment" size="small" placeholder="单位失业金" :precision="2"
+                :controls="false" style="width: 100%" @change="amountChangeHandler" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="单位生育险:">
-              <el-input-number
-                v-model="form.unitProcreate"
-                size="small"
-                placeholder="单位生育险"
-                :precision="2"
-                :controls="false"
-                style="width: 100%"
-                @change="amountChangeHandler"
-              />
+              <el-input-number v-model="form.unitProcreate" size="small" placeholder="单位生育险" :precision="2"
+                :controls="false" style="width: 100%" @change="amountChangeHandler" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="单位大病险:">
-              <el-input-number
-                v-model="form.unitSeriousIllness"
-                size="small"
-                placeholder="单位大病险"
-                :precision="2"
-                :controls="false"
-                style="width: 100%"
-                @change="amountChangeHandler"
-              />
+              <el-input-number v-model="form.unitSeriousIllness" size="small" placeholder="单位大病险" :precision="2"
+                :controls="false" style="width: 100%" @change="amountChangeHandler" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="单位采暖费:">
-              <el-input-number
-                v-model="form.unitHeatingFee"
-                size="small"
-                placeholder="单位大病险"
-                :precision="2"
-                :controls="false"
-                style="width: 100%"
-                @change="amountChangeHandler"
-              />
+              <el-input-number v-model="form.unitHeatingFee" size="small" placeholder="单位大病险" :precision="2"
+                :controls="false" style="width: 100%" @change="amountChangeHandler" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="个人养老金:">
-              <el-input-number
-                v-model="form.individualPension"
-                size="small"
-                placeholder="个人养老金"
-                :precision="2"
-                :controls="false"
-                style="width: 100%"
-                @change="amountChangeHandler"
-              />
+              <el-input-number v-model="form.individualPension" size="small" placeholder="个人养老金" :precision="2"
+                :controls="false" style="width: 100%" @change="amountChangeHandler" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="个人医疗险:">
-              <el-input-number
-                v-model="form.individualMedical"
-                size="small"
-                placeholder="个人医疗险"
-                :precision="2"
-                :controls="false"
-                style="width: 100%"
-                @change="amountChangeHandler"
-              />
+              <el-input-number v-model="form.individualMedical" size="small" placeholder="个人医疗险" :precision="2"
+                :controls="false" style="width: 100%" @change="amountChangeHandler" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="个人失业金:">
-              <el-input-number
-                v-model="form.individualUnemployment"
-                size="small"
-                placeholder="个人失业金"
-                :precision="2"
-                :controls="false"
-                style="width: 100%"
-                @change="amountChangeHandler"
-              />
+              <el-input-number v-model="form.individualUnemployment" size="small" placeholder="个人失业金" :precision="2"
+                :controls="false" style="width: 100%" @change="amountChangeHandler" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="个人大病险:">
-              <el-input-number
-                v-model="form.individualSeriousIllness"
-                size="small"
-                placeholder="个人大病险"
-                :precision="2"
-                :controls="false"
-                style="width: 100%"
-                @change="amountChangeHandler"
-              />
+              <el-input-number v-model="form.individualSeriousIllness" size="small" placeholder="个人大病险" :precision="2"
+                :controls="false" style="width: 100%" @change="amountChangeHandler" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="合计:">
-              <el-input-number
+              <!-- <el-input-number
                 v-model="form.amount"
                 size="small"
                 placeholder="合计"
                 :precision="2"
                 :controls="false"
                 style="width: 100%"
-              />
+              /> -->
+              {{ form.amount }}
             </el-form-item>
           </el-col>
           <el-col :span="24">
@@ -233,53 +150,23 @@
           </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-input v-model.trim="form.content" maxlength="200" show-word-limit type="textarea" rows="2" />
             </el-form-item>
           </el-col>
           <el-col :span="24">
             <el-form-item label="凭证" required>
-              <el-upload
-                action="#"
-                :http-request="upload"
-                :with-credentials="true"
-                :show-file-list="false"
-                multiple
-              >
-                <el-button size="small" type="primary" icon="Upload"
-                  >点击上传</el-button
-                >
+              <el-upload action="#" :http-request="upload" :with-credentials="true" :show-file-list="false" multiple>
+                <el-button size="small" type="primary" icon="Upload">点击上传</el-button>
               </el-upload>
-              <el-table
-                ref="dbTable"
-                :data="form.evidenceFiles"
-                size="small"
-                border
-                header-row-class-name="list-header-row"
-                row-class-name="list-row"
-              >
-                <el-table-column
-                  label="文件名"
-                  prop="originalFileName"
-                  align="center"
-                  show-overflow-tooltip
-                >
+              <el-table ref="dbTable" :data="form.evidenceFiles" size="small" border
+                header-row-class-name="list-header-row" row-class-name="list-row">
+                <el-table-column label="文件名" prop="originalFileName" align="center" show-overflow-tooltip>
                   <template #default="scope">
-                    <el-button
-                      size="small"
-                      type="text"
-                      @click="openFile(scope.row)"
-                      >{{
-                        scope.row.originalFileName == ""
-                          ? "打开文件"
-                          : scope.row.originalFileName
-                      }}</el-button
-                    >
+                    <el-button size="small" type="text" @click="openFile(scope.row)">{{
+                      scope.row.originalFileName == ""
+                      ? "打开文件"
+                      : scope.row.originalFileName
+                    }}</el-button>
                   </template>
                 </el-table-column>
                 <!-- <el-table-column
@@ -288,20 +175,9 @@
                   prop="fileType"
                   align="center"
                 /> -->
-                <el-table-column
-                  label="操作"
-                  width="80"
-                  prop="fileType"
-                  align="center"
-                >
+                <el-table-column label="操作" width="80" prop="fileType" align="center">
                   <template #default="scope">
-                    <el-button
-                      size="small"
-                      link
-                      type="danger"
-                      @click="handleDel(scope.row, scope.$index)"
-                      >删除</el-button
-                    >
+                    <el-button size="small" link type="danger" @click="handleDel(scope.row, scope.$index)">删除</el-button>
                   </template>
                 </el-table-column>
               </el-table>
@@ -311,23 +187,10 @@
       </el-form>
     </div>
     <div class="form-btns-container" style="height: 40px">
-      <el-button
-        size="small"
-        icon="close"
-        style="float: right; margin-left: 12px; margin-right: 12px"
-        @click="close"
-      >
-        取消</el-button
-      >
-      <el-button
-        type="primary"
-        size="small"
-        icon="Finished"
-        style="float: right"
-        @click="handleSave"
-      >
-        保存</el-button
-      >
+      <el-button size="small" icon="close" style="float: right; margin-left: 12px; margin-right: 12px" @click="close">
+        取消</el-button>
+      <el-button type="primary" size="small" icon="Finished" style="float: right" @click="handleSave">
+        保存</el-button>
     </div>
     <!-- <feedback-dialog ref="feedbackDialogView" :parent="this" />
     <print-dialog ref="printDialog" :parent="this" /> -->
@@ -351,7 +214,7 @@ const baseUrl = ref(import.meta.env.VITE_APP_BASE_API);
 const props = defineProps({
   getList: {
     type: Function,
-    default: () => {},
+    default: () => { },
   },
 });
 

+ 10 - 10
src/views/business/socialSecurity/declare/index.vue

@@ -31,7 +31,7 @@
           <el-option v-for="item in selectStatus" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
       </el-form-item>
-      <el-form-item label="是否自己负责:">
+      <el-form-item v-if="tenant.versionId !== '4'" label="是否自己负责:">
         <el-switch v-model="oneself" @change="handleOneself" />
       </el-form-item>
       <el-form-item>
@@ -133,22 +133,22 @@
     <FileListDialog ref="fileListDialogRef" :get-list="getList" />
     <!-- 更多搜索弹窗 -->
     <el-dialog title="更多搜索" v-model="moreSearch" width="620px" append-to-body size="small" draggable>
-      <el-form :model="queryParams" ref="queryRef" size="small" :rules="rules" label-width="100">
+      <el-form :model="queryParams" ref="queryRef" size="small" label-width="100">
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="客户名称:" prop="companyName">
               <el-input v-model="queryParams.companyName" placeholder="请输入客户名称" clearable @keyup.enter="handleQuery" />
             </el-form-item>
-            <el-form-item label="所属月:">
-              <el-date-picker v-model="currentMonth" type="month" format="YYYY年MM月" :clearable="false"
-                value-format="YYYY-MM-01" @change="currentMonthChange" :disabled-date="disabledDateHandler" />
-            </el-form-item>
             <el-form-item label="纳税性质:" prop="taxType">
               <el-select size="small" v-model="queryParams.taxType" placeholder="请选择纳税性质" :clearable="true"
                 @change="taxTypeChange">
                 <el-option v-for="item in taxTypes" :key="item.label" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
+            <el-form-item v-if="tenant.versionId === '4'" label="来源:" prop="fromCompanyName">
+              <el-input size="small" v-model="queryParams.fromCompanyName" type="text" placeholder="客户来源"
+                :clearable="true" />
+            </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="状态:">
@@ -157,9 +157,9 @@
                 <el-option v-for="item in selectStatus" :key="item.value" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
-            <el-form-item label="来源:" prop="fromCompanyName">
-              <el-input size="small" v-model="queryParams.fromCompanyName" type="text" placeholder="客户来源"
-                :clearable="true" />
+            <el-form-item label="所属月:">
+              <el-date-picker v-model="currentMonth" type="month" format="YYYY年MM月" :clearable="false"
+                value-format="YYYY-MM-01" @change="currentMonthChange" :disabled-date="disabledDateHandler" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -191,7 +191,7 @@ import FileListDialog from "../fileListDialog.vue";
 const { proxy } = getCurrentInstance();
 /** 字典数组区 */
 /** 查询 对象 */
-
+const tenant = useUserStore().tenant
 const orderList = ref([]);
 const loading = ref(true);
 const oneself = ref(false);

+ 85 - 25
src/views/business/source/bin/index.vue

@@ -2,49 +2,109 @@
   <div class="page-container list-container">
     <!-- 功能按钮区 -->
     <div class="list-btns-container">
-      <el-button type="primary" size="small" icon="Finished" :disabled="multiple" @click="handleUpdate"
-        v-hasPermi="['business:bin:restore']">还原</el-button>
-
-      <el-button type="danger" size="small" icon="Delete" :disabled="multiple" @click="handleDelete"
-        v-hasPermi="['business:bin:remove']">删除</el-button>
-
-      <el-button type="info" size="small" icon="Download" @click="handleExport"
-        v-hasPermi="['business:bin:export']">导出</el-button>
+      <el-button
+        type="primary"
+        size="small"
+        icon="Finished"
+        :disabled="multiple"
+        @click="handleUpdate"
+        v-hasPermi="['business:bin:restore']"
+        >还原</el-button
+      >
+
+      <el-button
+        type="danger"
+        size="small"
+        icon="Delete"
+        :disabled="multiple"
+        @click="handleDelete"
+        v-hasPermi="['business:bin:remove']"
+        >删除</el-button
+      >
+
+      <el-button
+        type="info"
+        size="small"
+        icon="Download"
+        @click="handleExport"
+        v-hasPermi="['business:bin:export']"
+        >导出</el-button
+      >
       <!--<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>-->
     </div>
     <!-- 搜索区 -->
-    <el-form class="list-search-container" size="small" :model="queryParams" ref="queryRef" :inline="true"
-      label-width="68px">
+    <el-form
+      class="list-search-container"
+      size="small"
+      :model="queryParams"
+      ref="queryRef"
+      :inline="true"
+      label-width="68px"
+    >
       <el-form-item label="客户名称:" prop="sourceTableName">
-        <el-input v-model="queryParams.sourceValue" placeholder="请输入客户名称" style="width: 150px" clearable
-          @keyup.enter="handleQuery" />
+        <el-input
+          v-model="queryParams.sourceValue"
+          placeholder="请输入客户名称"
+          style="width: 150px"
+          clearable
+          @keyup.enter="handleQuery"
+        />
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
+        <el-button type="primary" icon="Search" @click="handleQuery"
+          >搜索</el-button
+        >
         <el-button icon="Refresh" @click="resetQuery">重置</el-button>
       </el-form-item>
     </el-form>
 
     <!-- 列表区 -->
-    <el-table v-loading="loading" :data="binList" size="small" border height="100%"
-      @selection-change="handleSelectionChange">
+    <el-table
+      v-loading="loading"
+      :data="binList"
+      size="small"
+      border
+      height="100%"
+      @selection-change="handleSelectionChange"
+    >
       <el-table-column type="selection" width="55" align="center" />
       <!-- <el-table-column label="序号" align="center" type="index" /> -->
       <el-table-column label="客户名称" align="center" prop="sourceValue" />
       <!-- <el-table-column label="来源表" align="center" prop="sourceTableName" /> -->
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
         <template #default="scope">
-          <el-button link type="primary" size="small" @click="handleUpdate(scope.row)"
-            v-hasPermi="['business:bin:restore']">还原</el-button>
-          <el-button link type="danger" size="small" @click="handleDelete(scope.row)"
-            v-hasPermi="['business:bin:remove']">删除</el-button>
+          <el-button
+            link
+            type="primary"
+            size="small"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['business:bin:restore']"
+            >还原</el-button
+          >
+          <el-button
+            link
+            type="danger"
+            size="small"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['business:bin:remove']"
+            >删除</el-button
+          >
         </template>
       </el-table-column>
     </el-table>
 
     <!-- 分页 -->
-    <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
-      @pagination="getList" />
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      v-model:page="queryParams.pageNum"
+      v-model:limit="queryParams.pageSize"
+      @pagination="getList"
+    />
 
     <!-- 表单 -->
     <bin-form ref="binRef" :get-list="getList"></bin-form>
@@ -69,7 +129,7 @@ const queryParams = ref({
   pageNum: 1,
   pageSize: 20,
   orderByColumn: "create_time",
-  sourceTableName: null,
+  sourceTableName: "biz_company",
   sourceValue: null,
   isClean: null,
   isReturn: null,
@@ -124,7 +184,7 @@ function handleUpdate(row) {
       getList();
       proxy.$modal.msgSuccess("还原成功!");
     })
-    .catch(() => { });
+    .catch(() => {});
 }
 
 /** 删除按钮操作 */
@@ -139,7 +199,7 @@ function handleDelete(row) {
       getList();
       proxy.$modal.msgSuccess("删除成功!");
     })
-    .catch(() => { });
+    .catch(() => {});
 }
 
 /** 导出按钮操作 */

+ 3 - 2
src/views/system/role/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="page-container list-sontainer">
+  <div class="page-btns-container list-container">
     <div :gutter="10" class="list-btns-container">
       <el-button type="primary" size="small" icon="Plus" @click="handleAdd"
         v-hasPermi="['system:role:add']">新增</el-button>
@@ -41,7 +41,8 @@
     </el-form>
 
     <!-- 表格数据 -->
-    <el-table size="small" v-loading="loading" border :data="roleList" @selection-change="handleSelectionChange">
+    <el-table size="small" v-loading="loading" border :data="roleList" height="100%"
+      @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
       <!--<el-table-column label="角色编号" prop="roleId" width="120" />-->
       <el-table-column label="角色名称" align="center" prop="roleName" :show-overflow-tooltip="true" width="150" />

+ 104 - 298
src/views/system/user/index.vue

@@ -1,8 +1,8 @@
 <template>
-  <div class="page-container list-container">
-    <el-row :gutter="20">
-      <!--部门数据-->
-      <!-- <el-col :span="4" :xs="24">
+  <div class="page-btns-container list-container">
+    <!-- <el-row :gutter="20" class="list-btns-container"> -->
+    <!--部门数据-->
+    <!-- <el-col :span="4" :xs="24">
         <div class="head-container" >
           <el-input v-model="deptName" placeholder="请输入部门名称" clearable prefix-icon="Search" style="margin-bottom: 20px" />
           <div style="height:750px;overflow: auto;">
@@ -12,312 +12,153 @@
           </div>
         </div>
       </el-col> -->
-      <!--用户数据-->
-      <el-col :span="24" :xs="24">
-        <!-- 功能按钮区 -->
-        <div :gutter="10" class="list-btns-container">
-          <el-button
-            type="primary"
-            size="small"
-            icon="Plus"
-            @click="handleAdd"
-            v-hasPermi="['system:user:add']"
-            >新增</el-button
-          >
+    <!--用户数据-->
+    <!-- <el-col :span="24" :xs="24"> -->
+    <!-- 功能按钮区 -->
+    <div :gutter="10" class="list-btns-container">
+      <el-button type="primary" size="small" icon="Plus" @click="handleAdd"
+        v-hasPermi="['system:user:add']">新增</el-button>
 
-          <!-- <el-button type="success" size="small" icon="Edit" :disabled="single" @click="handleUpdate"
+      <!-- <el-button type="success" size="small" icon="Edit" :disabled="single" @click="handleUpdate"
             v-hasPermi="['system:user:edit']">修改</el-button> -->
 
-          <el-button
-            type="danger"
-            size="small"
-            icon="Delete"
-            :disabled="multiple"
-            @click="handleDelete"
-            v-hasPermi="['system:user:remove']"
-            >删除</el-button
-          >
+      <el-button type="danger" size="small" icon="Delete" :disabled="multiple" @click="handleDelete"
+        v-hasPermi="['system:user:remove']">删除</el-button>
 
-          <el-button
-            type="info"
-            size="small"
-            icon="Upload"
-            @click="handleImport"
-            v-hasPermi="['system:user:import']"
-            >导入</el-button
-          >
+      <el-button type="info" size="small" icon="Upload" @click="handleImport"
+        v-hasPermi="['system:user:import']">导入</el-button>
 
-          <el-button
-            type="info"
-            size="small"
-            icon="Download"
-            @click="handleExport"
-            v-hasPermi="['system:user:export']"
-            >导出</el-button
-          >
-          <!--
+      <el-button type="info" size="small" icon="Download" @click="handleExport"
+        v-hasPermi="['system:user:export']">导出</el-button>
+      <!--
           <el-button type="info" size="small" icon="Download" @click="handleExportQc" v-hasPermi="['business:workpiece:export']">导出二维码</el-button>
           -->
-          <!-- <right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar> -->
-        </div>
-        <!-- 搜索区 -->
-        <el-form
-          :model="queryParams"
-          size="small"
-          ref="queryRef"
-          :inline="true"
-          v-show="showSearch"
-          label-width="68px"
-          class="list-search-container"
-          style="padding-bottom: 10px; padding-top: 10px"
-        >
-          <el-form-item label="用户名称:" prop="userName">
-            <el-input
-              v-model="queryParams.userName"
-              size="small"
-              placeholder="请输入用户名称"
-              clearable
-              style="width: 130px"
-              @keyup.enter="handleQuery"
-            />
-          </el-form-item>
-          <el-form-item label="手机号码:" prop="phonenumber">
-            <el-input
-              v-model="queryParams.phonenumber"
-              size="small"
-              placeholder="请输入手机号码"
-              clearable
-              style="width: 130px"
-              @keyup.enter="handleQuery"
-            />
-          </el-form-item>
-          <!-- <el-form-item label="状态:" prop="status">
+      <!-- <right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar> -->
+    </div>
+    <!-- 搜索区 -->
+    <el-form :model="queryParams" size="small" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px"
+      class="list-search-container" style="padding-bottom: 10px; padding-top: 10px">
+      <el-form-item label="用户名称:" prop="userName">
+        <el-input v-model="queryParams.userName" size="small" placeholder="请输入用户名称" clearable style="width: 130px"
+          @keyup.enter="handleQuery" />
+      </el-form-item>
+      <el-form-item label="手机号码:" prop="phonenumber">
+        <el-input v-model="queryParams.phonenumber" size="small" placeholder="请输入手机号码" clearable style="width: 130px"
+          @keyup.enter="handleQuery" />
+      </el-form-item>
+      <!-- <el-form-item label="状态:" prop="status">
             <el-select v-model="queryParams.status" size="small" placeholder="用户状态" clearable style="width: 130px">
               <el-option v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.label" :value="dict.value" />
             </el-select>
           </el-form-item> -->
-          <!-- <el-form-item label="身份:" prop="teantAdmin">
+      <!-- <el-form-item label="身份:" prop="teantAdmin">
             <el-select v-model="queryParams.teantAdmin" size="small" placeholder="用户状态" clearable style="width: 130px">
               <el-option v-for="dict in user_tenant" :key="dict.value" :label="dict.label" :value="dict.value" />
             </el-select>
           </el-form-item> -->
-          <!--
+      <!--
           <el-form-item label="创建时间:" style="width: 300px;">
             <el-date-picker v-model="dateRange" size="small" value-format="YYYY-MM-DD" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
           </el-form-item>
           -->
-          <el-form-item>
-            <span>&emsp;&emsp;</span>
-            <el-button
-              type="primary"
-              size="small"
-              icon="Search"
-              @click="handleQuery"
-              >搜索</el-button
-            >
-            <el-button icon="Refresh" size="small" @click="resetQuery"
-              >重置</el-button
-            >
-          </el-form-item>
-        </el-form>
-        <!-- 渲染数据区 -->
-        <el-table
-          v-loading="loading"
-          size="small"
-          :data="userList"
-          border
-          height="100%"
-          @selection-change="handleSelectionChange"
-        >
-          <el-table-column type="selection" width="50" align="center" />
-          <!--<el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" />-->
-          <el-table-column
-            label="用户名称"
-            align="center"
-            key="userName"
-            prop="userName"
-            v-if="columns[1].visible"
-            :show-overflow-tooltip="true"
-          />
-          <el-table-column
-            label="用户昵称"
-            align="center"
-            key="nickName"
-            prop="nickName"
-            v-if="columns[2].visible"
-            :show-overflow-tooltip="true"
-          />
-          <el-table-column
-            label="部门"
-            align="center"
-            key="deptName"
-            prop="dept.deptName"
-            v-if="columns[3].visible"
-            :show-overflow-tooltip="true"
-          />
-          <el-table-column
-            label="手机号码"
-            align="center"
-            key="phonenumber"
-            prop="phonenumber"
-            v-if="columns[4].visible"
-            width="120"
-          />
-          <!-- <el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
+      <el-form-item>
+        <span>&emsp;&emsp;</span>
+        <el-button type="primary" size="small" icon="Search" @click="handleQuery">搜索</el-button>
+        <el-button icon="Refresh" size="small" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+    <!-- 渲染数据区 -->
+    <el-table v-loading="loading" size="small" :data="userList" border height="100%"
+      @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="50" align="center" />
+      <!--<el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" />-->
+      <el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible"
+        :show-overflow-tooltip="true" />
+      <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible"
+        :show-overflow-tooltip="true" />
+      <el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible"
+        :show-overflow-tooltip="true" />
+      <el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible"
+        width="120" />
+      <!-- <el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
             <template #default="scope">
               <el-switch v-model="scope.row.status" active-value="0" inactive-value="1"
                 @change="handleStatusChange(scope.row)"></el-switch>
             </template>
           </el-table-column> -->
-          <!--
+      <!--
           <el-table-column label="二维码" align="center">
             <template #default="scope">
               <img :src="webHost+scope.row.qcCode" alt="" style="width: 80px;height: 80px">
             </template>
           </el-table-column>
           -->
-          <el-table-column
-            label="创建时间"
-            align="center"
-            prop="createTime"
-            v-if="columns[6].visible"
-            width="160"
-          >
-            <template #default="scope">
-              <span>{{ parseTime(scope.row.createTime) }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column
-            label="操作"
-            align="center"
-            width="200"
-            class-name="small-padding fixed-width"
-          >
-            <template #default="scope">
-              <el-button
-                link
-                type="warning"
-                size="small"
-                @click="handleUpdate(scope.row)"
-                v-hasPermi="['system:user:edit']"
-                >修改</el-button
-              >
+      <el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible" width="160">
+        <template #default="scope">
+          <span>{{ parseTime(scope.row.createTime) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
+        <template #default="scope">
+          <el-button link type="warning" size="small" @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:user:edit']">修改</el-button>
 
-              <el-button
-                link
-                size="small"
-                type="danger"
-                @click="handleDelete(scope.row)"
-                v-hasPermi="['system:user:remove']"
-                >删除</el-button
-              >
+          <el-button link size="small" type="danger" @click="handleDelete(scope.row)"
+            v-hasPermi="['system:user:remove']">删除</el-button>
 
-              <el-button
-                link
-                type="success"
-                size="small"
-                @click="handleResetPwd(scope.row)"
-                v-hasPermi="['system:user:resetPwd']"
-                >重置密码</el-button
-              >
+          <el-button link type="success" size="small" @click="handleResetPwd(scope.row)"
+            v-hasPermi="['system:user:resetPwd']">重置密码</el-button>
 
-              <!-- <el-tooltip content="分配角色" placement="top" v-if="scope.row.userId !== 1">
+          <!-- <el-tooltip content="分配角色" placement="top" v-if="scope.row.userId !== 1">
                 <el-button link type="primary" icon="CircleCheck" @click="handleAuthRole(scope.row)"
                   v-hasPermi="['system:user:edit']"></el-button>
               </el-tooltip> -->
-            </template>
-          </el-table-column>
-        </el-table>
-      </el-col>
-    </el-row>
-    <pagination
-      v-show="total > 0"
-      :total="total"
-      v-model:page="queryParams.pageNum"
-      v-model:limit="queryParams.pageSize"
-      @pagination="getList"
-    />
+        </template>
+      </el-table-column>
+    </el-table>
+    <!-- </el-col> -->
+    <!-- </el-row> -->
+    <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
+      @pagination="getList" />
 
     <!-- 添加或修改用户配置对话框 -->
-    <el-dialog
-      :title="title"
-      v-model="open"
-      width="600px"
-      append-to-body
-      draggable
-    >
+    <el-dialog :title="title" v-model="open" width="600px" append-to-body draggable>
       <el-form :model="form" :rules="rules" ref="userRef" label-width="80px">
         <el-row>
           <el-col :span="12">
             <el-form-item label="用户昵称" prop="nickName">
-              <el-input
-                v-model="form.nickName"
-                placeholder="请输入用户昵称"
-                maxlength="30"
-              />
+              <el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="归属部门" prop="deptId">
-              <el-tree-select
-                v-model="form.deptId"
-                :data="deptOptions"
-                :props="{ value: 'id', label: 'label', children: 'children' }"
-                value-key="id"
-                placeholder="请选择归属部门"
-                check-strictly
-                :render-after-expand="false"
-              />
+              <el-tree-select v-model="form.deptId" :data="deptOptions"
+                :props="{ value: 'id', label: 'label', children: 'children' }" value-key="id" placeholder="请选择归属部门"
+                check-strictly :render-after-expand="false" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
             <el-form-item label="手机号码" prop="phonenumber">
-              <el-input
-                v-model="form.phonenumber"
-                placeholder="请输入手机号码"
-                maxlength="11"
-              />
+              <el-input v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="邮箱" prop="email">
-              <el-input
-                v-model="form.email"
-                placeholder="请输入邮箱"
-                maxlength="50"
-              />
+              <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
-            <el-form-item
-              v-if="form.userId == undefined"
-              label="用户名称"
-              prop="userName"
-            >
-              <el-input
-                v-model="form.userName"
-                placeholder="请输入用户名称"
-                maxlength="30"
-              />
+            <el-form-item v-if="form.userId == undefined" label="用户名称" prop="userName">
+              <el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item
-              v-if="form.userId == undefined"
-              label="用户密码"
-              prop="password"
-            >
-              <el-input
-                v-model="form.password"
-                placeholder="请输入用户密码"
-                type="password"
-                maxlength="20"
-                show-password
-              />
+            <el-form-item v-if="form.userId == undefined" label="用户密码" prop="password">
+              <el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password />
             </el-form-item>
           </el-col>
         </el-row>
@@ -325,12 +166,8 @@
           <el-col :span="12">
             <el-form-item label="用户性别">
               <el-select v-model="form.sex" placeholder="请选择">
-                <el-option
-                  v-for="dict in sys_user_sex"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
-                ></el-option>
+                <el-option v-for="dict in sys_user_sex" :key="dict.value" :label="dict.label"
+                  :value="dict.value"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -345,13 +182,8 @@
           <el-col :span="12">
             <el-form-item label="角色">
               <el-select v-model="form.roleIds" multiple placeholder="请选择">
-                <el-option
-                  v-for="item in roleOptions"
-                  :key="item.roleId"
-                  :label="item.roleName"
-                  :value="item.roleId"
-                  :disabled="item.status == 1"
-                ></el-option>
+                <el-option v-for="item in roleOptions" :key="item.roleId" :label="item.roleName" :value="item.roleId"
+                  :disabled="item.status == 1"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -369,11 +201,7 @@
         <el-row>
           <el-col :span="24">
             <el-form-item label="备注">
-              <el-input
-                v-model="form.remark"
-                type="textarea"
-                placeholder="请输入内容"
-              ></el-input>
+              <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
@@ -387,26 +215,11 @@
     </el-dialog>
 
     <!-- 用户导入对话框 -->
-    <el-dialog
-      :title="upload.title"
-      v-model="upload.open"
-      width="400px"
-      append-to-body
-      draggable
-    >
-      <el-upload
-        ref="uploadRef"
-        :limit="1"
-        accept=".xlsx, .xls"
-        :headers="upload.headers"
-        :action="upload.url + '?updateSupport=' + upload.updateSupport"
-        :disabled="upload.isUploading"
-        :fileList="fileList"
-        :on-progress="handleFileUploadProgress"
-        :on-success="handleFileSuccess"
-        :auto-upload="false"
-        drag
-      >
+    <el-dialog :title="upload.title" v-model="upload.open" width="400px" append-to-body draggable>
+      <el-upload ref="uploadRef" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
+        :fileList="fileList" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false"
+        drag>
         <el-icon class="el-icon--upload">
           <upload-filled />
         </el-icon>
@@ -414,18 +227,11 @@
         <template #tip>
           <div class="el-upload__tip text-center">
             <div class="el-upload__tip">
-              <el-checkbox
-                v-model="upload.updateSupport"
-              />是否更新已经存在的用户数据
+              <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
             </div>
             <span>仅允许导入xls、xlsx格式文件。</span>
-            <el-link
-              type="primary"
-              :underline="false"
-              style="font-size: 12px; vertical-align: baseline"
-              @click="importTemplate"
-              >下载模板</el-link
-            >
+            <el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
+              @click="importTemplate">下载模板</el-link>
           </div>
         </template>
       </el-upload>
@@ -613,7 +419,7 @@ function handleDelete(row) {
       getList();
       proxy.$modal.msgSuccess("删除成功");
     })
-    .catch(() => {});
+    .catch(() => { });
 }
 /** 导出按钮操作 */
 function handleExport() {
@@ -674,7 +480,7 @@ function handleResetPwd(row) {
         proxy.$modal.msgSuccess("修改成功,新密码是:" + value);
       });
     })
-    .catch(() => {});
+    .catch(() => { });
 }
 /** 选择条数  */
 function handleSelectionChange(selection) {
@@ -706,8 +512,8 @@ const handleFileSuccess = (response, file, fileList) => {
   proxy.$refs["uploadRef"].handleRemove(file);
   proxy.$alert(
     "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
-      response.msg +
-      "</div>",
+    response.msg +
+    "</div>",
     "导入结果",
     { dangerouslyUseHTMLString: true }
   );

部分文件因文件數量過多而無法顯示