Przeglądaj źródła

流程办理拆分,首页修改,组件修改

asd26269546 1 rok temu
rodzic
commit
4feb6a770a

+ 5 - 10
src/components/byTable/index.vue

@@ -99,11 +99,7 @@
             <li
               @click="searchItemSelct('all', i, index)"
               v-if="i.isShowAll === false ? i.isShowAll : true"
-              style="
-                display: flex;
-                align-items: center;
-                justify-content: center;
-              "
+              style=""
             >
               {{ $t("common.all") }}
             </li>
@@ -111,11 +107,7 @@
               v-for="j in i.data"
               :key="j.value"
               @click="searchItemSelct(j, i)"
-              style="
-                display: flex;
-                align-items: center;
-                justify-content: center;
-              "
+              style=""
             >
               {{ j.label }}
             </li>
@@ -754,11 +746,14 @@ export default defineComponent({
     z-index: 100;
     display: none;
     white-space: nowrap;
+    min-width: 80px;
     li {
       list-style: none;
       font-size: 12px;
       height: 30px;
       padding: 0 10px;
+      text-align: left;
+      line-height: 30px;
     }
     li:hover {
       background-color: #eff6ff;

+ 20 - 12
src/components/process/Contract.vue

@@ -14,12 +14,14 @@
                 <el-input v-model="formData.data.sellCountryName" placeholder="请输入国家" />
               </el-form-item>
             </el-col>
-            <el-col :span="8">
+            <el-col :span="1"></el-col>
+            <el-col :span="7">
               <el-form-item label=" " prop="sellProvinceName">
                 <el-input v-model="formData.data.sellProvinceName" placeholder="请输入省/州" />
               </el-form-item>
             </el-col>
-            <el-col :span="8">
+            <el-col :span="1"></el-col>
+            <el-col :span="7">
               <el-form-item label=" " prop="sellCityName">
                 <el-input v-model="formData.data.sellCityName" placeholder="请输入城市" />
               </el-form-item>
@@ -38,7 +40,8 @@
                 <el-input v-model="formData.data.sellContactName" placeholder="请输入联系人" />
               </el-form-item>
             </el-col>
-            <el-col :span="16">
+            <el-col :span="1"></el-col>
+            <el-col :span="15">
               <el-form-item label=" " prop="sellContactNumber">
                 <el-input v-model="formData.data.sellContactNumber" placeholder="请输入联系人电话" />
               </el-form-item>
@@ -63,7 +66,8 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-              <el-col :span="6">
+              <el-col :span="1"></el-col>
+              <el-col :span="5">
                 <el-form-item label=" " prop="provinceName">
                   <selectCity
                     placeholder="省/洲"
@@ -75,12 +79,14 @@
                   </selectCity>
                 </el-form-item>
               </el-col>
-              <el-col :span="6">
+              <el-col :span="1"></el-col>
+              <el-col :span="5">
                 <el-form-item label=" " prop="cityName">
                   <selectCity placeholder="城市" addressId="cityId" addressName="cityName" v-model="formData.data" :data="cityData"> </selectCity>
                 </el-form-item>
               </el-col>
-              <el-col :span="6">
+              <el-col :span="1"></el-col>
+              <el-col :span="5">
                 <el-form-item label=" " prop="buyPostalCode">
                   <el-input v-model="formData.data.buyPostalCode" placeholder="请输入邮编" />
                 </el-form-item>
@@ -106,7 +112,8 @@
                   </el-autocomplete>
                 </el-form-item>
               </el-col>
-              <el-col :span="16">
+              <el-col :span="1"></el-col>
+              <el-col :span="15">
                 <el-form-item label=" " prop="buyContactNumber">
                   <el-input v-model="formData.data.buyContactNumber" placeholder="请输入联系人电话" />
                 </el-form-item>
@@ -258,13 +265,14 @@
                 </el-select>
               </el-form-item>
             </el-col>
-            <el-col :span="6">
+            <el-col :span="1"></el-col>
+            <el-col :span="5">
               <el-form-item label="合同总金额" prop="amount">
                 <el-input v-model="formData.data.amount" placeholder="合同总金额" disabled />
               </el-form-item>
             </el-col>
           </el-row>
-          <el-row style="margin-top: 20px; width: 100%">
+          <el-row style="margin-top: 20px; width: 100%" :gutter="20">
             <el-col :span="7">
               <el-form-item label="付款方式" prop="paymentMethod">
                 <el-select v-model="formData.data.paymentMethod" placeholder="请选择付款方式" style="width: 100%">
@@ -348,7 +356,7 @@
               </el-form-item>
             </el-col>
           </el-row>
-          <el-row style="margin-top: 20px; width: 100%">
+          <el-row style="margin-top: 20px; width: 100%" :gutter="20">
             <el-col :span="7">
               <el-form-item label="运输方式" prop="transportMethod">
                 <el-select v-model="formData.data.transportMethod" placeholder="请选择运输方式" style="width: 100%">
@@ -362,14 +370,14 @@
               </el-form-item>
             </el-col>
           </el-row>
-          <el-row style="margin-top: 20px; width: 100%">
+          <el-row style="margin-top: 20px; width: 100%" :gutter="20">
             <el-col :span="14">
               <el-form-item label="付款条件" prop="remark">
                 <el-input v-model="formData.data.remark" :rows="2" type="textarea" placeholder="请输入付款条件" />
               </el-form-item>
             </el-col>
           </el-row>
-          <el-row style="margin-top: 20px; width: 100%">
+          <el-row style="margin-top: 20px; width: 100%" :gutter="20">
             <el-col :span="7">
               <el-form-item label="交货期限 (天)" prop="deliveryTime">
                 <el-input-number

+ 1 - 0
src/views/customer/portrait/com/CustomerInfo.vue

@@ -1,5 +1,6 @@
 <template>
   <div class="content" v-loading="loading">
+    <div>11</div>
     <div class="line">
       <span class="title_" v-if="detailsData.customerCode">客户代码:<span style="color:#000">{{ detailsData.customerCode }}</span></span>
       <span class="title_" v-if="detailsData.customerCode && detailsData.status" style="margin: 0 6px">|</span>

+ 2 - 2
src/views/index.vue

@@ -3,7 +3,7 @@
 		
 		<div class="stat-warp">
 			<ul>
-				<li class="theme1" @click="toUrl('DealWith',1)">
+				<li class="theme1" @click="toUrl('Backlog',1)">
 					<div class="num">{{toBeProcessedData.total}}</div>
 					<div class="label">我的待审批</div>
 					<div class="icon-box">
@@ -181,7 +181,7 @@ const toUrl = (name,type) => {
 	proxy.$router.push(route.path + '?type=' + type)
 }
 getData()
-// ​
+
 onMounted(() => {})
 </script>
 <style>

+ 346 - 0
src/views/process/dealWith/backlog.vue

@@ -0,0 +1,346 @@
+
+<!-- 2无缓存,只展示代办数据 -->
+<template>
+	<div class="tenant">
+		<!-- <Banner /> -->
+		<div class="content">
+			<byTable
+				:source="sourceList.data"
+				:pagination="sourceList.pagination"
+				:config="config"
+				:loading="loading"
+				highlight-current-row
+				:selectConfig="selectConfig"
+				:table-events="{
+					//element talbe事件都能传
+					select: select,
+				}"
+				@get-list="getList"
+			>
+				<template #slotName="{ item }">
+					{{ item.createTime }}
+				</template>
+			</byTable>
+		</div>
+		<el-dialog
+			:title="modalType == 'add' ? '新增' : '编辑'"
+			v-model="dialogVisible"
+			width="400"
+			v-loading="loading"
+		>
+			<byForm
+				:formConfig="formConfig"
+				:formOption="formOption"
+				v-model="formData.data"
+				:rules="rules"
+				ref="byform"
+			>
+			</byForm>
+			<template #footer>
+				<el-button @click="dialogVisible = false" size="large"
+					>取 消</el-button
+				>
+				<el-button
+					type="primary"
+					@click="submitForm('byform')"
+					size="large"
+					:loading="submitLoading"
+				>
+					确 定
+				</el-button>
+			</template>
+		</el-dialog>
+	</div>
+</template>
+    
+  <script setup >
+/* eslint-disable vue/no-unused-components */
+import { ElMessage, ElMessageBox } from 'element-plus'
+import byTable from '@/components/byTable/index'
+import byForm from '@/components/byForm/index'
+import { computed, defineComponent, ref } from 'vue'
+const loading = ref(false)
+const submitLoading = ref(false)
+const dictCommonModal = ref(false)
+const sourceList = ref({
+	data: [],
+	pagination: {
+		total: 3,
+		pageNum: 1,
+		pageSize: 10,
+        status:1,
+	},
+})
+let dialogVisible = ref(false)
+let roomDialogVisible = ref(false)
+let modalType = ref('add')
+let rules = ref({
+	classifyName: [
+		{ required: true, message: '请输入功能模块', trigger: 'blur' },
+	],
+	flowKey: [{ required: true, message: '请输入流程标识', trigger: 'blur' }],
+	flowName: [{ required: true, message: '请输入流程名称', trigger: 'blur' }],
+})
+const { proxy } = getCurrentInstance()
+const selectConfig = computed(() => {
+	return [
+        {
+			label: '流程类型',
+			prop: 'flowInfoId',
+			data: [],
+		},
+		
+	]
+})
+const config = computed(() => {
+	return [
+		{
+			attrs: {
+				label: '流程类型',
+				prop: 'flowName',
+			},
+		},
+		{
+			attrs: {
+				label: '流程标题',
+				prop: 'title',
+			},
+		},
+
+		{
+			attrs: {
+				label: '流程状态',
+				width: 100,
+				prop: 'status',
+			},
+			render(status) {
+				return status == 0 || status == 1 ? '待处理' : status == 2 ? '已通过' : '已驳回'
+			},
+		},
+		{
+			attrs: {
+				label: '发起人',
+				prop: 'createUserName',
+			},
+		},
+		{
+			attrs: {
+				label: '发起时间',
+				prop: 'createTime',
+			},
+		},
+		{
+			attrs: {
+				label: '操作',
+				width: '200',
+				align: 'right',
+			},
+			// 渲染 el-button,一般用在最后一列。
+			renderHTML(row) {
+				return [
+					{
+                        attrs: {
+                            label: row.status == 0 || row.status == 1 ? '办理' : '查看',
+                            type: 'primary',
+                            text: true,
+                            bg: true,
+                            disabled: false,
+                        },
+                        el: 'button',
+                        click() {
+							if(row.status != 1 && row.status != 0) {
+								proxy.$router.push({
+									path: "/platform_manage/process/processApproval",
+									query: {
+										flowKey: row.flowKey,
+										id: row.id,
+										processType:20,
+										version:row.version
+									},
+								});
+								return
+							}
+							proxy.post('flowExample/getApprovalRecord',{id:row.id}).then(res=>{
+								if(res.recordList.length > 0) {
+									let data = res.recordList.filter(item => item.status === 2)
+									let nodeType= 0
+									if (data && data.length > 0) {
+										nodeType = data[0].nodeType
+									}
+									proxy.$router.push({
+										path: "/platform_manage/process/processApproval",
+										query: {
+											flowKey: row.flowKey,
+											id: row.id,
+											processType:nodeType == 1 ? 30 : 10,
+											version:row.version
+										},
+									});
+								}
+							})
+                        },
+                    } 
+						
+				]
+			},
+		},
+	]
+})
+let dtlData = reactive({
+	data: {},
+})
+let formData = reactive({
+	data: {},
+	treeData: [],
+})
+const formOption = reactive({
+	inline: true,
+	labelWidth: 100,
+	itemWidth: 100,
+	rules: [],
+})
+const byform = ref(null)
+const treeData = ref([])
+const formConfig = computed(() => {
+	return [
+		{
+			type: 'input',
+			prop: 'classifyName',
+			label: '功能模块',
+		},
+		{
+			type: 'input',
+			prop: 'flowKey',
+			label: '流程标识',
+			isHide: modalType.value == 'edit',
+		},
+		{
+			type: 'input',
+			prop: 'flowName',
+			label: '流程名称',
+		},
+	]
+})
+
+const flowJump = (row,type) => {
+    proxy.post('/flowProcess/jump', {flowId:row.id,handleType:type,version:row.version,data:{}}).then((message) => {
+        console.log(message)
+        if(message){
+            ElMessage.success('操作成功')
+            getList()
+        }
+    })
+}
+
+const getFlowType = () => {
+    proxy
+        .post('/flowExample/getFlowType')
+            .then((message) => {
+                console.log(message)
+                selectConfig.value[0].data = message.map((item) => {
+                    return {
+                        label: item.flowName,
+                        value: item.id,
+                    }
+                })
+            })
+        
+}
+getFlowType()
+const getUrlObj = {
+    1:'/flowExample/getToBeProcessedPage',
+    2:'/flowExample/getHaveInitiatedPage',
+    3:'/flowExample/getProcessedPage',
+}
+const getList = async (req) => {
+	sourceList.value.pagination = { ...sourceList.value.pagination, ...req }
+	loading.value = true
+	proxy
+		.post( getUrlObj[sourceList.value.pagination.status], sourceList.value.pagination)
+		.then((message) => {
+			console.log(message)
+			sourceList.value.data = message.rows
+			sourceList.value.pagination.total = message.total
+			setTimeout(() => {
+				loading.value = false
+			}, 200)
+		})
+}
+
+const openModal = () => {
+	dialogVisible.value = true
+	modalType.value = 'add'
+	formData.data = {}
+}
+const selection = ref({
+	data: [],
+})
+const select = (_selection, row) => {
+	selection.value.data = _selection
+	console.log(_selection.length)
+}
+
+const tree = ref(null)
+const submitTree = () => {
+	proxy
+		.post('/tenantInfo/bindingMenu', {
+			tenantId: selection.value.data[0].tenantId,
+			menuIdList: tree.value.getCheckedKeys(),
+		})
+		.then((res) => {
+			ElMessage({
+				message: '保存成功',
+				type: 'success',
+			})
+			roomDialogVisible.value = false
+		})
+}
+
+const submitForm = () => {
+	byform.value.handleSubmit((valid) => {
+		submitLoading.value = true
+		proxy
+			.post('/flowInfo/' + modalType.value, formData.data)
+			.then((res) => {
+				ElMessage({
+					message: modalType.value == 'add' ? '添加成功' : '编辑成功',
+					type: 'success',
+				})
+				dialogVisible.value = false
+				submitLoading.value = false
+				getList()
+			})
+	})
+}
+
+const getDtl = (row) => {
+	formData.data = { ...row }
+	modalType.value = 'edit'
+	dialogVisible.value = true
+}
+
+const changeStatus = (row) => {
+	modalType.value = 'edit'
+	proxy
+		.post('/flowInfo/edit', { ...row, status: row.status === 0 ? 1 : 0 })
+		.then((res) => {
+			ElMessage({
+				message: '操作成功',
+				type: 'success',
+			})
+			getList()
+		})
+}
+onMounted(() => {
+	const route = useRoute();
+	sourceList.value.pagination.status = route.query.type ? route.query.type : 1
+	getList()
+})
+
+</script>
+    
+  <style lang="scss" scoped>
+.tenant {
+	padding: 20px;
+}
+</style>

+ 4 - 7
src/views/process/dealWith/index.vue

@@ -51,7 +51,7 @@
 	</div>
 </template>
     
-  <script setup >
+  <script setup name="DealWith">
 /* eslint-disable vue/no-unused-components */
 import { ElMessage, ElMessageBox } from 'element-plus'
 import byTable from '@/components/byTable/index'
@@ -66,7 +66,7 @@ const sourceList = ref({
 		total: 3,
 		pageNum: 1,
 		pageSize: 10,
-        status:1,
+        status:2,
 	},
 })
 let dialogVisible = ref(false)
@@ -91,10 +91,7 @@ const selectConfig = computed(() => {
 			label: '流程状态',
 			prop: 'status',
 			data: [
-				{
-					label: '待处理',
-					value: '1',
-				},
+				
 				{
 					label: '已发起',
 					value: '2',
@@ -271,7 +268,7 @@ const getList = async (req) => {
 	sourceList.value.pagination = { ...sourceList.value.pagination, ...req }
 	loading.value = true
 	proxy
-		.post( getUrlObj[sourceList.value.pagination.status], sourceList.value.pagination)
+		.post( getUrlObj[sourceList.value.pagination.status] || '/flowExample/getHaveInitiatedPage', sourceList.value.pagination)
 		.then((message) => {
 			console.log(message)
 			sourceList.value.data = message.rows