Browse Source

评估需求调整

huangguoce 3 weeks atrás
parent
commit
42285c401c

+ 107 - 100
src/api/finance/invoice/FinanceInvoiceService.js

@@ -1,104 +1,111 @@
-import request from '@/utils/httpRequest'
+import request from "@/utils/httpRequest";
 import { ASSESS_PATH as prefix } from "../../AppPath";
 
 export default class FinanceInvoiceService {
-  list (params) {
-    return request({
-      url: prefix + '/finance/invoice/list',
-      method: 'get',
-      params: params
-    })
-  }
-  queryById (id) {
-    return request({
-      url: prefix + '/finance/invoice/queryById',
-      method: 'get',
-      params: {id: id}
-    })
-  }
-  queryByNumber (number, id) {
-    return request({
-      url: prefix + '/finance/invoice/queryByNumber',
-      method: 'get',
-      params: {number: number, id: id}
-    })
-  }
-  save (inputForm) {
-    return request({
-      url: prefix + `/finance/invoice/save`,
-      method: 'post',
-      data: inputForm
-    })
-  }
-  delete (ids) {
-    return request({
-      url: prefix + '/finance/invoice/delete',
-      method: 'delete',
-      params: {ids: ids}
-    })
-  }
-  updateStatusById (data) {
-    return request({
-      url: prefix + '/finance/invoice/updateStatusById',
-      method: 'post',
-      data: data
-    })
-  }
-  isReceivables (data) {
-    return request({
-      url: prefix + '/finance/invoice/isReceivables',
-      method: 'post',
-      data: data
-    })
-  }
-  saveForm (inputForm) {
-    return request({
-      url: prefix + `/finance/invoice/saveForm`,
-      method: 'post',
-      data: inputForm
-    })
-  }
-  saveFormInvalid (inputForm) {
-    return request({
-      url: prefix + `/finance/invoice/saveFormInvalid`,
-      method: 'post',
-      data: inputForm
-    })
-  }
-  queryIdByInvalidId (id) {
-    return request({
-      url: prefix + '/finance/invoice/queryIdByInvalidId',
-      method: 'get',
-      params: {id: id}
-    })
-  }
-  importDetail (data) {
-    return request({
-      url: prefix + '/finance/invoice/importDetail',
-      method: 'post',
-      data: data
-    })
-  }
-  exportTemplate () {
-    return request({
-      url: prefix + '/finance/invoice/importDetail/template',
-      method: 'get',
-      responseType: 'blob'
-    })
-  }
-  exportFile (params) {
-    return request({
-      url: prefix + '/finance/invoice/export',
-      method: 'get',
-      params: params,
-      responseType: 'blob'
-    })
-  }
-  redList(params) {
-  	return request({
-		url: prefix + "/finance/invoice/redList",
-		method: "get",
-		params: params,
-	});
-  }
+	list(params) {
+		return request({
+			url: prefix + "/finance/invoice/list",
+			method: "get",
+			params: params,
+		});
+	}
+	queryById(id) {
+		return request({
+			url: prefix + "/finance/invoice/queryById",
+			method: "get",
+			params: { id: id },
+		});
+	}
+	queryByNumber(number, id) {
+		return request({
+			url: prefix + "/finance/invoice/queryByNumber",
+			method: "get",
+			params: { number: number, id: id },
+		});
+	}
+	save(inputForm) {
+		return request({
+			url: prefix + `/finance/invoice/save`,
+			method: "post",
+			data: inputForm,
+		});
+	}
+	delete(ids) {
+		return request({
+			url: prefix + "/finance/invoice/delete",
+			method: "delete",
+			params: { ids: ids },
+		});
+	}
+	updateStatusById(data) {
+		return request({
+			url: prefix + "/finance/invoice/updateStatusById",
+			method: "post",
+			data: data,
+		});
+	}
+	isReceivables(data) {
+		return request({
+			url: prefix + "/finance/invoice/isReceivables",
+			method: "post",
+			data: data,
+		});
+	}
+	saveForm(inputForm) {
+		return request({
+			url: prefix + `/finance/invoice/saveForm`,
+			method: "post",
+			data: inputForm,
+		});
+	}
+	saveFormInvalid(inputForm) {
+		return request({
+			url: prefix + `/finance/invoice/saveFormInvalid`,
+			method: "post",
+			data: inputForm,
+		});
+	}
+	queryIdByInvalidId(id) {
+		return request({
+			url: prefix + "/finance/invoice/queryIdByInvalidId",
+			method: "get",
+			params: { id: id },
+		});
+	}
+	importDetail(data) {
+		return request({
+			url: prefix + "/finance/invoice/importDetail",
+			method: "post",
+			data: data,
+		});
+	}
+	exportTemplate() {
+		return request({
+			url: prefix + "/finance/invoice/importDetail/template",
+			method: "get",
+			responseType: "blob",
+		});
+	}
+	exportFile(params) {
+		return request({
+			url: prefix + "/finance/invoice/export",
+			method: "get",
+			params: params,
+			responseType: "blob",
+		});
+	}
+	redList(params) {
+		return request({
+			url: prefix + "/finance/invoice/redList",
+			method: "get",
+			params: params,
+		});
+	}
+	findInvoiceByProjectName(params) {
+		return request({
+			url: prefix + "/finance/invoice/findInvoiceByProjectName",
+			method: "get",
+			params: params,
+		});
+	}
 }

File diff suppressed because it is too large
+ 1689 - 0
src/views/cw/reportManagement/ReportApprovedAmountForm.vue


+ 7 - 2
src/views/cw/reportManagement/ReportManagementForm.vue

@@ -230,7 +230,6 @@
               </el-col>
               <el-col :span="12" v-if="inputForm.reportType === '1'">
                 <el-form-item label="审定金额(不含税/元)" prop="approvedNoIncludingTax" :rules="[
-                  { required: true, message: '审定金额(不含税/元)不能为空', trigger: 'blur' }
                 ]">
                   <el-input v-model="inputForm.approvedNoIncludingTax" placeholder="请填写审定金额(不含税/元)" v-on:input="inputForm.approvedNoIncludingTax = inputForm.approvedNoIncludingTax.replace(/[^\d.]/g, '')
                     .replace(/^\./g, '')
@@ -241,7 +240,6 @@
               </el-col>
               <el-col :span="12" v-if="inputForm.reportType === '1'">
                 <el-form-item label="审定金额(含税/元)" prop="approvedIncludingTax" :rules="[
-                  { required: true, message: '审定金额(不含税/元)不能为空', trigger: 'blur' }
                 ]">
                   <el-input v-model="inputForm.approvedIncludingTax" placeholder="请填写审定金额(含税/元)" v-on:input="inputForm.approvedIncludingTax = inputForm.approvedIncludingTax.replace(/[^\d.]/g, '')
                     .replace(/^\./g, '')
@@ -1218,6 +1216,13 @@ export default {
           // this.$refs.enclosure.newUpload(method, data.cwFileInfoList2, 'cwWorkContract', null, null, null, null, false)
           this.$refs.archiveFile.newUpload(method, data.cwFileInfoList, 'cwWorkContract', null, null, null, null, false)
           this.$refs.signatureFile.newUpload('view', data.signatureFileList, 'cwWorkContract', null, null, null, null, false)
+          // 去除审定金额为空时给0的默认值
+          if (this.inputForm.approvedIncludingTax == "0") {
+            this.inputForm.approvedIncludingTax = ""
+          }
+          if (this.inputForm.approvedNoIncludingTax == "0") {
+            this.inputForm.approvedNoIncludingTax = ""
+          }
           this.loading = false
         })
         // this.projectRecordsService.queryById(this.inputForm.id).then((data) => {

+ 15 - 0
src/views/cw/reportManagement/ReportManagementList.vue

@@ -298,6 +298,8 @@
 									@click="rebackApplyAndAll(scope.row)">撤回报告号申请</el-button>
 							</div>
 							<div v-else>
+								<el-button v-if="$dictUtils.getDictValue('report_edit_flag', 'open', '0') == 1" text
+									type="primary" @click="editApprovedAmount(scope.row.id)">审定金额修改</el-button>
 								<el-button
 									v-if="hasPermission('cwProjectReport:edit') &&
 										(scope.row.createById === $store.state.user.id || haveProjectIds.includes(scope.row.projectId)) &&
@@ -450,6 +452,7 @@
 			</div>
 		</div>
 		<ReportManagementForm ref="reportManagementForm" @refreshList="refreshList"></ReportManagementForm>
+		<ReportApprovedAmountForm ref="reportApprovedAmountForm" @refreshList="refreshList"></ReportApprovedAmountForm>
 		<ReportManagementAddForm ref="reportManagementAddForm" @refreshList="refreshList"></ReportManagementAddForm>
 
 		<!--	  <user-select-->
@@ -477,6 +480,7 @@ import ProjectReportArchiveService from '@/api/cw/projectRecords/ProjectReportAr
 import taskService from '@/api/flowable/TaskService'
 import processService from '@/api/flowable/ProcessService'
 import ReportManagementForm from './ReportManagementForm'
+import ReportApprovedAmountForm from './ReportApprovedAmountForm'
 import ReportManagementAddForm from './ReportManagementAddForm'
 import pick from 'lodash.pick'
 import userService from '@/api/sys/UserService'
@@ -562,6 +566,7 @@ export default {
 	},
 	components: {
 		ReportManagementForm,
+		ReportApprovedAmountForm,
 		ReportManagementAddForm,
 		SelectUserTree,
 		InputNumber,
@@ -619,6 +624,16 @@ export default {
 			// this.$refs.reportManagementTaskForm.init('edit', id)
 			this.$refs.reportManagementForm.init('edit', id, '')
 		},
+		// 审定金额修改
+		editApprovedAmount(id) {
+			id = id || this.$refs.clientTable.getCheckboxRecords().map(item => {
+				return item.id
+			})[0]
+			// this.$refs.workClientForm.init('edit', id)
+			// this.$refs.reportManagementTaskForm.init('edit', id)
+			this.$refs.reportApprovedAmountForm.init('edit', id, '')
+		},
+
 		// 查看
 		view(id) {
 			// this.$refs.workClientForm.init('view', id)

+ 8 - 0
src/views/cw/reportManagement/ReportReviewTakeNumberForm.vue

@@ -216,6 +216,7 @@
 						</el-col>
 						<el-col :span="12" v-if="inputForm.reportType === '1'">
 							<el-form-item label="审定金额(不含税/元)" prop="approvedNoIncludingTax" :rules="[
+								{ required: true, message: '审定金额(不含税/元)不能为空', trigger: 'blur' },
 							]">
 								<el-input v-model="inputForm.approvedNoIncludingTax" placeholder="请填写审定金额(不含税/元)"
 									v-on:input="inputForm.approvedNoIncludingTax = inputForm.approvedNoIncludingTax.replace(/[^\d.]/g, '')
@@ -227,6 +228,7 @@
 						</el-col>
 						<el-col :span="12" v-if="inputForm.reportType === '1'">
 							<el-form-item label="审定金额(含税/元)" prop="approvedIncludingTax" :rules="[
+								{ required: true, message: '审定金额(含税/元)不能为空', trigger: 'blur' },
 							]">
 								<el-input v-model="inputForm.approvedIncludingTax" placeholder="请填写审定金额(含税/元)"
 									v-on:input="inputForm.approvedIncludingTax = inputForm.approvedIncludingTax.replace(/[^\d.]/g, '')
@@ -803,6 +805,12 @@ export default {
 					if (!this.inputForm.digitalLetterCount || this.inputForm.digitalLetterCount == "") {
 						this.inputForm.digitalLetterCount = "0"
 					}
+					if (this.inputForm.approvedIncludingTax == "0") {
+						this.inputForm.approvedIncludingTax = ""
+					}
+					if (this.inputForm.approvedNoIncludingTax == "0") {
+						this.inputForm.approvedNoIncludingTax = ""
+					}
 					console.log('in', this.inputForm)
 					this.searchForm.programId = data.projectId
 					if (this.commonJS.isEmpty(this.inputForm.createDate)) {

+ 10 - 0
src/views/cw/reportManagement/reportReviewNew/ReportReviewFormNew.vue

@@ -248,6 +248,7 @@
             </el-col>
             <el-col :span="12" v-if="inputForm.reportType === '1'">
               <el-form-item label="审定金额(不含税/元)" prop="approvedNoIncludingTax" :rules="[
+                { required: true, message: '审定金额(不含税/元)不能为空', trigger: 'blur' },
               ]">
                 <el-input v-model="inputForm.approvedNoIncludingTax" placeholder="请填写审定金额(不含税/元)" v-on:input="inputForm.approvedNoIncludingTax = inputForm.approvedNoIncludingTax.replace(/[^\d.]/g, '')
                   .replace(/^\./g, '')
@@ -258,6 +259,8 @@
             </el-col>
             <el-col :span="12" v-if="inputForm.reportType === '1'">
               <el-form-item label="审定金额(含税/元)" prop="approvedIncludingTax" :rules="[
+                { required: true, message: '审定金额(含税/元)不能为空', trigger: 'blur' },
+
               ]">
                 <el-input v-model="inputForm.approvedIncludingTax" placeholder="请填写审定金额(含税/元)" v-on:input="inputForm.approvedIncludingTax = inputForm.approvedIncludingTax.replace(/[^\d.]/g, '')
                   .replace(/^\./g, '')
@@ -1021,6 +1024,13 @@ export default {
               this.inputForm.taskName = data
             })
           }
+          if (this.inputForm.approvedIncludingTax == "0") {
+            this.inputForm.approvedIncludingTax = ""
+          }
+          if (this.inputForm.approvedNoIncludingTax == "0") {
+            this.inputForm.approvedNoIncludingTax = ""
+          }
+
           //当前登录人是苏州报告签字盖章代办且签章附件不为空的时候,进入页面展示已签章附件
           if (this.commonJS.isNotEmpty(data.signatureFileList) && data.isXs === '1') {
             this.signatureName = 'signatureFile'

File diff suppressed because it is too large
+ 1376 - 1499
src/views/finance/invoice/InvoiceFormTask.vue


+ 229 - 253
src/views/finance/invoice/ProgramPageForm.vue

@@ -1,14 +1,7 @@
 <template>
   <div>
-    <el-dialog
-      :title="title"
-      :close-on-click-modal="false"
-	  draggable
-      width="1200px"
-      height="500px"
-      @close="close"
-      @keyup.enter.native=""
-	  v-model="visible">
+    <el-dialog :title="title" :close-on-click-modal="false" draggable width="1400px" height="500px" @close="close"
+      @keyup.enter.native="" v-model="visible">
       <el-container>
         <el-main style="padding-top: 0;padding-bottom: 0">
           <div v-if="isShow">
@@ -16,7 +9,8 @@
             <el-radio v-model="checkType" label="2" size="large" style="margin-right: 20px">其他</el-radio>
           </div>
           <div v-if="checkType === '1'">
-            <el-form style="margin-bottom: 0" :inline="true" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
+            <el-form style="margin-bottom: 0" :inline="true" class="query-form" ref="searchForm" :model="searchForm"
+              @keyup.enter.native="refreshList()" @submit.native.prevent>
               <!-- 搜索框-->
               <el-form-item label="项目名称" prop="name">
                 <el-input v-model="searchForm.name" placeholder="请输入项目名称" clearable></el-input>
@@ -31,303 +25,285 @@
               </el-form-item>
             </el-form>
             <div v-if="num" style="margin-bottom: 10px"><span style="color: #F56C6C">注:最多选择 10 条数据</span></div>
-            <vxe-table
-              border="inner"
-              auto-resize
-              resizable
-              height="400px"
-              :loading="loading"
-              size="small"
-              ref="programTable"
-              show-header-overflow
-              show-overflow
-              highlight-hover-row
-              @checkbox-all="selectAllEvent"
-              @checkbox-change="selectionChangeHandle"
-              :row-id="rowId"
-              :checkbox-config="{reserve: true}"
-              :sort-config="{remote:true}"
-              :data="dataList">
+            <vxe-table border="inner" auto-resize resizable height="400px" :loading="loading" size="small"
+              ref="programTable" show-header-overflow show-overflow highlight-hover-row @checkbox-all="selectAllEvent"
+              @checkbox-change="selectionChangeHandle" :row-id="rowId" :checkbox-config="{ reserve: true }"
+              :sort-config="{ remote: true }" :data="dataList">
               <vxe-column type="seq" width="60" title="序号"></vxe-column>
               <vxe-column type="checkbox" width="50px"></vxe-column>
 
               <vxe-column min-width="300px" title="项目名称" field="name" align="center"></vxe-column>
               <vxe-column min-width="110px" title="项目编号" field="no" align="center"></vxe-column>
-    <!--          <vxe-column width="150px" title="报告号" field="clientName"></vxe-column>-->
-              <vxe-column min-width="100px" title="登记人" field="createBy" align="center"></vxe-column>
-    <!--          <vxe-column width="150px" title="责任人" field="createDate"></vxe-column>-->
+              <vxe-column min-width="230px" title="报告号" field="reportNo" align="center"></vxe-column>
+              <!--          <vxe-column width="150px" title="报告号" field="clientName"></vxe-column>-->
+              <vxe-column min-width="100px" title="登记人" field="createById" align="center"></vxe-column>
+              <!--          <vxe-column width="150px" title="责任人" field="createDate"></vxe-column>-->
               <vxe-column min-width="200px" title="委托方" field="clientName" align="center"></vxe-column>
               <vxe-column min-width="100px" title="是否开票" field="isInvoice" align="center"></vxe-column>
 
             </vxe-table>
-            <vxe-pager
-              background
-              size="small"
-              :current-page="tablePage.currentPage"
-              :page-size="tablePage.pageSize"
-              :total="tablePage.total"
-              :page-sizes="[10, 20, 100, 1000, {label: '全量数据', value: 1000000}]"
+            <vxe-pager background size="small" :current-page="tablePage.currentPage" :page-size="tablePage.pageSize"
+              :total="tablePage.total" :page-sizes="[10, 20, 100, 1000, { label: '全量数据', value: 1000000 }]"
               :layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
               @page-change="currentChangeHandle">
             </vxe-pager>
           </div>
           <div style="height: 500px;" v-if="checkType === '2'">
-            <el-form  label-width="80px" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
-              <el-row  :gutter="15">
+            <el-form label-width="80px" class="query-form" ref="searchForm" :model="searchForm"
+              @keyup.enter.native="refreshList()" @submit.native.prevent>
+              <el-row :gutter="15">
                 <el-col :span="21">
                   <el-form-item label="详情" prop="detail">
-                    <el-input style="width: 100%" type="textarea" maxlength="500" v-model="detail" placeholder="请输入详情" show-word-limit></el-input>
+                    <el-input style="width: 100%" type="textarea" maxlength="500" v-model="detail" placeholder="请输入详情"
+                      show-word-limit></el-input>
                   </el-form-item>
                 </el-col>
               </el-row>
             </el-form>
           </div>
         </el-main>
-        <el-aside width="300px" v-if="checkType === '1' && commonJS.isNotEmpty(dataListAllSelections.length) && dataListAllSelections.length > 0">
-          <el-tag
-            style="margin: 10px 0 0 0"
-            :key="tag.id"
-            v-for="(tag, index) in dataListAllSelections"
-            closable
-            :disable-transitions="false"
-            @close="del(tag, index)">
-            {{tag.name.length>20?tag.name.substring(0,20)+'...':tag.name}}
+        <el-aside width="300px"
+          v-if="checkType === '1' && commonJS.isNotEmpty(dataListAllSelections.length) && dataListAllSelections.length > 0">
+          <el-tag style="margin: 10px 0 0 0" :key="tag.id" v-for="(tag, index) in dataListAllSelections" closable
+            :disable-transitions="false" @close="del(tag, index)">
+            {{ tag.name.length > 20 ? tag.name.substring(0, 20) + '...' : tag.name }}
           </el-tag>
         </el-aside>
       </el-container>
-		<template #footer>
-			<span class="dialog-footer">
-			  <el-button @click="close()">关闭</el-button>
-			  <el-button type="primary" v-if="method != 'view'" @click="getProgram()" v-noMoreClick>({{dataListAllSelections.length}}) 确定</el-button>
-			</span>
-		</template>
+      <template #footer>
+        <span class="dialog-footer">
+          <el-button @click="close()">关闭</el-button>
+          <el-button type="primary" v-if="method != 'view'" @click="getProgram()" v-noMoreClick>({{
+            dataListAllSelections.length }}) 确定</el-button>
+        </span>
+      </template>
 
     </el-dialog>
   </div>
 </template>
 
 <script>
-  import ProgramProjectListInfoService from '@/api/program/ProgramProjectListInfoService'
-  export default {
-    data () {
-      return {
-        title: '项目选择',
-        method: '',
-        visible: false,
-        loading: false,
-        tablePage: {
-          total: 0,
-          currentPage: 1,
-          pageSize: 10,
-          orders: []
-        },
-        dataList: [],
-        searchForm: {
-          name: '',
-          no: '',
-          createBy: ''
-        },
-        checkType: '',
-        detail: '',
-        dataListAllSelections: [],
-        rowId: 'id',
-        isShow: true,
-        num: true // num为true是多选,false是单选
-      }
-    },
-    programProjectListInfoService: null,
-    created () {
-      this.programProjectListInfoService = new ProgramProjectListInfoService()
-    },
-    components: {
-    },
-    methods: {
-      init (isShow, num) {
-        if (this.commonJS.isEmpty(isShow)) {
-          this.isShow = true
+import ProgramProjectListInfoService from '@/api/program/ProgramProjectListInfoService'
+export default {
+  data() {
+    return {
+      title: '项目选择',
+      method: '',
+      visible: false,
+      loading: false,
+      tablePage: {
+        total: 0,
+        currentPage: 1,
+        pageSize: 10,
+        orders: []
+      },
+      dataList: [],
+      searchForm: {
+        name: '',
+        no: '',
+        createBy: ''
+      },
+      checkType: '',
+      detail: '',
+      dataListAllSelections: [],
+      rowId: 'id',
+      isShow: true,
+      num: true // num为true是多选,false是单选
+    }
+  },
+  programProjectListInfoService: null,
+  created() {
+    this.programProjectListInfoService = new ProgramProjectListInfoService()
+  },
+  components: {
+  },
+  methods: {
+    init(isShow, num) {
+      if (this.commonJS.isEmpty(isShow)) {
+        this.isShow = true
+        this.checkType = '1'
+      } else {
+        if (isShow === false || isShow === 'false') {
+          this.isShow = false
+          this.checkType = '1'
+          this.$message({ message: '第一条为项目后面新增只能选择项目', type: 'warning', customClass: 'messageZindex' })
+        } else if (isShow === '1') {
+          this.isShow = false
           this.checkType = '1'
         } else {
-          if (isShow === false || isShow === 'false') {
-            this.isShow = false
-            this.checkType = '1'
-            this.$message({message: '第一条为项目后面新增只能选择项目', type: 'warning', customClass: 'messageZindex'})
-          } else if (isShow === '1') {
-            this.isShow = false
-            this.checkType = '1'
-          } else {
-            this.isShow = false
-            this.checkType = '2'
-          }
+          this.isShow = false
+          this.checkType = '2'
+        }
+      }
+      if (this.commonJS.isEmpty(num) || num === true) {
+        this.num = true // num为true是多选,false是单选
+      } else {
+        this.num = false
+      }
+      this.visible = true
+      this.dataListAllSelections = []
+      this.tablePage.currentPage = 1
+      this.tablePage.pageSize = 10
+      this.searchForm = {
+        projectName: '',
+        projectNumber: '',
+        createBy: ''
+      }
+      this.list()
+    },
+    // 表单提交
+    getProgram() {
+      let rows
+      if (this.checkType === '1') {
+        if (this.commonJS.isEmpty(this.dataListAllSelections)) {
+          this.$message.error('请至少选择一条数据')
+          return
         }
-        if (this.commonJS.isEmpty(num) || num === true) {
-          this.num = true // num为true是多选,false是单选
+        if (this.num === false) {
+          if (this.dataListAllSelections.length > 1) {
+            this.$message.error('最多选择一条数据')
+            return
+          }
         } else {
-          this.num = false
+          if (this.dataListAllSelections.length > 10) {
+            this.$message.error('最多选择10条数据')
+            return
+          }
         }
-        this.visible = true
-        this.dataListAllSelections = []
-        this.tablePage.currentPage = 1
-        this.tablePage.pageSize = 10
-        this.searchForm = {
-          projectName: '',
-          projectNumber: '',
-          createBy: ''
+        rows = this.dataListAllSelections
+      } else {
+        if (this.commonJS.isEmpty(this.detail)) {
+          this.$message.error('请填写开票详情')
+          return
         }
-        this.list()
-      },
-      // 表单提交
-      getProgram () {
-        let rows
-        if (this.checkType === '1') {
-          if (this.commonJS.isEmpty(this.dataListAllSelections)) {
-            this.$message.error('请至少选择一条数据')
-            return
+        rows = [{ name: this.detail }]
+      }
+      this.close()
+      this.$emit('getProgram', rows)
+    },
+    list() {
+      if (this.checkType === '1') {
+        this.loading = true
+        this.searchForm.showInvoiceFlag = '1'  // showInvoiceFlag = '1'时,查询关联发票的开票状态。showInvoiceFlag为其他值或者为空时,不查询
+        this.programProjectListInfoService.list({
+          'current': this.tablePage.currentPage,
+          'size': this.tablePage.pageSize,
+          'orders': this.tablePage.orders,
+          ...this.searchForm
+        }).then(async (data) => {
+          this.dataList = data.records
+          this.tablePage.total = data.total
+          this.loading = false
+          // 在切换页后,将页面不需要勾选的数据取消勾选
+          let isCheck = []
+          for (let i = 0; i < this.tablePage.pageSize; i++) {
+            for (let j = 0; j < this.dataListAllSelections.length; j++) {
+              if (this.commonJS.isNotEmpty(this.dataList[i]) && this.commonJS.isNotEmpty(this.dataListAllSelections[j])) {
+                if (this.dataList[i].id === this.dataListAllSelections[j].id) { // 符合条件的数据勾选
+                  isCheck.push(this.dataList[i].id)
+                }
+              }
+            }
           }
-          if (this.num === false) {
-            if (this.dataListAllSelections.length > 1) {
-              this.$message.error('最多选择一条数据')
-              return
+          if (this.commonJS.isNotEmpty(isCheck)) {
+            for (let i = 0; i < this.tablePage.pageSize; i++) {
+              if (isCheck.includes(this.dataList[i].id)) {
+                await this.$refs.programTable.setCheckboxRow([this.dataList[i]], true)
+              } else {
+                await this.$refs.programTable.setCheckboxRow([this.dataList[i]], false)
+              }
             }
           } else {
-            if (this.dataListAllSelections.length > 10) {
-              this.$message.error('最多选择10条数据')
-              return
+            for (let i = 0; i < this.tablePage.pageSize; i++) {
+              await this.$refs.programTable.setCheckboxRow([this.dataList[i]], false)
             }
           }
-          rows = this.dataListAllSelections
-        } else {
-          if (this.commonJS.isEmpty(this.detail)) {
-            this.$message.error('请填写开票详情')
-            return
-          }
-          rows = [{name: this.detail}]
+        })
+      }
+    },
+    // 当前页
+    currentChangeHandle({ currentPage, pageSize }) {
+      this.tablePage.currentPage = currentPage
+      this.tablePage.pageSize = pageSize
+      this.list()
+    },
+    resetSearch() {
+      this.dataListAllSelections = []
+      this.searchForm = {
+        name: '',
+        no: '',
+        createBy: ''
+      }
+      this.$refs.programTable.clearCheckboxReserve() // 清除全部页的勾选
+      this.$refs.searchForm.resetFields()
+      this.list()
+    },
+    close() {
+      if (this.$refs.programTable) {
+        this.$refs.programTable.clearCheckboxReserve()
+      }
+      this.dataListAllSelections = []
+      this.detail = ''
+      this.visible = false
+    },
+    // 全选/取消全选 时,右侧tag标签同步新增或删除改变
+    async selectAllEvent(event) {
+      this.dataListAllSelections = []
+      let thisPageDate = await this.$refs.programTable.getCheckboxRecords()
+      let otherPageDate = await this.$refs.programTable.getCheckboxReserveRecords()
+      if (this.commonJS.isNotEmpty(otherPageDate)) {
+        for (let i = 0; i < otherPageDate.length; i++) {
+          this.dataListAllSelections.push(otherPageDate[i])
         }
-        this.close()
-        this.$emit('getProgram', rows)
-      },
-      list () {
-		  if (this.checkType === '1') {
-			  this.loading = true
-			  this.searchForm.showInvoiceFlag = '1'  // showInvoiceFlag = '1'时,查询关联发票的开票状态。showInvoiceFlag为其他值或者为空时,不查询
-			  this.programProjectListInfoService.list({
-				  'current': this.tablePage.currentPage,
-				  'size': this.tablePage.pageSize,
-				  'orders': this.tablePage.orders,
-				  ...this.searchForm
-			  }).then(async (data) => {
-				  this.dataList = data.records
-				  this.tablePage.total = data.total
-				  this.loading = false
-				  // 在切换页后,将页面不需要勾选的数据取消勾选
-				  let isCheck = []
-				  for (let i = 0; i < this.tablePage.pageSize; i++) {
-					  for (let j = 0; j < this.dataListAllSelections.length; j++) {
-						  if (this.commonJS.isNotEmpty(this.dataList[i]) && this.commonJS.isNotEmpty(this.dataListAllSelections[j])) {
-							  if (this.dataList[i].id === this.dataListAllSelections[j].id) { // 符合条件的数据勾选
-								  isCheck.push(this.dataList[i].id)
-							  }
-						  }
-					  }
-				  }
-				  if (this.commonJS.isNotEmpty(isCheck)) {
-					  for (let i = 0; i < this.tablePage.pageSize; i++) {
-						  if (isCheck.includes(this.dataList[i].id)) {
-							  await this.$refs.programTable.setCheckboxRow([this.dataList[i]], true)
-						  } else {
-							  await this.$refs.programTable.setCheckboxRow([this.dataList[i]], false)
-						  }
-					  }
-				  } else {
-					  for (let i = 0; i < this.tablePage.pageSize; i++) {
-						  await this.$refs.programTable.setCheckboxRow([this.dataList[i]], false)
-					  }
-				  }
-			  })
-		  }
-      },
-      // 当前页
-      currentChangeHandle ({currentPage, pageSize}) {
-        this.tablePage.currentPage = currentPage
-        this.tablePage.pageSize = pageSize
-        this.list()
-      },
-      resetSearch () {
-        this.dataListAllSelections = []
-        this.searchForm = {
-          name: '',
-          no: '',
-          createBy: ''
+      }
+      if (this.commonJS.isNotEmpty(thisPageDate)) {
+        for (let i = 0; i < thisPageDate.length; i++) {
+          this.dataListAllSelections.push(thisPageDate[i])
         }
-        this.$refs.programTable.clearCheckboxReserve() // 清除全部页的勾选
-        this.$refs.searchForm.resetFields()
-        this.list()
-      },
-      close () {
-      	if (this.$refs.programTable) {
-			this.$refs.programTable.clearCheckboxReserve()
-		}
-        this.dataListAllSelections = []
-        this.detail = ''
-        this.visible = false
-      },
-      // 全选/取消全选 时,右侧tag标签同步新增或删除改变
-      async selectAllEvent (event) {
-        this.dataListAllSelections = []
-        let thisPageDate = await this.$refs.programTable.getCheckboxRecords()
-        let otherPageDate = await this.$refs.programTable.getCheckboxReserveRecords()
-        if (this.commonJS.isNotEmpty(otherPageDate)) {
-          for (let i = 0; i < otherPageDate.length; i++) {
-            this.dataListAllSelections.push(otherPageDate[i])
+      }
+    },
+    // 当前页“选中/取消选中”数据时,“新增/删除”右侧tag标签
+    selectionChangeHandle(event) {
+      if (event.checked) { // 选中触发
+        let delIndex = -1
+        for (let i = 0; i < this.dataListAllSelections.length; i++) {
+          if (this.dataListAllSelections[i].id === event.row.id) {
+            delIndex = i
           }
         }
-        if (this.commonJS.isNotEmpty(thisPageDate)) {
-          for (let i = 0; i < thisPageDate.length; i++) {
-            this.dataListAllSelections.push(thisPageDate[i])
-          }
+        if (this.commonJS.isNotEmpty(delIndex) && delIndex === -1) {
+          this.dataListAllSelections.push(event.row)
         }
-      },
-      // 当前页“选中/取消选中”数据时,“新增/删除”右侧tag标签
-      selectionChangeHandle (event) {
-        if (event.checked) { // 选中触发
-          let delIndex = -1
-          for (let i = 0; i < this.dataListAllSelections.length; i++) {
-            if (this.dataListAllSelections[i].id === event.row.id) {
-              delIndex = i
-            }
-          }
-          if (this.commonJS.isNotEmpty(delIndex) && delIndex === -1) {
-            this.dataListAllSelections.push(event.row)
-          }
-        } else { // 取消选中触发
-          let delIndex = -1
-          for (let i = 0; i < this.dataListAllSelections.length; i++) {
-            if (this.dataListAllSelections[i].id === event.row.id) {
-              delIndex = i
-            }
-          }
-          if (this.commonJS.isNotEmpty(delIndex) && delIndex !== -1) {
-            this.dataListAllSelections.splice(delIndex, 1)
+      } else { // 取消选中触发
+        let delIndex = -1
+        for (let i = 0; i < this.dataListAllSelections.length; i++) {
+          if (this.dataListAllSelections[i].id === event.row.id) {
+            delIndex = i
           }
         }
-      },
-      // 删除tag标签时,取消勾选当前页对应的数据
-      async del (tag, index) {
-        this.dataListAllSelections.splice(index, 1)
-        let rows = await this.$refs.programTable.getCheckboxRecords()
-        await this.$refs.programTable.clearCheckboxRow()
-        for (let i = 0; i < this.dataList.length; i++) {
-          for (let j = 0; j < rows.length; j++) {
-            if (this.dataList[i].id !== tag.id && this.dataList[i].id === rows[j].id) {
-              await this.$refs.programTable.setCheckboxRow([this.dataList[i]], true)
-            }
+        if (this.commonJS.isNotEmpty(delIndex) && delIndex !== -1) {
+          this.dataListAllSelections.splice(delIndex, 1)
+        }
+      }
+    },
+    // 删除tag标签时,取消勾选当前页对应的数据
+    async del(tag, index) {
+      this.dataListAllSelections.splice(index, 1)
+      let rows = await this.$refs.programTable.getCheckboxRecords()
+      await this.$refs.programTable.clearCheckboxRow()
+      for (let i = 0; i < this.dataList.length; i++) {
+        for (let j = 0; j < rows.length; j++) {
+          if (this.dataList[i].id !== tag.id && this.dataList[i].id === rows[j].id) {
+            await this.$refs.programTable.setCheckboxRow([this.dataList[i]], true)
           }
         }
       }
     }
   }
+}
 </script>
 <style>
-  .messageZindex {
-    z-index:9999 !important;
-  }
+.messageZindex {
+  z-index: 9999 !important;
+}
 </style>

File diff suppressed because it is too large
+ 919 - 974
src/views/program/registered/ProjectArchiveForm.vue


File diff suppressed because it is too large
+ 1700 - 1618
src/views/program/registered/ProjectList.vue


+ 13 - 8
src/views/workContract/WorkContractList.vue

@@ -11,19 +11,23 @@
         <el-input v-model="searchForm.name" placeholder="请输入合同名称" clearable></el-input>
       </el-form-item>
 
+      <el-form-item label="合同编号" prop="name">
+        <el-input v-model="searchForm.no" placeholder="请输入合同编号" clearable></el-input>
+      </el-form-item>
+
       <el-form-item v-if="showHideItem" label="签订日期" prop="contractDates">
         <el-date-picker placement="bottom-start" v-model="searchForm.contractDates" type="datetimerange"
           range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
         </el-date-picker>
       </el-form-item>
 
-		<el-form-item v-if="showHideItem" label="合同类型" prop="contractType">
-			<el-select v-model="searchForm.contractType" placeholder="请选择" style="width:100%;">
-				<el-option v-for="item in $dictUtils.getDictList('contract_type')" :key="item.value" :label="item.label"
-						   :value="item.value">
-				</el-option>
-			</el-select>
-		</el-form-item>
+      <el-form-item v-if="showHideItem" label="合同类型" prop="contractType">
+        <el-select v-model="searchForm.contractType" placeholder="请选择" style="width:100%;">
+          <el-option v-for="item in $dictUtils.getDictList('contract_type')" :key="item.value" :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
 
       <el-form-item v-if="showHideItem" label="合同状态" prop="status">
         <el-select v-model="searchForm.status" placeholder="请选择" style="width:100%;">
@@ -234,6 +238,7 @@ export default {
       searchForm: {
         clientName: '',
         name: '',
+        no: "",
         contractDates: [],
         type: '',
         filedType: '',
@@ -241,7 +246,7 @@ export default {
         createById: '',
         procInsId: '',
         processDefinitionId: '',
-		  contractType:''
+        contractType: ''
       },
       dataList: [],
       tablePage: {