Browse Source

项目登记-业务类型

sangwenwei 1 year ago
parent
commit
963454324f
1 changed files with 142 additions and 7 deletions
  1. 142 7
      src/views/cw/projectRecords/ProjectRecordsAddForm.vue

+ 142 - 7
src/views/cw/projectRecords/ProjectRecordsAddForm.vue

@@ -389,10 +389,63 @@
     </el-dialog>
     <WorkContractChooseCom ref="workContractChooseCom" @getContract="getContract"></WorkContractChooseCom>
     <WorkClientChooseForm ref="workClientChooseForm" @getWorkClientChoose="getWorkClientChoose"></WorkClientChooseForm>
-    <CwProjectBusinessTypeListForm ref="cwProjectBusinessTypeListForm" @getBusinessType="getBusinessType"></CwProjectBusinessTypeListForm>
+<!--    <CwProjectBusinessTypeListForm ref="cwProjectBusinessTypeListForm" @getBusinessType="getBusinessType"></CwProjectBusinessTypeListForm>-->
     <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="this.typeVisible=false" icon="el-icon-circle-close">关闭</el-button>
+      <el-button size="large" type="primary" v-if="method != 'view'" @click="getBusinessType1()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
+    </span>
+	</el-dialog>
 
 
 </template>
@@ -428,6 +481,7 @@
     },
     data () {
       return {
+	    typeVisible:false,
         title: '',
         method: '',
         loading: false,
@@ -491,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: {
@@ -927,15 +993,42 @@
       openContract () {
         this.$refs.workContractChooseCom.init()
       },
-      getBusinessType (row) {
-        this.inputForm.businessType = row.id
-        this.inputForm.businessTypeName = row.name
+      getBusinessType1 () {
+      	// console.log(row)
+        // this.inputForm.businessType = row.id
+        // this.inputForm.businessTypeName = row.name
+		  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.typeDataList.forEach((item) => {
+						  if (item.parentId === row.id) {
+							  _this.$message.error('只可以选择最小节点的数据')
+							  throw new Error('只可以选择最小节点的数据')
+						  }
+					  })
+					  resolve()
+				  })
+			  }
+			  waitForEach().then(() => {
+				  this.close()
+				  this.$emit('getBusinessType', row)
+				  this.inputForm.businessType = row.id
+				  this.inputForm.businessTypeName = row.name
+				  console.log(row)
+			  }).catch((reject) => {
+				  console.log('waitForEach.catch', reject)
+			  })
+		  }
       },
       // 打开业务类型选择组件
       openBusinessTypeForm () {
       	this.typeVisible=true
-		  // this.businessTypeList()
-        this.$refs.cwProjectBusinessTypeListForm.init()
+		  this.businessTypeList()
+        // this.$refs.cwProjectBusinessTypeListForm.init()
       },
       // 查看合同详情
       viewContract (id) {
@@ -1015,6 +1108,48 @@
           }
         })
       },
+	  businessTypeList(){
+		  this.cwProjectBusinessTypeService.findListByIsShow({
+			  'current': this.tablePage.currentPage,
+			  'size': this.tablePage.pageSize,
+			  'orders': this.tablePage.orders,
+			  ...this.typeSearchForm
+		  }).then((data) => {
+		  		console.log(data)
+				this.typeDataList = 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)
+				})
+			}
+		},
+		close () {
+			this.$refs.searchForm.resetFields()
+			this.typeVisible = false
+		}
     }
   }
 </script>