Explorar o código

feat: 审批 - 发起审批流程列表 100%

luoyali hai 1 ano
pai
achega
d2f04af426

+ 12 - 2
src/api/flow/process.ts

@@ -8,7 +8,8 @@ const api = {
 	listCategory: '/v1/process/list-category', // 流程分类定义列表列表
 	clone: '/v1/process/clone', // 复制流程
 	updateProcessState: 'v1/process/update-state', // 更新流程状态
-	detailProcess: '/v1/process/get' // 流程详情
+	detailProcess: '/v1/process/get', // 流程详情
+	starProcessList: '/v1/process/list-start', // 发起审批流程列表
 }
 
 function progressCreateApi(data: any): AxiosPromise {
@@ -33,6 +34,14 @@ function progressListCategoryApi(data: any): AxiosPromise {
 	})
 }
 
+function starProcessListApi(data: any): AxiosPromise {
+	return request({
+		url: api.starProcessList,
+		method: 'post',
+		data
+	})
+}
+
 function progressCloneApi(data: any): AxiosPromise {
 	return request({
 		url: api.clone + '?id=' + data.id,
@@ -59,5 +68,6 @@ export default {
 	progressListCategoryApi,
 	progressCloneApi,
 	processUpdateStateApi,
-	processDetailApi
+	processDetailApi,
+	starProcessListApi
 }

+ 7 - 4
src/components/scWorkflow/nodes/approver.vue

@@ -130,7 +130,7 @@
 								<el-table-column align="center">
 									<template #header>操作权限</template>
 									<template #default="scope">
-										<el-radio-group v-model="scope.row.checked">
+										<el-radio-group v-model="scope.row.opera">
 											<el-radio label="1" size="small">可编辑</el-radio>
 											<el-radio label="2" size="small">隐藏</el-radio>
 										</el-radio-group>
@@ -205,9 +205,12 @@ export default {
 	methods: {
 		show() {
 			this.form = {}
-			const initOperateTable = JSON.parse(this.processForm)
-			// const initOperateTable = _initOperateTable.map(item => (item.checked = false))
-
+			const _initOperateTable = JSON.parse(this.processForm)
+			const initOperateTable = _initOperateTable.map(item => {
+				item.opera = '0'
+				return item
+			})
+			console.log(initOperateTable, '======')
 			this.form = JSON.parse(JSON.stringify(this.nodeConfig))
 			this.form.tableData = initOperateTable
 			this.drawer = true

+ 19 - 37
src/views/approve/start/index.vue

@@ -1,36 +1,30 @@
 <template>
 	<div class="pageWrap">
-		<div style="padding: 10px">
-			<el-card class="box-card">
-				<el-row :gutter="20">
-					<el-col :span="6"><el-input v-model="input" placeholder="请输入名称和拼音" /> </el-col>
-				</el-row>
-			</el-card>
-		</div>
 		<div style="padding: 10px">
 			<el-card class="box-card">
 				<el-collapse v-model="activeNames" @change="handleChange">
-					<el-collapse-item title="合同审批" name="1">
+					<el-collapse-item v-for="item in startList" :key="item.categoryId" :title="item.categoryName" :name="item.categoryName">
 						<el-row>
-							<el-col v-for="i in 30" :span="6" style="padding-left: 8px; padding-right: 8px; margin-bottom: 12px; cursor: pointer">
-								<div class="card-in">
+							<el-col
+								v-for="i_children in item.processList"
+								:span="6"
+								style="padding-left: 8px; padding-right: 8px; margin-bottom: 12px; cursor: pointer"
+							>
+								<div class="card-in" @click="testEv">
 									<div class="flow-icon">
-										<img
-											src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAABwBAMAAAA0zul4AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAeUExURf///zKW+ur0/nO4+6XR/YvE/Eqi+5DG/Nnr/sPg/brnfYAAAAFMSURBVFjD7dfPSsNAEAbwNTGtuXVM09pbqCAeFV8gwYNXtU+wioI3FcFrLorH+OeBncYuSnYl+wUKEueDNmHhR8rO7myqqGOUQIECBQoUaDK5dsQD3ihXNtth6YTqtQ0mbqcGbXD8C4z6BYPFUSP3ftCawOVU+8ANezH5QXuVzDwnJ5g38nfruP/SSOYHh9bkjNdcjrDrAghOHhvJe7ettlab6RaFA9fDkTpOURivbi963OX+H/x4qLrA4IzHzjvA57pzVDCMsU7+nT0eKfiTofCQKF2SAxAGPLBdf4GQz63LXB1rHsVgRDtfD05BGLKofQJDOuXLHQyHdQm5mOhPjQ2coXXUXIiM6zFCYUGj3aTUlKMwpIQPOd9j7ufS0abDotsqMu+wcAd40nRV+sCp1W0ysxbW9GpNlRsWrTB9mzvyLn/KBAoUKFCgyScZMYmWkzKSDQAAAABJRU5ErkJggg=="
-											alt=""
-										/>
+										<img :src="getAssetsFile(i_children.processIcon + '.svg')" />
 									</div>
 									<div class="space space-vertical">
 										<div class="space-item">
 											<div class="first-edit">
-												<strong>合同审批 {{ i }} (1.2)</strong>
+												<strong>{{ i_children.processName }}</strong>
 											</div>
 										</div>
 										<div class="space-item">
 											<div>2023-09-03 17:00:00</div>
 										</div>
 										<div class="space-item">
-											<div>钉钉</div>
+											<div>{{ i_children.processKey }}</div>
 										</div>
 									</div>
 								</div>
@@ -47,34 +41,22 @@
 import { ref, onMounted } from 'vue'
 const input = ref('')
 const activeNames = ref(['1'])
-import { ArrowDown } from '@element-plus/icons-vue'
-import process from '@/api/flow/definition'
 import model from '@/api/flow/process'
+import { getAssetsFile } from '@/utils/index'
+const startList = ref([])
 const handleChange = val => {
 	console.log(val)
 }
 
-// 停用
-const stopEv = async id => {
-	await process.progressDeleteApi({ id })
-	console.log('停用')
-}
-
-// 复制
-const copyEv = async id => {
-	await process.progressCloneApi({ id })
-	console.log('复制')
-}
-
-// 修改
-const updateEv = async () => {
-	console.log('修改')
-}
-
 // 列表
 const listEv = async () => {
-	const res = await model.progressListCategoryApi()
-	console.log(res, 'res====');
+	const res = await model.starProcessListApi()
+	startList.value = res || []
+	activeNames.value = res.length ? [res[0].categoryName] : ['']
+}
+
+const testEv = () => {
+	alert('等待开发')
 }
 onMounted(() => {
 	listEv()

+ 0 - 2
src/views/flow/create/components/FlowDesign.vue

@@ -65,10 +65,8 @@ const queryObj = computed(() => route.query)
 
 onMounted(() => {
 	if (queryObj.value.id) {
-		console.log(modelContent.value, '===');
 		const _val = JSON.parse(modelContent.value || '{}')
 		form.value = Object.assign(_val, {})
-		console.log(form.value);
 	}
 })