whx пре 2 месеци
родитељ
комит
7d54662f65
27 измењених фајлова са 513 додато и 20 уклоњено
  1. 1 1
      virgo.wzfrontend/src/main/resources/static/workark/index.html
  2. 1 0
      virgo.wzfrontend/src/main/resources/static/workark/static/css/9991.d2a6d4bb.css
  3. 1 1
      virgo.wzfrontend/src/main/resources/static/workark/static/js/1244.e7a80f56.js
  4. 1 0
      virgo.wzfrontend/src/main/resources/static/workark/static/js/1522.5eb13d8e.js
  5. 0 1
      virgo.wzfrontend/src/main/resources/static/workark/static/js/1522.fab46feb.js
  6. 0 0
      virgo.wzfrontend/src/main/resources/static/workark/static/js/2657.44b7a15e.js
  7. 1 0
      virgo.wzfrontend/src/main/resources/static/workark/static/js/3108.6f157d24.js
  8. 1 0
      virgo.wzfrontend/src/main/resources/static/workark/static/js/4844.16d86f1a.js
  9. 1 0
      virgo.wzfrontend/src/main/resources/static/workark/static/js/5211.8bb912b8.js
  10. 0 1
      virgo.wzfrontend/src/main/resources/static/workark/static/js/5211.f3b594e5.js
  11. 1 0
      virgo.wzfrontend/src/main/resources/static/workark/static/js/6115.2dccad3d.js
  12. 0 1
      virgo.wzfrontend/src/main/resources/static/workark/static/js/6115.e550674c.js
  13. 1 0
      virgo.wzfrontend/src/main/resources/static/workark/static/js/6625.5502d876.js
  14. 1 0
      virgo.wzfrontend/src/main/resources/static/workark/static/js/8407.b5e983f9.js
  15. 0 1
      virgo.wzfrontend/src/main/resources/static/workark/static/js/8407.da9e31e9.js
  16. 0 1
      virgo.wzfrontend/src/main/resources/static/workark/static/js/8533.09613080.js
  17. 1 0
      virgo.wzfrontend/src/main/resources/static/workark/static/js/9991.b4a6459a.js
  18. 1 0
      virgo.wzfrontend/src/main/resources/static/workark/static/js/app.1c24b53f.js
  19. 0 1
      virgo.wzfrontend/src/main/resources/static/workark/static/js/app.3b79c30c.js
  20. 58 1
      virgo.wzfrontend/workark/src/api/system.js
  21. 2 0
      virgo.wzfrontend/workark/src/assets/css/common.scss
  22. 100 0
      virgo.wzfrontend/workark/src/components/work/system/serveSet/processForm.vue
  23. 251 0
      virgo.wzfrontend/workark/src/components/work/system/serveSet/processSet.vue
  24. 57 0
      virgo.wzfrontend/workark/src/components/work/system/serveSet/processSetItem.vue
  25. 1 0
      virgo.wzfrontend/workark/src/store/getters.js
  26. 10 1
      virgo.wzfrontend/workark/src/store/modules/app.js
  27. 22 10
      virgo.wzfrontend/workark/src/views/work/system/serveSet.vue

Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/workark/index.html


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/workark/static/css/9991.d2a6d4bb.css


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/workark/static/js/1244.e7a80f56.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/workark/static/js/1522.5eb13d8e.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/workark/static/js/1522.fab46feb.js


virgo.wzfrontend/src/main/resources/static/workark/static/js/2657.6103618b.js → virgo.wzfrontend/src/main/resources/static/workark/static/js/2657.44b7a15e.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/workark/static/js/3108.6f157d24.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/workark/static/js/4844.16d86f1a.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/workark/static/js/5211.8bb912b8.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/workark/static/js/5211.f3b594e5.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/workark/static/js/6115.2dccad3d.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/workark/static/js/6115.e550674c.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/workark/static/js/6625.5502d876.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/workark/static/js/8407.b5e983f9.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/workark/static/js/8407.da9e31e9.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/workark/static/js/8533.09613080.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/workark/static/js/9991.b4a6459a.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/workark/static/js/app.1c24b53f.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/workark/static/js/app.3b79c30c.js


+ 58 - 1
virgo.wzfrontend/workark/src/api/system.js

@@ -108,7 +108,7 @@ export function getServeDepartmentBySign(sign) {
 		url: `/api/workarkProductLevel/getSign/${sign}`,
 		method: 'get'
 	})
-}
+}
 /* 
  * 删除资产目录
  * 
@@ -119,4 +119,61 @@ export function getServeProductList(id) {
 		url: `/api/workarkProductLevel/getParentId/${id}`,
 		method: 'get'
 	})
+}
+/* 
+ * 获取过程设置模板数据
+ * 
+ * 
+ */
+export function getProcessSetData(productCouponModelId) {
+	return request({
+		url: `/api/workarkProceModel/list/${productCouponModelId}`,
+		method: 'get'
+	})
+}
+/* 
+ * 新增过程设置模板数据
+ * 
+ * 
+ */
+export function insertProcessSetData(data) {
+	return request({
+		url: `/api/workarkProceModel`,
+		method: 'post',
+		data: data
+	})
+}
+/* 
+ * 通过ID获取过程设置模板数据详情
+ * 
+ * 
+ */
+export function getProcessSetDataById(id) {
+	return request({
+		url: `/api/workarkProceModel/get/${id}`,
+		method: 'get'
+	})
+}
+/* 
+ * 编辑过程设置模板数据
+ * 
+ * 
+ */
+export function updateProcessSetData(data) {
+	return request({
+		url: `/api/workarkProceModel`,
+		method: 'put',
+		data: data
+	})
+}
+/* 
+ * 删除过程设置数据
+ * 
+ * 
+ */
+export function deleteProcessSetData(id) {
+	return request({
+		url: `/api/workarkProceModel/${id}`,
+		method: 'delete'
+	})
 }

+ 2 - 0
virgo.wzfrontend/workark/src/assets/css/common.scss

@@ -276,9 +276,11 @@
 .color-red {
 	color: $--color-danger;
 }
+
 .color-blue{
 	color: $--color-primary;
 }
+
 .yui-tree-box {
 	display: flex;
 	width: 100%;

+ 100 - 0
virgo.wzfrontend/workark/src/components/work/system/serveSet/processForm.vue

@@ -0,0 +1,100 @@
+<template>
+	<div class="hui-flex hui-dialog">
+		<div class="hui-flex-box hui-dialog-content">
+			<el-form :model="departmentForm" label-position="top">
+				<el-form-item label="过程名称">
+					<el-input type="text" v-model="departmentForm.name" placeholder="请输入过程名称"></el-input>
+				</el-form-item>
+				<el-form-item label="过程排序(数字由小到大排序)">
+					<el-input type="text" v-model="departmentForm.sequence" placeholder="请输入过程排序"></el-input>
+				</el-form-item>
+				<el-form-item label="是否可添加附件">
+					<el-radio-group v-model="departmentForm.attachment">
+						<el-radio :label="0">不可添加附件</el-radio>
+						<el-radio :label="1">可添加附件</el-radio>
+					</el-radio-group>
+				</el-form-item>
+				<el-form-item label="可添加附件个数" v-if="departmentForm.attachment === 1">
+					<el-input type="text" v-model="departmentForm.attachmentNumber" placeholder="请输入可添加附件个数"></el-input>
+				</el-form-item>
+				<el-form-item label="可添加附件角色" v-if="departmentForm.attachment === 1">
+					<el-radio-group v-model="departmentForm.roleId">
+						<el-radio :label="1">客户</el-radio>
+						<el-radio :label="2">服务商</el-radio>
+					</el-radio-group>
+				</el-form-item>
+				<el-form-item label="过程备注" class="hui-textarea">
+					<el-input type="textarea" v-model="departmentForm.remark" placeholder="请输入过程备注" resize="none">
+					</el-input>
+				</el-form-item>
+			</el-form>
+		</div>
+		<div class="hui-dialog-submit">
+			<el-button size="small" @click="$emit('callback')">取 消</el-button>
+			<el-button size="small" type="primary" @click="submit" :loading="loading">保 存</el-button>
+		</div>
+	</div>
+</template>
+
+<script>
+	import {
+		insertProcessSetData,
+		getProcessSetDataById,
+		updateProcessSetData
+	} from '@/api/system'
+	export default {
+		props: ['isUpdate', 'itemId', 'productCouponModelId'],
+		data() {
+			return {
+				departmentForm: {
+					name: '',
+					sequence: '',
+					remark: '',
+					parentId: -1,
+					attachment: 0,
+					roleId: 1,
+					attachmentNumber: ''
+				},
+				departmentRuler: {},
+				loading: false,
+				showPictures: []
+			}
+		},
+		mounted() {
+			if (this.isUpdate) {
+				getProcessSetDataById(this.itemId).then(res => {
+					if (res.state) {
+						this.departmentForm = res.data;
+					}
+				})
+			} else {
+				this.departmentForm['parentId'] = this.itemId;
+				this.departmentForm['productCouponModelId'] = this.productCouponModelId;
+			}
+		},
+		methods: {
+			submit() {
+				this.loading = true;
+				let postData = JSON.parse(JSON.stringify(this.departmentForm));
+				if (postData.attachment === 0) {
+					postData['attachmentNumber'] = null;
+					postData['roleId'] = 1;
+				}
+				if (this.isUpdate) {
+					updateProcessSetData(postData).then(this.successFunc)
+				} else {
+					insertProcessSetData(postData).then(this.successFunc)
+				}
+			},
+			successFunc(res) {
+				this.loading = false;
+				if (res.state) {
+					this.$message.success('操作成功');
+					this.$emit('callback', 'init');
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss"></style>

+ 251 - 0
virgo.wzfrontend/workark/src/components/work/system/serveSet/processSet.vue

@@ -0,0 +1,251 @@
+<template>
+	<div class="process-set">
+		<process-set-item v-loading="loading" :list="list" type="edit" @callback="callback"></process-set-item>
+		<el-dialog :close-on-click-modal="false" :title="isUpdate?'编辑':'新增'" :visible.sync="visible" width="900px"
+			:append-to-body="true">
+			<process-form v-if="visible" @callback="callback" :isUpdate="isUpdate" :itemId="itemId"
+				:productCouponModelId="part.id">
+			</process-form>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+	const processSetItem = () => import('./processSetItem.vue');
+	const processForm = () => import('./processForm');
+	import {
+		getProcessSetData,
+		deleteProcessSetData
+	} from '@/api/system'
+	import {
+		mapGetters
+	} from 'vuex';
+	export default {
+		props: ['part'],
+		data() {
+			return {
+				list: [],
+				loading: false,
+				itemId: '',
+				visible: false,
+				isUpdate: false
+			}
+		},
+		mounted() {
+			this.init();
+		},
+		methods: {
+			init() {
+				this.loading = true;
+				getProcessSetData(this.part.id).then(res => {
+					if (res.state) {
+						this.list = res.data;
+					}
+					this.loading = false;
+				})
+			},
+			edit() {
+				let data = this.$store.getters.processSet;
+				this.itemId = data.id;
+				switch (data.type) {
+					case 'insert':
+						this.visible = true;
+						this.isUpdate = false;
+						break;
+					case 'update':
+						this.visible = true;
+						this.isUpdate = true;
+						break;
+					case 'delete':
+						this.deleteDepartment();
+						break;
+					default:
+						break;
+				}
+			},
+			deleteDepartment() {
+				this.$confirm('确定要删除该过程?', () => {
+					deleteProcessSetData(this.itemId).then(res => {
+						if (res.state) {
+							this.$message.success('操作成功');
+							this.init();
+						}
+					})
+				});
+			},
+			callback(type) {
+				this.visible = false;
+				if (type === 'init') this.init();
+			}
+		},
+		computed: {
+			...mapGetters(['processSet'])
+		},
+		components: {
+			processSetItem,
+			processForm
+		},
+		watch: {
+			processSet() {
+				this.edit()
+			}
+		},
+	}
+</script>
+
+<style lang="scss">
+	.process-set {
+		width: 100%;
+		height: 100%;
+		overflow-y: auto;
+		padding: 15px;
+
+		.process-set-item {
+			padding-left: 40px;
+			position: relative;
+		}
+
+		.process-set-insert {
+			font-size: 12px;
+			color: $--color-primary;
+			border: 1px solid $--color-primary;
+			padding: 2px 5px;
+			display: inline;
+			border-radius: 3px;
+			cursor: pointer;
+			opacity: 0.8;
+		}
+
+		.process-item-title {
+			padding: 5px 0;
+
+			.label {
+				font-weight: bold;
+				color: $--color-text-primary;
+				font-size: $--font-size-large;
+			}
+
+			.el-icon-edit-outline {
+				margin-left: 10px;
+			}
+
+			.el-icon-delete,
+			.el-icon-edit-outline {
+				padding: 2px;
+				cursor: pointer;
+			}
+		}
+
+		.process-item-content {
+			padding: 5px 0;
+		}
+
+		.process-set-state {
+			width: 20px;
+			height: 20px;
+			border-radius: 50%;
+			position: absolute;
+			left: 7px;
+			top: 6px;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+		}
+
+		.process-set-state-1 {
+			width: 8px;
+			height: 8px;
+			border-radius: 50%;
+		}
+
+		.process-set-state-2 {
+			width: 14px;
+			height: 14px;
+			border-radius: 50%;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+		}
+
+		.line {
+			position: absolute;
+			left: 16px;
+			width: 2px;
+		}
+
+		.line-top {
+			top: 0;
+			height: 6px;
+		}
+
+		.line-bottom {
+			top: 26px;
+			bottom: 0;
+		}
+
+		.success {
+
+			.process-set-state,
+			.line {
+				background: rgba(0, 180, 42, 0.4);
+			}
+
+			.process-set-state-1 {
+				background: rgba(0, 180, 42, 1);
+			}
+
+			.process-set-state-2 {
+				background: rgba(0, 180, 42, 0.6);
+			}
+
+		}
+
+		.error {
+
+			.process-set-state,
+			.line {
+				background: rgba(245, 63, 63, 0.4);
+			}
+
+			.process-set-state-1 {
+				background: rgba(245, 63, 63, 1);
+			}
+
+			.process-set-state-2 {
+				background: rgba(245, 63, 63, 0.6);
+			}
+		}
+
+		.waiting {
+
+			.process-set-state,
+			.line {
+				background: rgba(255, 125, 0, 0.4);
+			}
+
+			.process-set-state-1 {
+				background: rgba(255, 125, 0, 1);
+			}
+
+			.process-set-state-2 {
+				background: rgba(255, 125, 0, 0.6);
+			}
+		}
+
+		.info {
+
+			.process-set-state,
+			.line {
+				background: rgba(144, 157, 143, 0.4);
+			}
+
+			.process-set-state-1 {
+				background: rgba(144, 157, 143, 1);
+			}
+
+			.process-set-state-2 {
+				background: rgba(144, 157, 143, 0.6);
+			}
+		}
+	}
+</style>

+ 57 - 0
virgo.wzfrontend/workark/src/components/work/system/serveSet/processSetItem.vue

@@ -0,0 +1,57 @@
+<template>
+	<div>
+		<div :class="returnItemClass(item)" v-for="(item,index) in list" :key="item.id">
+			<div class="process-set-state">
+				<div class="process-set-state-2">
+					<div class="process-set-state-1"></div>
+				</div>
+			</div>
+			<div class="line line-top" v-if="index >0"></div>
+			<div class="line line-bottom" v-if="index < list.length-1 || type === 'edit'"></div>
+			<div class="process-item-title">
+				<span class="label">{{index+1}}.{{item.name}}</span>
+				<i class="el-icon-edit-outline color-blue" v-if="type === 'edit'" @click="edit('update', item.id)"></i>
+				<i class="el-icon-delete color-red" v-if="type === 'edit'" @click="edit('delete', item.id)"></i>
+			</div>
+			<div class="process-item-content" v-if="item.children">
+				<process-set-item :list="item.children" :type="type" :parentId="item.id">
+				</process-set-item>
+			</div>
+		</div>
+		<div class="process-set-insert" @click="edit('insert', parentId || -1)">新增</div>
+	</div>
+</template>
+
+<script>
+	const processSetItem = () => import('./processSetItem.vue');
+	export default {
+		props: ['list', 'type', 'parentId'],
+		mounted() {},
+		methods: {
+			returnItemClass(item) {
+				let str = '';
+				switch (item.state) {
+					case 1:
+						str = 'success'
+						break;
+					default:
+						str = 'info'
+						break;
+				}
+				return 'process-set-item ' + str;
+			},
+			edit(type, id) {
+				this.$store.dispatch('app/changeProcessSet', {
+					type,
+					id
+				});
+			}
+		},
+		components: {
+			processSetItem
+		}
+	}
+</script>
+
+<style>
+</style>

+ 1 - 0
virgo.wzfrontend/workark/src/store/getters.js

@@ -4,5 +4,6 @@ const getters = {
 	user: state => state.app.user, //用户基本信息
 	organization: state => state.app.organization, //所属组织信息
 	project: state => state.app.project, //项目
+	processSet: state => state.app.processSet //过程状态管理
 }
 export default getters;

+ 10 - 1
virgo.wzfrontend/workark/src/store/modules/app.js

@@ -9,7 +9,8 @@ const getDefaultState = () => ({
 	organization: {},
 	project: {
 		id: -1
-	}
+	},
+	processSet: {}
 })
 
 const mutations = {
@@ -28,6 +29,9 @@ const mutations = {
 	CHANGE_PROJECT: (state, project) => {
 		state.project = project;
 	},
+	CHANGE_PROCESS_SET: (state, processSet) => {
+		state.processSet = processSet;
+	},
 	RESET_STATE(state) {
 		state = Object.assign(state, getDefaultState())
 	}
@@ -58,6 +62,11 @@ const actions = {
 		commit
 	}, project) {
 		commit('CHANGE_PROJECT', project);
+	},
+	changeProcessSet({
+		commit
+	}, processSet) {
+		commit('CHANGE_PROCESS_SET', processSet);
 	},
 	resetState({
 		commit

+ 22 - 10
virgo.wzfrontend/workark/src/views/work/system/serveSet.vue

@@ -5,7 +5,7 @@
 		</div>
 		<div class="hui-flex-box hui-flex hui-table">
 			<div class="hui-content-insert">
-				<el-button type="primary" size="medium" @click="insertDepartment({})">
+				<el-button type="primary" size="small" @click="insertDepartment({})">
 					新增服务
 				</el-button>
 			</div>
@@ -27,6 +27,10 @@
 								<span class="table-operation" @click="deleteDepartment(scope.row)">
 									删除
 								</span>
+								<span class="table-operation" v-if="scope.row.children.length === 0"
+									@click="process(scope.row)">
+									过程
+								</span>
 							</div>
 						</template>
 					</el-table-column>
@@ -35,10 +39,12 @@
 					</template>
 				</el-table>
 			</div>
-			<el-dialog :close-on-click-modal="false" :title="isUpdate?'编辑':'新增'" :visible.sync="visible" width="900px"
-				:append-to-body="true">
-				<depart-form v-if="visible" @callback="callback" :isUpdate="isUpdate" :part="part">
+			<el-dialog :close-on-click-modal="false" :title="type === 'form' ? (isUpdate?'编辑':'新增') : '过程设置'"
+				:visible.sync="visible" width="900px" :append-to-body="true">
+				<depart-form v-if="visible&&type==='form'" @callback="callback" :isUpdate="isUpdate" :part="part">
 				</depart-form>
+				<process-set v-if="visible&&type==='process'" @callback="callback"  :part="part">
+				</process-set>
 			</el-dialog>
 		</div>
 	</div>
@@ -50,6 +56,7 @@
 		deleteServeDepartment
 	} from '@/api/system'
 	const departForm = () => import('@/components/work/system/serveSet/departForm');
+	const processSet = () => import('@/components/work/system/serveSet/processSet');
 	export default {
 		data() {
 			return {
@@ -59,14 +66,16 @@
 				part: {},
 				drawer: false,
 				nowLevel: {},
-				loading: false
+				loading: false,
+				type: ''
 			}
 		},
 		mounted() {
 			this.init();
 		},
 		components: {
-			departForm
+			departForm,
+			processSet
 		},
 		methods: {
 			init() {
@@ -82,16 +91,19 @@
 				this.currPage = currPage;
 				this.init();
 			},
+			process(val) {
+				this.part = val;
+				this.type = 'process';
+				this.visible = true;
+			},
 			insertDepartment(val) {
+				this.type = 'form';
 				this.part = val;
 				this.visible = true;
 				this.isUpdate = false;
 			},
-			lookFlow(val) {
-				this.detailId = val.id;
-				this.drawer = true;
-			},
 			updateDepartment(val) {
+				this.type = 'form';
 				this.part = val;
 				this.isUpdate = true;
 				this.visible = true;