Kaynağa Gözat

评估项目归档等功能调整

user5 1 yıl önce
ebeveyn
işleme
361bd19299

+ 13 - 11
src/views/finance/invoice/InvoiceFormTask.vue

@@ -1019,17 +1019,19 @@
         } else if (status === 'reapply') {
           this.inputForm.status = '2'
         }
-        if (this.commonJS.isEmpty(this.inputForm.financeInvoiceBaseDTOList)) {
-          this.loading = false
-          this.$message.error('至少新增一条基本信息')
-          throw new Error()
-        } else {
-          if (this.inputForm.financeInvoiceBaseDTOList.length === 0) {
-            this.loading = false
-            this.$message.error('至少新增一条基本信息')
-            throw new Error()
-          }
-        }
+        if(this.inputForm.billingType === 1){
+			if (this.commonJS.isEmpty(this.inputForm.financeInvoiceBaseDTOList)) {
+				this.loading = false
+				this.$message.error('至少新增一条基本信息')
+				throw new Error()
+			} else {
+				if (this.inputForm.financeInvoiceBaseDTOList.length === 0) {
+					this.loading = false
+					this.$message.error('至少新增一条基本信息')
+					throw new Error()
+				}
+			}
+		}
         if (this.commonJS.isNotEmpty(this.inputForm.financeInvoiceBaseDTOList)) {
           let i = this.inputForm.financeInvoiceBaseDTOList.length
           for (let j = 0; j < i; j++) {

+ 19 - 1
src/views/finance/invoice/InvoiceList.vue

@@ -78,6 +78,18 @@
             </el-option>
           </el-select>
         </el-form-item>
+
+        <el-form-item v-if="showHideItem" prop="billingType" label="开票类型">
+          <el-select v-model="searchForm.billingType" placeholder="请选择开票类型" clearable>
+            <el-option
+              v-for="item in this.$dictUtils.getDictList('invoice_billing_type')"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+
         <el-form-item v-if="showHideItem" prop="type" label="发票类型">
           <el-select v-model="searchForm.type" placeholder="请选择发票类型" clearable>
             <el-option
@@ -195,7 +207,8 @@
           <vxe-column type="checkbox" width="50" ></vxe-column>
           <vxe-column min-width="150" title="项目名称" align="center" field="programName">
             <template #default="scope">
-              <el-link  type="primary" :underline="false" @click="viewProject(scope.row.id)">{{scope.row.programName}}</el-link>
+              <el-link  type="primary" :underline="false" v-if="commonJS.isNotEmpty(scope.row.programName)" @click="viewProject(scope.row.id)">{{scope.row.programName}}</el-link>
+				<span v-else style="color: red">暂无项目</span>
             </template>
           </vxe-column>
           <vxe-column min-width="150" title="发票申请编号" align="center" field="no">
@@ -214,6 +227,11 @@
               {{$dictUtils.getDictLabel('invoice_billing_content', scope.row.billingContent, '-')}}
             </template>
           </vxe-column>
+			<vxe-column min-width="100" title="开票类型" align="center" field="billingType">
+				<template #default="scope">
+					{{$dictUtils.getDictLabel('invoice_billing_type', scope.row.billingType, '-')}}
+				</template>
+			</vxe-column>
           <vxe-column min-width="100" title="收款类型" align="center" field="receivablesType">
             <template #default="scope">
               {{$dictUtils.getDictLabel('invoice_receivables_type', scope.row.receivablesType, '-')}}

+ 1 - 1
src/views/flowable/task/HistoryList.vue

@@ -163,7 +163,7 @@
 // import FlowChart from '../modeler/FlowChart'
 import pick from "lodash.pick";
 import taskService from "@/api/flowable/taskService";
-import UserSelect2 from '@/components/userSelect2/UserSelectDialog';
+import UserSelect2 from '@/views/utils/UserTreeSelect';
 export default {
 	data() {
 		return {

+ 1 - 1
src/views/flowable/task/TodoList.vue

@@ -189,7 +189,7 @@
 import pick from "lodash.pick";
 import UserSelect from "@/components/userSelect/UserSelectDialog";
 import taskService from "@/api/flowable/taskService";
-import UserSelect2 from '@/components/userSelect2/UserSelectDialog';
+import UserSelect2 from '@/views/utils/UserTreeSelect';
 import TodoDia from "./TodoDia";
 export default {
 	data() {

+ 7 - 3
src/views/program/registered/ProjectAdditionalInformationForm.vue

@@ -144,7 +144,7 @@
 						</el-form-item>
 					</el-col>
 
-					<el-col :span="12">
+					<el-col :span="12" v-if="this.inputForm.reportType != 2">
 						<el-form-item label="签字评估师1" prop="signatureEvaluatorFirst"
 									  :rules=" [
                         {required: true, message:'签字评估师1不能为空', trigger:'blur'}
@@ -159,7 +159,7 @@
 					</el-col>
 
 
-					<el-col :span="12">
+					<el-col :span="12" v-if="this.inputForm.reportType != 2">
 						<el-form-item label="签字评估师2" prop="signatureEvaluatorSecond"
 									  :rules=" [
                         {required: true, message:'签字评估师2不能为空', trigger:'blur'}
@@ -379,7 +379,8 @@
 			isInvoice:'',	//是否开票
 			isContractArchive:'',	//合同是否存档
 			isPapersArchive:'',	//底稿是否存档
-			year:'',	//年份
+			year:'',	//年份,
+			reportType: ''
         }
       }
     },
@@ -435,6 +436,9 @@
             this.loading = true
             this.programProjectListInfoService.queryById(this.inputForm.id).then((data) => {
               this.inputForm = this.recover(this.inputForm, data)
+				if(data.reportType){
+					this.inputForm.reportType = data.reportType
+				}
               this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
 
 				if(data.year){

+ 10 - 5
src/views/program/registered/ProjectArchiveForm.vue

@@ -107,7 +107,7 @@
             </el-col>
 
 
-            <el-col :span="12">
+            <el-col :span="12"  v-if="this.inputForm.reportType != 2">
               <el-form-item label="签字评估师1" prop="signatureEvaluatorFirst"
                             :rules=" [
                         {required: true, message:'签字评估师1不能为空', trigger:'blur'}
@@ -117,7 +117,7 @@
             </el-col>
 
 
-            <el-col :span="12">
+            <el-col :span="12" v-if="this.inputForm.reportType != 2">
               <el-form-item label="签字评估师2" prop="signatureEvaluatorSecond"
                             :rules=" [
                         {required: true, message:'签字评估师2不能为空', trigger:'blur'}
@@ -564,7 +564,8 @@
           signatureEvaluatorFirst: '',
           signatureEvaluatorSecond: '',
           reportNo: '',
-          contractNo: ''
+          contractNo: '',
+		  reportType: ''
         },
         programId: '',
         supervisorList: [],
@@ -627,7 +628,6 @@
         this.keyWatch = keyWatch
       },
       init (method, id) {
-      	console.log('method', method)
         if (method === 'formReadOnly') {
 			method = 'view'
           this.formReadOnly = true
@@ -730,6 +730,11 @@
           this.loading = true
           this.programProjectListInfoService.findByIdArchive(this.inputForm.id).then((data) => {
             this.inputForm = this.recover(this.inputForm, data)
+			  if(data.programProjectListInfo){
+			  	if(data.programProjectListInfo.reportType){
+					this.inputForm.reportType = data.programProjectListInfo.reportType
+				}
+			  }
             this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
             if (this.commonJS.isEmpty(this.inputForm.year)) {
               if (this.commonJS.isNotEmpty(this.inputForm.reportNo)) {
@@ -765,7 +770,7 @@
             this.$refs.uploadComponentExplain.newUpload(method, this.inputForm.explainFileList, 'program', null, '评估说明')
             this.$refs.uploadComponentDetail.newUpload(method, this.inputForm.detailFileList, 'program', null, '开票文件')
             this.$refs.uploadComponentPapers.newUpload(method, this.inputForm.papersFileList, 'program', null, '评估操作计算底稿')
-            this.$refs.uploadComponentOther.newUpload(method, this.inputForm.otherFileList, 'program', null, '其他')
+            this.$refs.uploadComponentOther.newUpload(method, this.inputForm.otherFileList, 'program', 1024, '其他')
             this.loading = false
           })
         })

+ 142 - 0
src/views/utils/UserTreeSelect.vue

@@ -0,0 +1,142 @@
+<template>
+  <div>
+    <el-dialog
+      :title="title"
+      :close-on-click-modal="false"
+	  draggable
+      width="500px"
+      height="700px"
+      @close="close"
+      append-to-body
+	  v-model="visible">
+      <div style="height: calc(100% - 80px);">
+        <el-form :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>
+          </el-form-item>
+
+          <el-form-item>
+            <el-button type="primary" @click="list()" size="medium" icon="el-icon-search">查询</el-button>
+            <el-button @click="resetSearch()" size="medium" icon="el-icon-refresh-right">重置</el-button>
+          </el-form-item>
+        </el-form>
+        <vxe-table
+          border="inner"
+          auto-resize
+          resizable
+          height="400px"
+          :loading="loading"
+          size="small"
+          ref="userTable"
+          show-header-overflow
+          show-overflow
+          highlight-hover-row
+          :menu-config="{}"
+          :sort-config="{remote:true}"
+          :data="dataList"
+          :row-config="{isCurrent: true}"
+          :radio-config="{trigger: 'row'}"
+          :tree-config="{transform: true, rowField: 'id', parentField: 'parentId',expandAll: true}"
+          :checkbox-config="{}">
+<!--          <vxe-column type="seq" width="60" title="序号"></vxe-column>-->
+          <vxe-column type="radio" width="50" ></vxe-column>
+
+          <vxe-column title="姓名" min-width="180" field="name" align="left" tree-node></vxe-column>
+        </vxe-table>
+      </div>
+		<template #footer>
+			<span class="dialog-footer">
+			  <el-button @click="close()" size="medium" icon="el-icon-circle-close">关闭</el-button>
+			  <el-button type="primary" size="medium" v-if="method != 'view'" @click="getProgramForUser()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
+			</span>
+		</template>
+
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+  import ReimbursementService from '@/api/sys/ReimbursementService'
+  export default {
+    data () {
+      return {
+        title: '',
+        method: '',
+        visible: false,
+        loading: false,
+        dataList: [],
+        searchForm: {
+          name: ''
+        }
+      }
+    },
+    reimbursementService: null,
+    created () {
+      this.reimbursementService = new ReimbursementService()
+    },
+    components: {
+    },
+    methods: {
+      init () {
+        this.title = '人员选择'
+        this.visible = true
+        this.list()
+      },
+      // 表单提交
+      getProgramForUser () {
+        let rows = []
+        if (this.commonJS.isEmpty(this.$refs.userTable.getRadioRecord())) {
+          this.$message.error('请选择一条数据')
+          return
+        }
+        // if (this.$refs.userTable.getCheckboxRecords().length > 1) {
+        //   this.$message.error('最多选择一条数据')
+        //   return
+        // }
+        let row = this.$refs.userTable.getRadioRecord()
+        if (!row.isUser) {
+          this.$message.error('请选择子集数据')
+          return
+        }
+        this.close()
+        rows.push(row)
+        this.$emit('doSubmit', rows)
+      },
+      list () {
+        this.loading = true
+        this.reimbursementService.userTree(this.searchForm.name).then((data) => {
+          this.dataList = data
+          this.loading = false
+          this.$nextTick(() => {
+            this.$refs.userTable.setAllTreeExpand(true)
+          })
+        })
+      },
+      // 当前页
+      currentChangeHandle ({currentPage, pageSize}) {
+        this.tablePage.currentPage = currentPage
+        this.tablePage.pageSize = pageSize
+        this.list()
+      },
+      resetSearch () {
+        this.$refs.searchForm.resetFields()
+        this.list()
+      },
+      close () {
+        this.detail = ''
+        this.visible = false
+      }
+    }
+  }
+</script>
+<style>
+  .messageZindex {
+    z-index:9999 !important;
+  }
+</style>
+<style scoped>
+  /deep/ .el-dialog__body {
+    padding-top: 0px;
+  }
+</style>