Преглед на файлове

业务类型页面调整

sangwenwei преди 1 година
родител
ревизия
89560c0aeb

+ 9 - 0
src/api/cw/projectBusinessType/CwProjectBusinessTypeService.js

@@ -37,4 +37,13 @@ export default class CwProjectBusinessTypeService {
       params: {ids: ids}
     })
   }
+
+  findListByIsShow(params){
+	  return request({
+		  url: prefix +  '/projectRecords/cw_project_business_type/findList',
+		  method: 'get',
+		  params: params
+	  })
+  }
+
 }

+ 17 - 2
src/views/cw/invoice/InvoiceFormTask.vue

@@ -287,9 +287,24 @@
             </el-input>
           </el-form-item>
         </el-col >
-		  <el-col :span="12" v-if="this.inputForm.programId==null || this.inputForm.programId == ''?!isShow:isShow">
+		  <el-col :span="12" v-if="(this.inputForm.programId==null || this.inputForm.programId == ''?!isShow:isShow) && status === 'audit'">
 			  <el-form-item label="报备类型" prop="reportType"
-							:rules="[]">
+							:rules="[]"
+			  >
+				  <el-select v-model="inputForm.reportType" placeholder="请选择报备类型" clearable style="width: 100%;">
+					  <el-option
+						  v-for="item in $dictUtils.getDictList('cw_work_client_report_type')"
+						  :key="item.value"
+						  :label="item.label"
+						  :value="item.value">
+					  </el-option>
+				  </el-select>
+			  </el-form-item>
+		  </el-col>
+		  <el-col :span="12" v-if="(this.inputForm.programId==null || this.inputForm.programId == ''?!isShow:isShow) && status !== 'audit'">
+			  <el-form-item label="报备类型" prop="reportType"
+							:rules="[{required: true, message:'报备类型不能为空', trigger:'blur'}]"
+			  >
 				  <el-select v-model="inputForm.reportType" placeholder="请选择报备类型" clearable style="width: 100%;">
 					  <el-option
 						  v-for="item in $dictUtils.getDictList('cw_work_client_report_type')"

+ 113 - 4
src/views/cw/projectRecords/ProjectRecordsAddForm.vue

@@ -393,6 +393,61 @@
     <ContractNameForm ref="contractNameForm"></ContractNameForm>
     <CwClientPageForm ref="cwClientPageForm" @getProgram="getProgram"></CwClientPageForm>
   </div>
+<!--	业务类型弹窗-->
+	<el-dialog
+		:title="title"
+		:close-on-click-modal="false"
+		draggable
+		width="850px"
+		height="500px"
+		append-to-body
+		@close="close"
+		@keyup.enter.native="getBusinessType"
+		v-model="typeVisible">
+		<div style="height: calc(100% - 50px);">
+			<el-form size="large" :inline="true" class="query-form" ref="searchForm" :model="typeSearchForm"  @submit.native.prevent>
+				<el-form-item label="业务类型" prop="name">
+					<el-input size="large" v-model="typeSearchForm.name" placeholder="请输入业务类型" clearable></el-input>
+				</el-form-item>
+
+				<el-form-item>
+					<el-button type="primary" @click="businessTypeList()" size="large" icon="el-icon-search">查询</el-button>
+					<el-button @click="resetSearch()" size="large" icon="el-icon-refresh-right">重置</el-button>
+				</el-form-item>
+			</el-form>
+
+			<vxe-table
+				border="inner"
+				auto-resize
+				resizable
+				height="450px"
+				:loading="loading"
+				size="small"
+				ref="businessTypeTable"
+				show-header-overflow
+				show-overflow
+				highlight-hover-row
+				:row-config="{isCurrent: true}"
+				:radio-config="{trigger: 'row'}"
+				:menu-config="{}"
+				:sort-config="{remote:true}"
+				:data="typeDataList"
+				:tree-config="{transform: true, rowField: 'id', parentField: 'parentId'}"
+				:checkbox-config="{}">
+				<vxe-column type="radio" width="40" ></vxe-column>
+				<vxe-column min-width="350" title="业务类型" field="name" align="left" tree-node></vxe-column>
+				<!--          <vxe-column min-width="50" align="center" title="序号" field="sort"></vxe-column>-->
+				<!--          <vxe-column min-width="50" align="center" title="级别" field="level"></vxe-column>-->
+				<!--          <vxe-column min-width="50" align="center" title="备注" field="remarks"></vxe-column>-->
+			</vxe-table>
+		</div>
+		<span slot="footer" class="dialog-footer" style="float: right">
+      <el-button size="large" @click="typeVisible=false" icon="el-icon-circle-close">关闭</el-button>
+      <el-button size="large" type="primary" v-if="method != 'view'" @click="getBusinessType()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
+    </span>
+	</el-dialog>
+
+
 </template>
 
 <script>
@@ -408,6 +463,7 @@
   import workClientService from '@/api/cw/workClientInfo/WorkClientService'
   import contractInfoService from '@/api/cw/workContract/ContractInfoService'
   import UserSelectSignatory from '../workClientInfo/clientUserSelect'
+  import CwProjectBusinessTypeService from '@/api/cw/projectBusinessType/CwProjectBusinessTypeService'
   export default {
     props: {
       businessId: {
@@ -425,6 +481,7 @@
     },
     data () {
       return {
+	    typeVisible:false,
         title: '',
         method: '',
         loading: false,
@@ -488,10 +545,22 @@
           contactFirst: [
             {required: true, message: '联系方式1不可以为空'}
           ]
-        }
+        },
+		  typeDataList:[],
+		  typeSearchForm:{
+			  name:''
+		  },
+		  tablePage: {
+			  total: 0,
+			  currentPage: 1,
+			  pageSize: 10,
+			  orders: []
+		  },
       }
     },
+	  cwProjectBusinessTypeService: null,
     created () {
+		this.cwProjectBusinessTypeService = new CwProjectBusinessTypeService()
     },
     computed: {
       bus: {
@@ -526,7 +595,8 @@
       WorkContractChooseCom,
       CwProjectBusinessTypeListForm,
       ContractNameForm,
-      UserSelectSignatory
+      UserSelectSignatory,
+	  CwProjectBusinessTypeService
     },
     methods: {
       getKeyWatch (keyWatch) {
@@ -929,7 +999,9 @@
       },
       // 打开业务类型选择组件
       openBusinessTypeForm () {
-        this.$refs.cwProjectBusinessTypeListForm.init()
+      	this.typeVisible=true
+		  this.businessTypeList()
+        // this.$refs.cwProjectBusinessTypeListForm.init()
       },
       // 查看合同详情
       viewContract (id) {
@@ -1008,7 +1080,44 @@
             throw new Error('客户联系人中,第' + (index + 1) + '条数据的“联系方式1”未填写')
           }
         })
-      }
+      },
+	  businessTypeList(){
+		  this.cwProjectBusinessTypeService.findListByIsShow({
+			  'current': this.tablePage.currentPage,
+			  'size': this.tablePage.pageSize,
+			  'orders': this.tablePage.orders,
+			  ...this.typeSearchForm
+		  }).then((data) => {
+				this.dataList = data.records
+				this.tablePage.total = data.total
+				this.loading = false
+			})
+	  },
+		getBusinessType () {
+			let row = this.$refs.businessTypeTable.getRadioRecord()
+			if (this.commonJS.isEmpty(row)) {
+				this.$message.error('请至少选择一条数据')
+			} else {
+				let _this = this
+				const waitForEach = function () {
+					return new Promise(function (resolve, reject) {
+						_this.dataList.forEach((item) => {
+							if (item.parentId === row.id) {
+								_this.$message.error('只可以选择最小节点的数据')
+								throw new Error('只可以选择最小节点的数据')
+							}
+						})
+						resolve()
+					})
+				}
+				waitForEach().then(() => {
+					this.close()
+					this.$emit('getBusinessType', row)
+				}).catch((reject) => {
+					console.log('waitForEach.catch', reject)
+				})
+			}
+		},
     }
   }
 </script>