whx há 1 ano atrás
pai
commit
a7393619ca
45 ficheiros alterados com 920 adições e 31 exclusões
  1. 14 2
      virgo.wzfrontend/console/src/assets/scss/index.scss
  2. 124 0
      virgo.wzfrontend/console/src/components/common/projectItemTreeSelect.vue
  3. 78 0
      virgo.wzfrontend/console/src/components/work/business/organization/detail.vue
  4. 105 0
      virgo.wzfrontend/console/src/components/work/business/organization/edit.vue
  5. 274 0
      virgo.wzfrontend/console/src/components/work/contract/list/edit.vue
  6. 39 2
      virgo.wzfrontend/console/src/config/field.js
  7. 58 0
      virgo.wzfrontend/console/src/httpApi/business.js
  8. 9 0
      virgo.wzfrontend/console/src/router/modules/business.js
  9. 1 1
      virgo.wzfrontend/console/src/uitls/permission.js
  10. 1 0
      virgo.wzfrontend/console/src/views/login/index.vue
  11. 8 1
      virgo.wzfrontend/console/src/views/system/log.vue
  12. 130 0
      virgo.wzfrontend/console/src/views/work/business/organization.vue
  13. 60 10
      virgo.wzfrontend/console/src/views/work/contract/list.vue
  14. 1 1
      virgo.wzfrontend/src/main/resources/static/index.html
  15. 0 1
      virgo.wzfrontend/src/main/resources/static/static/css/115.5816187b.css
  16. 1 1
      virgo.wzfrontend/src/main/resources/static/static/css/74.d72fd54e.css
  17. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/404.67d356a0.css
  18. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/461.67d356a0.css
  19. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/625.b179d095.css
  20. 0 1
      virgo.wzfrontend/src/main/resources/static/static/css/711.5816187b.css
  21. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/758.b179d095.css
  22. 0 1
      virgo.wzfrontend/src/main/resources/static/static/css/app.8c97c8d3.css
  23. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/app.e9e944ca.css
  24. 0 1
      virgo.wzfrontend/src/main/resources/static/static/js/115-legacy.2b5847c8.js
  25. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/386-legacy.2da7b5bf.js
  26. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/404-legacy.c6571952.js
  27. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/461.143d9080.js
  28. 0 1
      virgo.wzfrontend/src/main/resources/static/static/js/61-legacy.c25674e0.js
  29. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/61-legacy.ff76bc4a.js
  30. 0 1
      virgo.wzfrontend/src/main/resources/static/static/js/61.c25674e0.js
  31. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/61.ff76bc4a.js
  32. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/625-legacy.a7962f15.js
  33. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/625.ebaa0be9.js
  34. 0 1
      virgo.wzfrontend/src/main/resources/static/static/js/711.a83d6ac1.js
  35. 0 1
      virgo.wzfrontend/src/main/resources/static/static/js/74-legacy.5ff2f23b.js
  36. 0 1
      virgo.wzfrontend/src/main/resources/static/static/js/74.5ff2f23b.js
  37. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/758.c4243ffb.js
  38. 0 1
      virgo.wzfrontend/src/main/resources/static/static/js/759-legacy.529dac62.js
  39. 0 1
      virgo.wzfrontend/src/main/resources/static/static/js/759.b2b35ad4.js
  40. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/836-legacy.80c1c45c.js
  41. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/836.25868d7a.js
  42. 0 1
      virgo.wzfrontend/src/main/resources/static/static/js/app-legacy.64047552.js
  43. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/app-legacy.b14afb3b.js
  44. 0 1
      virgo.wzfrontend/src/main/resources/static/static/js/app.66c05764.js
  45. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/app.b5a16ce4.js

+ 14 - 2
virgo.wzfrontend/console/src/assets/scss/index.scss

@@ -123,8 +123,20 @@
 			bottom: 0;
 			position: absolute;
 		}
-	}
-
+	}
+	
+	.hui-nav{
+		height: 48px;
+		border-bottom: 1px solid #374156;
+		padding: 0 20px;
+		padding-top: 12px;
+		
+		.el-page-header__content{
+			color: $--color-common;
+			font-size: 16px;
+		}
+	}
+	
 	.hui-content-insert {
 		padding-bottom: 12px;
 	}

+ 124 - 0
virgo.wzfrontend/console/src/components/common/projectItemTreeSelect.vue

@@ -0,0 +1,124 @@
+<template>
+	<div class="project-item-tree-select">
+		<el-collapse>
+			<el-collapse-item v-for="item in options" :key="item.id">
+				<template slot="title">
+					<i class="iconfont huifont-shuzhuangcaidantubiao"></i>
+					<span class="el-collapse-name">{{item.name}}</span>
+				</template>
+				<div>
+					<el-tree :data="item.children" :props="defaultProps" :expand-on-click-node="false" show-checkbox>
+					</el-tree>
+				</div>
+			</el-collapse-item>
+		</el-collapse>
+	</div>
+</template>
+
+<script>
+	import {
+		getHouseTree,
+	} from '@/httpApi/space'
+	import {
+		roomList
+	} from '@/uitls'
+	export default {
+		data() {
+			return {
+				options: [],
+				defaultProps: {
+					children: 'children',
+					label: 'optionName'
+				},
+			}
+		},
+		created() {
+			this.init();
+		},
+		methods: {
+			init() {
+				getHouseTree(this.$store.getters.project.id).then(res => {
+					if (res.state) {
+						this.options = roomList(res.data.projectItemList || []);
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.project-item-tree-select {
+		flex: 1;
+		height: 0;
+		overflow-y: auto;
+
+		.el-tree {
+			.el-tree-node__label {
+				left: 5px;
+			}
+		}
+
+		.el-collapse {
+			border: none;
+
+			.el-collapse-item__header {
+				background: #1E2430;
+				color: $--color-common !important;
+				border-color: $--color-border;
+				height: 32px;
+				line-height: 32px;
+				font-size: 12px;
+				padding: 0 14px;
+
+				.el-collapse-name {
+					flex: 1;
+					width: 0;
+					overflow: hidden;
+				}
+
+				.iconfont {
+					color: $--color-common !important;
+					margin-right: 6px;
+				}
+
+				.huifont-bumen {
+					font-size: 16px;
+				}
+
+				.huifont-shuzhuangcaidantubiao,
+				.huifont-moxingguanli {
+					font-size: 18px;
+				}
+			}
+
+			.el-collapse-item__wrap {
+				background: #151c26;
+				border: none;
+			}
+
+			.el-collapse-item__header.is-active,
+			.el-collapse-item__header:hover,
+			.el-collapse-item__header:focus {
+				color: $--color-common;
+				background: #262C38;
+			}
+
+			.el-icon-arrow-right {
+				font-family: 'iconfont' !important;
+				font-size: 9px;
+				margin: 0;
+			}
+
+			.el-icon-arrow-right::before {
+				content: '\e738';
+			}
+
+			.el-collapse-item__content {
+				padding-bottom: 0;
+				color: $--color-common;
+				font-size: 12px;
+			}
+		}
+	}
+</style>

+ 78 - 0
virgo.wzfrontend/console/src/components/work/business/organization/detail.vue

@@ -0,0 +1,78 @@
+<template>
+	<div class="hui-detail">
+		<div class="hui-detail-title">基础信息</div>
+		<div class="hui-detail-content">
+			<div class="hui-detail-item">
+				<div class="hui-detail-label">企业名称</div>
+				<div class="hui-detail-value">{{detail.name}}</div>
+			</div>
+			<div class="hui-detail-item">
+				<div class="hui-detail-label">企业类型</div>
+				<div class="hui-detail-value">{{$field.findTypeName('industryType',detail.industryType)}}</div>
+			</div>
+			<div class="hui-detail-item">
+				<div class="hui-detail-label">企业法人</div>
+				<div class="hui-detail-value">{{detail.legalPerson}}</div>
+			</div>
+			<div class="hui-detail-item">
+				<div class="hui-detail-label">成立时间</div>
+				<div class="hui-detail-value">{{detail.establishDate}}</div>
+			</div>
+			<div class="hui-detail-item">
+				<div class="hui-detail-label">营业期限</div>
+				<div class="hui-detail-value">{{detail.businessTerm}}</div>
+			</div>
+			<div class="hui-detail-item">
+				<div class="hui-detail-label">注册资本</div>
+				<div class="hui-detail-value">{{detail.registeredCapital}}</div>
+			</div>
+		</div>
+		<div v-if="detail.data && detail.data != '[]'">
+			<div class="hui-detail-title">自定义信息</div>
+			<div class="hui-detail-content">
+				<div class="hui-detail-item" v-for="(item,index) in JSON.parse(detail.data)">
+					<div class="hui-detail-label">{{item.keyName}}</div>
+					<div class="hui-detail-value">{{item.value}}</div>
+				</div>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script>
+	import {
+		getOrganizationDetailById
+	} from '@/httpApi/business'
+	export default {
+		props: ['detailId'],
+		data() {
+			return {
+				detail: {
+					name: '',
+					legalPerson: '',
+					establishDate: '',
+					businessTerm: '',
+					organizationId: '',
+					registeredCapital: '',
+					industryType: '',
+					data: '',
+				}
+			}
+		},
+		created() {
+			if (this.detailId) this.init();
+		},
+		methods: {
+			init() {
+				getOrganizationDetailById(this.detailId).then(res => {
+					if (res.state) {
+						this.detail = res.data;
+					}
+				})
+			}
+		},
+	}
+</script>
+<style lang="scss">
+
+</style>

+ 105 - 0
virgo.wzfrontend/console/src/components/work/business/organization/edit.vue

@@ -0,0 +1,105 @@
+<template>
+	<div class="hui-flex hui-dialog">
+		<div class="hui-flex-box hui-dialog-content">
+			<el-form ref="organizationForm" label-position="top" :model="organizationForm">
+				<el-form-item label="企业名称" prop="name" :rules="[{required: true, message: '请输入企业名称'}]">
+					<el-input type="text" v-model="organizationForm.name" placeholder="请输入企业名称"></el-input>
+				</el-form-item>
+				<el-form-item label="企业类型" prop="industryType" :rules="[{required: true, message: '请选择企业类型'}]">
+					<el-select v-model="organizationForm.industryType" placeholder="请选择企业类型">
+						<el-option :label="item.name" :value="String(item.id)"
+							v-for="(item,index) in $field.field.industryType" :key="item.id">
+						</el-option>
+					</el-select>
+				</el-form-item>
+				<el-form-item label="企业法人" prop="legalPerson" :rules="[{required: true, message: '请输入企业法人'}]">
+					<el-input type="text" v-model="organizationForm.legalPerson" placeholder="请输入企业法人"></el-input>
+				</el-form-item>
+				<el-form-item label="成立时间" prop="establishDate" :rules="[{required: true, message: '请选择成立时间'}]">
+					<el-date-picker v-model="organizationForm.establishDate" value-format="yyyy-MM-dd" type="date"
+						placeholder="请选择启用日期">
+					</el-date-picker>
+				</el-form-item>
+				<el-form-item label="营业期限" prop="businessTerm" :rules="[{required: true, message: '请输入营业期限'}]">
+					<el-input type="text" v-model="organizationForm.businessTerm" placeholder="请输入营业期限"></el-input>
+				</el-form-item>
+				<el-form-item label="注册资本" prop="registeredCapital" :rules="[{required: true, message: '请输入注册资本'}]">
+					<el-input type="text" v-model="organizationForm.registeredCapital" placeholder="请输入注册资本"></el-input>
+				</el-form-item>
+				<el-form-item label="自定义信息" class="hui-textarea">
+					<custom-data ref="customData" :list="customList"></custom-data>
+				</el-form-item>
+			</el-form>
+		</div>
+		<div class="hui-dialog-submit">
+			<el-button size="medium" @click="$emit('callback')">取 消</el-button>
+			<el-button size="medium" type="primary" @click="submit">保 存</el-button>
+		</div>
+	</div>
+</template>
+
+<script>
+	import {
+		insertOrganization,
+		updateOrganization,
+		getOrganizationDetailById
+	} from '@/httpApi/business'
+	import customData from '@/components/common/customData'
+	export default {
+		props: ['isUpdate', 'detailId'],
+		data() {
+			return {
+				organizationForm: {
+					name: '',
+					legalPerson: '',
+					establishDate: '',
+					businessTerm: '',
+					organizationId: '',
+					registeredCapital: '',
+					industryType: '',
+					data: '',
+				},
+				customList: []
+			}
+		},
+		created() {
+			this.organizationForm['organizationId'] = this.$store.getters.user.organization.id;
+			if (this.isUpdate) {
+				getOrganizationDetailById(this.detailId).then(res => {
+					if (res.state) {
+						this.organizationForm = res.data;
+						if (this.organizationForm.data) this.customList = JSON.parse(this.organizationForm.data);
+					}
+				})
+			}
+		},
+		methods: {
+			submit() {
+				this.$refs.organizationForm.validate((valid) => {
+					if (valid) {
+						let postData = JSON.parse(JSON.stringify(this.organizationForm));
+						postData['data'] = JSON.stringify(this.$refs.customData.listData);
+						if (this.isUpdate) {
+							updateOrganization(postData).then(this.successFunc);
+						} else {
+							insertOrganization(postData).then(this.successFunc);
+						}
+					} else {
+						return false;
+					}
+				});
+			},
+			successFunc(res) {
+				if (res.state) {
+					this.$message.success('操作成功');
+					this.$emit('callback', 'init');
+				}
+			}
+		},
+		components: {
+			customData
+		},
+	}
+</script>
+
+<style lang="scss"></style>

+ 274 - 0
virgo.wzfrontend/console/src/components/work/contract/list/edit.vue

@@ -0,0 +1,274 @@
+<template>
+	<div class="hui-flex contract-edit">
+		<div class="contract-step">
+			<div class="step-item active">
+				<div class="step-number">1</div>
+				<div class="step-label">基本信息</div>
+			</div>
+			<div class="line"><i class="el-icon-arrow-right"></i></div>
+			<div class="step-item">
+				<div class="step-number">2</div>
+				<div class="step-label">费用条款</div>
+			</div>
+			<div class="line"><i class="el-icon-arrow-right"></i></div>
+			<div class="step-item">
+				<div class="step-number">3</div>
+				<div class="step-label">合同文本</div>
+			</div>
+		</div>
+		<el-form ref="form" :model="form" class="hui-flex-box" label-position="top">
+			<div class="contract-left">
+				<div class="contract-box">
+					<div class="hui-chart-title">所属公司信息</div>
+					<div class="contract-from">
+						<el-form-item label="所属公司">
+							<el-select v-model="form.type" placeholder="请选择所属公司">
+								<el-option :label="item.name" :value="item.id"
+									v-for="(item,index) in $field.field.fieldType" :key="index">
+								</el-option>
+							</el-select>
+						</el-form-item>
+						<el-form-item label="所属部门">
+							<el-select v-model="form.type" placeholder="请选择所属部门">
+								<el-option :label="item.name" :value="item.id"
+									v-for="(item,index) in $field.field.fieldType" :key="index">
+								</el-option>
+							</el-select>
+						</el-form-item>
+						<el-form-item label="招商跟进人">
+							<el-select v-model="form.type" placeholder="请选择招商跟进人">
+								<el-option :label="item.name" :value="item.id"
+									v-for="(item,index) in $field.field.fieldType" :key="index">
+								</el-option>
+							</el-select>
+						</el-form-item>
+						<el-form-item label="运营跟进人">
+							<el-select v-model="form.type" placeholder="请选择运营跟进人">
+								<el-option :label="item.name" :value="item.id"
+									v-for="(item,index) in $field.field.fieldType" :key="index">
+								</el-option>
+							</el-select>
+						</el-form-item>
+					</div>
+				</div>
+				<div class="contract-box">
+					<div class="hui-chart-title">租客信息</div>
+					<div class="contract-from">
+						<el-form-item label="所属公司">
+							<el-select v-model="form.type" placeholder="请选择所属公司">
+								<el-option :label="item.name" :value="item.id"
+									v-for="(item,index) in $field.field.fieldType" :key="index">
+								</el-option>
+							</el-select>
+						</el-form-item>
+						<el-form-item label="所属部门">
+							<el-select v-model="form.type" placeholder="请选择所属部门">
+								<el-option :label="item.name" :value="item.id"
+									v-for="(item,index) in $field.field.fieldType" :key="index">
+								</el-option>
+							</el-select>
+						</el-form-item>
+						<el-form-item label="招商跟进人">
+							<el-select v-model="form.type" placeholder="请选择招商跟进人">
+								<el-option :label="item.name" :value="item.id"
+									v-for="(item,index) in $field.field.fieldType" :key="index">
+								</el-option>
+							</el-select>
+						</el-form-item>
+						<el-form-item label="运营跟进人">
+							<el-select v-model="form.type" placeholder="请选择运营跟进人">
+								<el-option :label="item.name" :value="item.id"
+									v-for="(item,index) in $field.field.fieldType" :key="index">
+								</el-option>
+							</el-select>
+						</el-form-item>
+					</div>
+				</div>
+				<div class="contract-box">
+					<div class="hui-chart-title">基本信息</div>
+					<div class="contract-from">
+						<el-form-item label="所属公司">
+							<el-select v-model="form.type" placeholder="请选择所属公司">
+								<el-option :label="item.name" :value="item.id"
+									v-for="(item,index) in $field.field.fieldType" :key="index">
+								</el-option>
+							</el-select>
+						</el-form-item>
+						<el-form-item label="所属部门">
+							<el-select v-model="form.type" placeholder="请选择所属部门">
+								<el-option :label="item.name" :value="item.id"
+									v-for="(item,index) in $field.field.fieldType" :key="index">
+								</el-option>
+							</el-select>
+						</el-form-item>
+						<el-form-item label="招商跟进人">
+							<el-select v-model="form.type" placeholder="请选择招商跟进人">
+								<el-option :label="item.name" :value="item.id"
+									v-for="(item,index) in $field.field.fieldType" :key="index">
+								</el-option>
+							</el-select>
+						</el-form-item>
+						<el-form-item label="运营跟进人">
+							<el-select v-model="form.type" placeholder="请选择运营跟进人">
+								<el-option :label="item.name" :value="item.id"
+									v-for="(item,index) in $field.field.fieldType" :key="index">
+								</el-option>
+							</el-select>
+						</el-form-item>
+					</div>
+				</div>
+			</div>
+			<div class="contract-right">
+				<div class="contract-project-list">
+					<div class="contract-project-title">
+						<svg-icon name="zhuangshi" width="16" height="20"></svg-icon>
+						<span class="hui-left-tree-sub">房源列表</span>
+					</div>
+					<project-item-tree-select></project-item-tree-select>
+				</div>
+			</div>
+		</el-form>
+		<div class="contract-btn">
+			<el-button size="medium">上一步</el-button>
+			<el-button type="primary" size="medium">保存</el-button>
+		</div>
+	</div>
+</template>
+
+<script>
+	import projectItemTreeSelect from '@/components/common/projectItemTreeSelect'
+	export default {
+		data() {
+			return {
+				form: {
+					type: ''
+				}
+			}
+		},
+		components: {
+			projectItemTreeSelect
+		},
+	}
+</script>
+
+<style lang="scss">
+	.contract-edit {
+		.hui-flex-box {
+			background: $--background;
+			display: flex;
+			padding: 12px 0;
+		}
+
+		.contract-project-title {
+			height: 42px;
+			border-radius: 2px;
+			display: flex;
+			align-items: center;
+			padding: 0 12px;
+			border-bottom: 1px solid $--color-border;
+		}
+
+		.contract-left {
+			flex: 2;
+			width: 0;
+			height: 100%;
+			overflow-y: auto;
+			padding-right: 5px;
+		}
+
+		.contract-right {
+			flex: 1;
+			width: 0;
+			height: 100%;
+			padding-left: 5px;
+
+			.contract-project-list {
+				background: $--box-background;
+				height: 100%;
+				display: flex;
+				flex-direction: column;
+			}
+		}
+
+		.contract-btn {
+			text-align: right;
+			padding: 10px 20px;
+		}
+
+		.contract-box {
+			padding: 10px 0 0 10px;
+			background: $--box-background;
+			margin-bottom: 12px;
+
+			.contract-from {
+				padding: 20px 0 0 15px;
+				display: flex;
+				flex-wrap: wrap;
+
+				.el-form-item:nth-child(2n-1) {
+					padding-right: 0;
+				}
+
+				.el-form-item:nth-child(2n) {
+					padding-left: 0;
+				}
+
+				.el-form-item {
+					width: 33.333%;
+					padding-right: 15px !important;
+				}
+
+				.el-form-item__label {
+					font-size: 12px;
+				}
+			}
+
+			&:last-child {
+				margin-bottom: 0;
+			}
+		}
+
+		.contract-step {
+			display: flex;
+			align-items: center;
+
+			.step-item {
+				display: flex;
+				align-items: center;
+				width: 200px;
+				justify-content: center;
+				height: 50px;
+				cursor: pointer;
+				position: relative;
+			}
+
+			.step-number {
+				width: 26px;
+				height: 26px;
+				border-radius: 50%;
+				background: $--color-background;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				margin-right: 15px;
+			}
+
+			.step-item.active {
+				&::before {
+					content: '';
+					position: absolute;
+					bottom: 0;
+					height: 2px;
+					right: 20px;
+					left: 20px;
+					background: $--color-primary;
+				}
+
+				.step-number {
+					background: $--color-primary;
+					color: #fff;
+				}
+			}
+		}
+	}
+</style>

+ 39 - 2
virgo.wzfrontend/console/src/config/field.js

@@ -71,8 +71,44 @@ const fieldType = [{
 	id: 4,
 	name: '单选类型'
 }];
+
+const industryType = [{
+	id: 1,
+	name: '机构组织'
+}, {
+	id: 2,
+	name: '农林牧渔'
+}, {
+	id: 3,
+	name: '建筑建材'
+}, {
+	id: 4,
+	name: '冶金矿产'
+}, {
+	id: 5,
+	name: '交通运输'
+}, {
+	id: 6,
+	name: '信息产业'
+}, {
+	id: 7,
+	name: '机械机电'
+}, {
+	id: 8,
+	name: '轻工食品'
+}, {
+	id: 9,
+	name: '服装纺织'
+}, {
+	id: 10,
+	name: '专业服务'
+}, {
+	id: 11,
+	name: '旅游休闲'
+}];
+
 const findItem = (type, id) => {
-	return eval(type).find(node => node.id === id) || {
+	return eval(type).find(node => node.id == id) || {
 		id: 0,
 		name: '-'
 	};
@@ -84,7 +120,8 @@ export default {
 		payWay,
 		customerType,
 		followUpState,
-		fieldType
+		fieldType,
+		industryType
 	},
 	findTypeName(type, id) {
 		return findItem(type, id).name;

+ 58 - 0
virgo.wzfrontend/console/src/httpApi/business.js

@@ -0,0 +1,58 @@
+import request from '@/axios'
+/* 
+ * 获取企业列表
+ * 
+ */
+export function getOrganizationListByPage(data) {
+	return request({
+		url: `/api/Merchant/${data.currPage}/${data.pageSize}`,
+		method: 'post',
+		data: data
+	})
+}
+/* 
+ * 新增企业
+ * 
+ * 
+ */
+export function insertOrganization(data) {
+	return request({
+		url: `/api/Merchant`,
+		method: 'post',
+		data: data
+	})
+}
+/* 
+ * 编辑企业
+ * 
+ * 
+ */
+export function updateOrganization(data) {
+	return request({
+		url: `/api/Merchant/update`,
+		method: 'put',
+		data: data
+	})
+}
+/* 
+ * 获取企业详情
+ * 
+ * 
+ */
+export function getOrganizationDetailById(id) {
+	return request({
+		url: `/api/Merchant/${id}`,
+		method: 'get'
+	})
+}
+/* 
+ * 删除企业
+ * 
+ * 
+ */
+export function deleteOrganizationById(id) {
+	return request({
+		url: `/api/Merchant/delete/${id}`,
+		method: 'delete'
+	})
+}

+ 9 - 0
virgo.wzfrontend/console/src/router/modules/business.js

@@ -0,0 +1,9 @@
+const business = [{
+	path: 'business/organization',
+	component: () => import('@/views/work/business/organization'),
+	name: '企业管理',
+	meta: {
+		title: '企业管理'
+	}
+}]
+export default business;

+ 1 - 1
virgo.wzfrontend/console/src/uitls/permission.js

@@ -14,7 +14,7 @@ import Vue from 'vue'
 NProgress.configure({
 	showSpinner: false
 })
-const baseUrl = ['/', '/401', '/404', '/loginRegister/login', '/system/main'];
+const baseUrl = ['/', '/401', '/404', '/loginRegister/login'];
 
 const testBaseUrl = (path) => { //判断公共路由
 	let nowBaseUrl = ['/loginRegister/login'].filter((item) => {

+ 1 - 0
virgo.wzfrontend/console/src/views/login/index.vue

@@ -160,6 +160,7 @@
 										if (!res.data || res.data.length == 0) {
 											this.$store.dispatch('projectBase/changeProject', {});
 											this.$store.dispatch('app/changeUser', user);
+											localStorage.setItem('projectId', 0);
 											return this.$router.push('/space/project');
 										}
 										let project = user.projectId === -1 ? res.data[0] : res

+ 8 - 1
virgo.wzfrontend/console/src/views/system/log.vue

@@ -4,10 +4,17 @@
 			<el-timeline-item timestamp="2024-06-04" placement="top">
 				<div class="log-box">
 					<div class="log-item">1、新增筛选功能,应用在客户管理、经纪管理、公海客户模块。</div>
-					<div class="log-item">2、客户管理模块新增统计功能,并展示更多字段。</div>
+					<div class="log-item">2、客户管理模块新增统计功能,并展示更多字段。</div>
 					<div class="log-item">3、完善个人信息编辑的功能。</div>
 				</div>
 			</el-timeline-item>
+			<el-timeline-item timestamp="2024-06-05" placement="top">
+				<div class="log-box">
+					<div class="log-item">1、客户管理新增批量导入、模板下载功能。</div>
+					<div class="log-item">2、新增客商管理-企业管理功能。</div>
+					<div class="log-item">3、完成合同列表、新增合同部分UI部分。</div>
+				</div>
+			</el-timeline-item>
 		</el-timeline>
 	</div>
 </template>

+ 130 - 0
virgo.wzfrontend/console/src/views/work/business/organization.vue

@@ -0,0 +1,130 @@
+<template>
+	<div class="hui-flex hui-content">
+		<div class="hui-content-title">
+			<div class="hui-title-item active">企业列表</div>
+		</div>
+		<div class="hui-flex-box hui-flex hui-table">
+			<div class="hui-content-insert">
+				<el-button type="primary" size="medium" @click="insertProject">新增企业</el-button>
+			</div>
+			<div class="hui-flex-box">
+				<el-table :data="tableData" row-key="id" border height="100%">
+					<el-table-column label="序号" width="50">
+						<template slot-scope="scope">
+							<div style="text-align: center;">{{scope.$index + 1}}</div>
+						</template>
+					</el-table-column>
+					<el-table-column label="企业名称" prop="name"></el-table-column>
+					<el-table-column label="企业类型">
+						<template slot-scope="scope">
+							<span>{{$field.findTypeName('industryType',scope.row.industryType)}}</span>
+						</template>
+					</el-table-column>
+					<el-table-column label="企业法人" prop="legalPerson"></el-table-column>
+					<el-table-column label="成立时间" prop="establishDate"></el-table-column>
+					<el-table-column label="营业期限" prop="businessTerm"></el-table-column>
+					<el-table-column label="操作" width="150">
+						<template slot-scope="scope">
+							<div class="hui-table-operation">
+								<span class="table-operation" @click="lookProject(scope.row)">详情</span>
+								<span class="table-operation" @click="updateProject(scope.row)">编辑</span>
+								<span class="table-operation" @click="deleteProject(scope.row)">删除</span>
+							</div>
+						</template>
+					</el-table-column>
+					<template slot="empty">
+						<empty description="暂无数据"></empty>
+					</template>
+				</el-table>
+			</div>
+			<div class="hui-content-pagination">
+				<el-pagination :page-size="pageSize" :pager-count="9" layout="prev, pager, next" :total="totalCount"
+					@current-change="currentChange">
+				</el-pagination>
+			</div>
+		</div>
+		<el-dialog :title="isUpdate?'编辑':'新增'" :visible.sync="visible" width="900px" :append-to-body="true">
+			<edit v-if="visible" @callback="callback" :isUpdate="isUpdate" :detailId="detailId"></edit>
+		</el-dialog>
+		<el-drawer title="项目详情" :visible.sync="drawer" :size="400" :append-to-body="true">
+			<detail v-if="drawer" :detailId="detailId"></detail>
+		</el-drawer>
+	</div>
+</template>
+
+<script>
+	import {
+		getOrganizationListByPage,
+		deleteOrganizationById
+	} from '@/httpApi/business'
+	import edit from '@/components/work/business/organization/edit'
+	import detail from '@/components/work/business/organization/detail'
+	export default {
+		data() {
+			return {
+				tableData: [],
+				currPage: 1,
+				pageSize: 10,
+				totalCount: 0,
+				visible: false,
+				detailId: '',
+				isUpdate: false,
+				drawer: false
+			}
+		},
+		created() {
+			this.init();
+		},
+		methods: {
+			init() {
+				getOrganizationListByPage({
+					currPage: this.currPage,
+					pageSize: this.pageSize,
+					organizationId: this.$store.getters.organization.id
+				}).then(res => {
+					if (res.state) {
+						this.tableData = res.data.dataList;
+						this.totalCount = res.data.totalCount;
+					}
+				})
+			},
+			currentChange(currPage) {
+				this.currPage = currPage;
+				this.init();
+			},
+			insertProject() {
+				this.isUpdate = false;
+				this.visible = true;
+			},
+			updateProject(val) {
+				this.detailId = val.id;
+				this.isUpdate = true;
+				this.visible = true;
+			},
+			lookProject(val) {
+				this.detailId = val.id;
+				this.drawer = true;
+			},
+			deleteProject(val) {
+				this.$confirm('确定要删除该企业?', () => {
+					deleteOrganizationById(val.id).then(res => {
+						if (res.state) {
+							this.init();
+							this.$message.success('操作成功');
+						}
+					})
+				});
+			},
+			callback(type) {
+				if (type === 'init') this.init();
+				this.visible = false;
+			}
+		},
+		components: {
+			edit,
+			detail
+		},
+	}
+</script>
+
+<style lang="scss"></style>

+ 60 - 10
virgo.wzfrontend/console/src/views/work/contract/list.vue

@@ -1,18 +1,68 @@
 <template>
-	<div class="contract-list">
-		<empty description="合同列表"></empty>
+	<div class="hui-flex hui-content">
+		<div class="hui-flex" v-if="type === 'list'">
+			<div class="hui-content-title">
+				<div class="hui-title-item active">合同列表</div>
+			</div>
+			<div class="hui-flex-box hui-flex hui-table">
+				<div class="hui-content-insert">
+					<el-button type="primary" size="medium" @click="insert">新增合同</el-button>
+				</div>
+				<div class="hui-flex-box">
+					<el-table :data="tableData" row-key="id" border height="100%">
+						<el-table-column label="序号" width="50">
+							<template slot-scope="scope">
+								<div style="text-align: center;">{{scope.$index + 1}}</div>
+							</template>
+						</el-table-column>
+						<el-table-column label="合同名称" prop="name"></el-table-column>
+						<template slot="empty">
+							<empty description="暂无数据"></empty>
+						</template>
+					</el-table>
+				</div>
+				<div class="hui-content-pagination">
+					<el-pagination :page-size="pageSize" :pager-count="9" layout="prev, pager, next" :total="totalCount"
+						@current-change="currentChange">
+					</el-pagination>
+				</div>
+			</div>
+		</div>
+		<div class="hui-flex" v-else-if="type === 'edit'">
+			<div class="hui-nav">
+				<el-page-header @back="type = 'list'" content="新建合同"></el-page-header>
+			</div>
+			<edit class="hui-flex-box"></edit>
+		</div>
 	</div>
 </template>
 
 <script>
+	import edit from '@/components/work/contract/list/edit'
+	export default {
+		data() {
+			return {
+				type: 'list',
+				tableData: [],
+				currPage: 1,
+				pageSize: 10,
+				totalCount: 0,
+			}
+		},
+		methods: {
+			insert() {
+				this.type = 'edit';
+			},
+			currentChange(currPage) {
+				this.currPage = currPage;
+				this.init();
+			},
+		},
+		components: {
+			edit
+		},
+	}
 </script>
 
-<style lang="scss">
-	.contract-list {
-		width: 100%;
-		height: 100%;
-		display: flex;
-		align-items: center;
-		justify-content: center;
-	}
+<style>
 </style>

Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/index.html


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/css/115.5816187b.css


Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/static/css/74.d72fd54e.css


Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/404.67d356a0.css


Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/461.67d356a0.css


Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/625.b179d095.css


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/css/711.5816187b.css


Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/758.b179d095.css


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/css/app.8c97c8d3.css


Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/app.e9e944ca.css


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/js/115-legacy.2b5847c8.js


Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/386-legacy.2da7b5bf.js


Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/404-legacy.c6571952.js


Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/461.143d9080.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/js/61-legacy.c25674e0.js


Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/61-legacy.ff76bc4a.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/js/61.c25674e0.js


Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/61.ff76bc4a.js


Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/625-legacy.a7962f15.js


Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/625.ebaa0be9.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/js/711.a83d6ac1.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/js/74-legacy.5ff2f23b.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/js/74.5ff2f23b.js


Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/758.c4243ffb.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/js/759-legacy.529dac62.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/js/759.b2b35ad4.js


Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/836-legacy.80c1c45c.js


Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/836.25868d7a.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/js/app-legacy.64047552.js


Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/app-legacy.b14afb3b.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/js/app.66c05764.js


Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/app.b5a16ce4.js