whx 1 年間 前
コミット
aa832d8825

+ 172 - 0
virgo.wzfrontend/console/src/components/work/contract/template/field.vue

@@ -0,0 +1,172 @@
+<template>
+	<div class="hui-flex hui-dialog hui-content">
+		<div class="hui-flex-box hui-flex hui-table">
+			<div class="hui-content-insert">
+				<el-button type="primary" size="medium" @click="insertRow">新增模板字段</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="字段代码" prop="code"></el-table-column>
+					<el-table-column label="字段类型">
+						<template slot-scope="scope">
+							<span>{{$field.findTypeName('fieldType',scope.row.type)}}</span>
+						</template>
+					</el-table-column>
+					<el-table-column label="操作" width="200">
+						<template slot-scope="scope">
+							<div class="hui-table-operation">
+								<span class="table-operation" @click="look(scope.row)">
+									详情
+								</span>
+								<span class="table-operation" @click="updateRow(scope.row)">
+									编辑
+								</span>
+								<span class="table-operation" @click="deleteRow(scope.row)">
+									删除
+								</span>
+							</div>
+						</template>
+					</el-table-column>
+					<template slot="empty">
+						<empty description="暂无数据"></empty>
+					</template>
+				</el-table>
+			</div>
+		</div>
+		<el-dialog :title="isUpdate?'编辑':'新增'" :visible.sync="visible" width="900px" :append-to-body="true">
+			<field-edit v-if="visible" @callback="callback" :isUpdate="isUpdate" :detailId="detailId"
+				:templateId="templateId">
+			</field-edit>
+		</el-dialog>
+		<el-drawer title="项目详情" :visible.sync="drawer" :size="400" :append-to-body="true">
+			<field-detail v-if="drawer" :detailId="detailId"></field-detail>
+		</el-drawer>
+	</div>
+</template>
+
+<script>
+	import {
+		getFieldList,
+		deleteField
+	} from '@/httpApi/contract'
+	import fieldEdit from '@/components/work/contract/template/fieldEdit'
+	import fieldDetail from '@/components/work/contract/template/fieldDetail'
+	export default {
+		props: ['templateId'],
+		data() {
+			return {
+				tableData: [],
+				visible: false,
+				detailId: '',
+				isUpdate: false,
+				drawer: false
+			}
+		},
+		created() {
+			this.init();
+		},
+		methods: {
+			init() {
+				getFieldList({
+					documentTemplateId: this.templateId
+				}).then(res => {
+					if (res.state) {
+						this.tableData = res.data;
+					}
+				})
+			},
+			insertRow() {
+				this.isUpdate = false;
+				this.visible = true;
+			},
+			updateRow(item) {
+				this.detailId = item.id;
+				this.isUpdate = true;
+				this.visible = true;
+			},
+			deleteRow(item) {
+				this.$confirm('确定要删除该字段?', () => {
+					deleteField(item.id).then(res => {
+						if (res.state) {
+							this.$message.success('操作成功');
+							this.init();
+						}
+					})
+				});
+			},
+			callback(type) {
+				if (type === 'init') this.init();
+				this.visible = false;
+			}
+		},
+		components: {
+			fieldEdit,
+			fieldDetail
+		},
+	}
+</script>
+
+<style lang="scss">
+	.field-data {
+		table {
+			width: 100%;
+			border: 1px solid $--color-border;
+			border-collapse: collapse;
+			table-layout: fixed;
+		}
+
+		table th {
+			padding: 5px 0;
+			border: 1px solid $--color-border;
+			font-weight: 500;
+		}
+
+
+		table td {
+			border: 1px solid $--color-border;
+			padding: 6px 20px;
+		}
+
+		.insert-icon {
+			text-align: center;
+			cursor: pointer;
+			border-radius: 2px;
+			border: 1px dashed $--color-border;
+			line-height: 26px;
+			font-size: 13px;
+
+			.huifont-xinzeng {
+				font-size: 13px;
+			}
+		}
+
+		.td-icon {
+			width: 20px;
+			height: 20px;
+			background: #171F2D;
+			border-radius: 10px;
+			border: 1px solid #8596B0;
+			opacity: 0.6;
+			text-align: center;
+			line-height: 16px;
+			color: #8596B0;
+			cursor: pointer;
+		}
+
+		.td-icon:hover {
+			color: $--color-red;
+			border-color: $--color-red;
+		}
+
+		.iconfont {
+			font-size: 10px;
+			margin-left: 1px;
+		}
+	}
+</style>

+ 149 - 0
virgo.wzfrontend/console/src/components/work/contract/template/fieldData.vue

@@ -0,0 +1,149 @@
+<template>
+	<div class="field-data">
+		<table border="1" cellspacing="0" cellpadding="0">
+			<tr class="th-title">
+				<th style="width: 50px;">序号</th>
+				<th>选项值</th>
+				<th style="width: 80px;">默认值</th>
+				<th style="width: 80px;">操作</th>
+			</tr>
+			<tr v-for="(item,index) in listData" :key="index">
+				<td>{{index + 1}}</td>
+				<td><el-input v-model="item.value" @change="val=>item.label = val"></el-input></td>
+				<td>
+					<div style="text-align: center;">
+						<el-radio v-model="defaultValue" :label="item.id"></el-radio>
+					</div>
+				</td>
+				<td>
+					<div class="td-icon" @click="deleteRow(index)">
+						<i class="iconfont huifont-guanbi"></i>
+					</div>
+				</td>
+			</tr>
+			<tr>
+				<td colspan="4">
+					<div class="insert-icon color-primary" @click="insertRow()">
+						<i class="iconfont huifont-xinzeng"></i>
+						新增
+					</div>
+				</td>
+			</tr>
+		</table>
+	</div>
+</template>
+
+<script>
+	export default {
+		props: {
+			list: {
+				type: Array,
+				default: () => {
+					return []
+				}
+			},
+			value: {
+				type: Number,
+				default: 1
+			}
+		},
+		data() {
+			return {
+				listData: [],
+				defaultValue: 1,
+				listIndex: 1
+			}
+		},
+		created() {
+			this.listData = this.list;
+			this.defaultValue = this.value;
+		},
+		methods: {
+			insertRow() {
+				this.listData.push({
+					id: this.listIndex,
+					value: '',
+					label: ''
+				});
+				this.listIndex++;
+			},
+			deleteRow(index) {
+				this.$confirm('确定要删除该项数据?', () => {
+					this.listData.splice(index, 1);
+					this.defaultValue = this.listData[0].id;
+				});
+			}
+		},
+		watch: {
+			list() {
+				this.listData = this.list;
+			},
+			value() {
+				this.defaultValue = this.value;
+			}
+		},
+	}
+</script>
+
+<style lang="scss">
+	.field-data {
+		table {
+			width: 100%;
+			border: 1px solid $--color-border;
+			border-collapse: collapse;
+			table-layout: fixed;
+		}
+
+		table th {
+			padding: 5px 0;
+			border: 1px solid $--color-border;
+			font-weight: 500;
+		}
+
+
+		table td {
+			border: 1px solid $--color-border;
+			padding: 6px 20px;
+		}
+
+		.el-radio__label {
+			display: none !important;
+		}
+
+		.insert-icon {
+			text-align: center;
+			cursor: pointer;
+			border-radius: 2px;
+			border: 1px dashed $--color-border;
+			line-height: 26px;
+			font-size: 13px;
+
+			.huifont-xinzeng {
+				font-size: 13px;
+			}
+		}
+
+		.td-icon {
+			width: 20px;
+			height: 20px;
+			background: #171F2D;
+			border-radius: 10px;
+			border: 1px solid #8596B0;
+			opacity: 0.6;
+			text-align: center;
+			line-height: 16px;
+			margin-left: 12px;
+			color: #8596B0;
+			cursor: pointer;
+		}
+
+		.td-icon:hover {
+			color: $--color-red;
+			border-color: $--color-red;
+		}
+
+		.iconfont {
+			font-size: 10px;
+		}
+	}
+</style>

+ 30 - 0
virgo.wzfrontend/console/src/components/work/contract/template/fieldDetail.vue

@@ -0,0 +1,30 @@
+<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"> {{detail.description}}</div>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script>
+	export default {
+		props: ['detail'],
+		data() {
+			return {}
+		},
+		created() {
+			
+		}
+	}
+</script>
+<style lang="scss">
+
+</style>

+ 108 - 0
virgo.wzfrontend/console/src/components/work/contract/template/fieldEdit.vue

@@ -0,0 +1,108 @@
+<template>
+	<div class="hui-flex hui-dialog">
+		<div class="hui-flex-box hui-dialog-content">
+			<el-form ref="fieldForm" :model="fieldForm" label-position="top">
+				<el-form-item label="字段名称">
+					<el-input type="text" v-model="fieldForm.name" placeholder="请输入字段名称"></el-input>
+				</el-form-item>
+				<el-form-item label="字段代码">
+					<el-input type="text" v-model="fieldForm.code" placeholder="请输入字段代码"></el-input>
+				</el-form-item>
+				<el-form-item label="字段类型">
+					<el-select v-model="fieldForm.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-radio v-model="fieldForm.required" :label="0">非必填</el-radio>
+					<el-radio v-model="fieldForm.required" :label="1">必填</el-radio>
+				</el-form-item>
+				<el-form-item label="选项设置" class="hui-textarea" v-if="fieldForm.type === 2 || fieldForm.type === 4">
+					<field-data ref="fieldData" :list="fieldList" :value="fieldValue"></field-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 {
+		insertField,
+		updateField,
+		getFieldList
+	} from '@/httpApi/contract'
+	import fieldData from '@/components/work/contract/template/fieldData'
+	export default {
+		props: ['isUpdate', 'detailId', 'templateId'],
+		data() {
+			return {
+				fieldForm: {
+					documentTemplateId: '',
+					name: '',
+					type: 1,
+					code: '',
+					required: 1,
+					data: ''
+				},
+				fieldList: [],
+				fieldValue: 1
+			}
+		},
+		created() {
+			if (this.isUpdate) {
+				getFieldList({
+					id: this.detailId
+				}).then(res => {
+					if (res.state) {
+						this.fieldForm = res.data[0];
+						if (this.fieldForm.data) {
+							let data = JSON.parse(this.fieldForm.data);
+							this.fieldList = data.list;
+							this.fieldValue = data.value;
+						}
+					}
+				})
+			} else {
+				this.fieldForm['documentTemplateId'] = this.templateId;
+			}
+		},
+		methods: {
+			submit() {
+				if (this.fieldForm.type === 2 || this.fieldForm.type === 4) {
+					this.fieldForm['data'] = JSON.stringify({
+						list: this.$refs.fieldData.listData,
+						value: this.$refs.fieldData.defaultValue,
+					})
+				} else {
+					this.fieldForm['data'] = '';
+				}
+				if (this.isUpdate) {
+					updateField(this.fieldForm).then(this.successFunc)
+				} else {
+					insertField(this.fieldForm).then(this.successFunc)
+				}
+			},
+			successFunc(res) {
+				if (res.state) {
+					this.$message.success('操作成功');
+					this.$emit('callback', 'init');
+				}
+			}
+		},
+		components: {
+			fieldData
+		},
+	}
+</script>
+
+<style lang="scss">
+	.Tag-form {
+		padding: 10px;
+	}
+</style>

+ 64 - 0
virgo.wzfrontend/console/src/components/work/organization/seal/detail.vue

@@ -0,0 +1,64 @@
+<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"> {{detail.comment}}</div>
+			</div>
+		</div>
+		<div class="hui-detail-title">印章图片</div>
+		<div class="hui-detail-content hui-detail-image">
+			<upload ref="upload" :list="responsibility" type="preview">
+			</upload>
+		</div>
+	</div>
+</template>
+
+<script>
+	import {
+		getSealDetailById
+	} from '@/httpApi/organization'
+	import upload from '@/components/common/upload'
+	export default {
+		props: ['detailId'],
+		data() {
+			return {
+				detail: {},
+				responsibility: []
+			}
+		},
+		created() {
+			this.init();
+		},
+		methods: {
+			init() {
+				getSealDetailById(this.detailId).then(res => {
+					if (res.state) {
+						let data = res.data;
+						this.detail['name'] = data.name;
+						this.detail['comment'] = data.comment;
+						let fileNode = data.fileNode;
+						let typeList = fileNode.name.split('.');
+						this.responsibility = [{
+							id: fileNode.id,
+							name: fileNode.name,
+							url: fileNode.node.url,
+							type: typeList[typeList.length - 1]
+						}];
+					}
+				})
+			}
+		},
+		components: {
+			upload
+		},
+	}
+</script>
+<style lang="scss">
+
+</style>

+ 92 - 0
virgo.wzfrontend/console/src/components/work/organization/seal/edit.vue

@@ -0,0 +1,92 @@
+<template>
+	<div class="hui-flex hui-dialog">
+		<div class="hui-flex-box hui-dialog-content">
+			<el-form ref="sealForm" :model="sealForm" label-position="top">
+				<el-form-item label="印章名称" class="hui-textarea">
+					<el-input type="text" v-model="sealForm.name" placeholder="请输入印章名称"></el-input>
+				</el-form-item>
+				<el-form-item label="印章描述" class="hui-textarea">
+					<el-input type="textarea" v-model="sealForm.comment" placeholder="请输入印章描述" resize="none">
+					</el-input>
+				</el-form-item>
+				<el-form-item label="印章图片" class="hui-textarea">
+					<upload ref="upload" :list="responsibility" type="insert" :maxLen="1"></upload>
+				</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 {
+		insertSeal,
+		getSealDetailById,
+		updateSeal
+	} from '@/httpApi/organization'
+	import upload from '@/components/common/upload'
+	export default {
+		props: ['isUpdate', 'detailId'],
+		data() {
+			return {
+				sealForm: {
+					name: '',
+					comment: ''
+				},
+				responsibility: [],
+			}
+		},
+		created() {
+			if (this.isUpdate) {
+				getSealDetailById(this.detailId).then(res => {
+					if (res.state) {
+						let data = res.data;
+						this.sealForm['id'] = data.id;
+						this.sealForm['name'] = data.name;
+						this.sealForm['comment'] = data.comment;
+						let fileNode = data.fileNode;
+						let typeList = fileNode.name.split('.');
+						this.responsibility = [{
+							id: fileNode.id,
+							name: fileNode.name,
+							url: fileNode.node.url,
+							type: typeList[typeList.length - 1]
+						}];
+					}
+				})
+			} else {
+				this.sealForm['organizationId'] = this.$store.getters.organization.id;
+			}
+		},
+		methods: {
+			submit() {
+				let fileList = this.$refs.upload.fileList;
+				if (fileList.length < 1) this.$message.warning('请上传印章');
+				this.sealForm['fileNodeId'] = fileList[0].id;
+				if (this.isUpdate) {
+					updateSeal(this.sealForm).then(this.successFunc)
+				} else {
+					insertSeal(this.sealForm).then(this.successFunc)
+				}
+			},
+			successFunc(res) {
+				if (res.state) {
+					this.$message.success('操作成功');
+					this.$emit('callback', 'init');
+				}
+			}
+		},
+		components: {
+			upload
+		},
+	}
+</script>
+
+<style lang="scss">
+	.seal-form {
+		padding: 10px;
+	}
+</style>

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

@@ -58,7 +58,19 @@ const followUpState = [{
 	id: 7,
 	name: '未联系上'
 }]
-
+const fieldType = [{
+	id: 1,
+	name: '输入类型'
+}, {
+	id: 2,
+	name: '选择类型'
+}, {
+	id: 3,
+	name: '日期类型'
+}, {
+	id: 4,
+	name: '单选类型'
+}];
 const findItem = (type, id) => {
 	return eval(type).find(node => node.id === id) || {
 		id: 0,
@@ -71,7 +83,8 @@ export default {
 		houseType,
 		payWay,
 		customerType,
-		followUpState
+		followUpState,
+		fieldType
 	},
 	findTypeName(type, id) {
 		return findItem(type, id).name;

+ 52 - 5
virgo.wzfrontend/console/src/httpApi/contract.js

@@ -12,7 +12,7 @@ export function getTagList(organizationId, projectId) {
 	})
 }
 /* 
- * 新增部门
+ * 新增标签
  * 
  * 
  */
@@ -24,7 +24,7 @@ export function insertTag(data) {
 	})
 }
 /* 
- * 编辑部门
+ * 编辑标签
  * 
  * 
  */
@@ -36,7 +36,7 @@ export function updateTag(data) {
 	})
 }
 /* 
- * 删除部门
+ * 删除标签
  * 
  * 
  */
@@ -104,14 +104,61 @@ export function getContractTemplateById(id) {
 	})
 }
 /* 
- * 获取模板留
+ * 下载模板
  * 
  * 
  */
 export function getContractTemplateRaw(id) {
 	return request({
 		url: `/file/template/raw/${id}`,
-		method: 'get',
+		method: 'get',
 		responseType: 'arraybuffer'
 	})
+}
+/* 
+ * 获取合同模板字段列表
+ * 
+ * 
+ */
+export function getFieldList(data) {
+	return request({
+		url: `/file/template/data/list`,
+		method: 'post',
+		data: data
+	})
+}
+/* 
+ * 新增合同模板字段
+ * 
+ * 
+ */
+export function insertField(data) {
+	return request({
+		url: `/file/template/data`,
+		method: 'post',
+		data: data
+	})
+}
+/* 
+ * 编辑合同模板字段
+ * 
+ * 
+ */
+export function updateField(data) {
+	return request({
+		url: `/file/template/data/update`,
+		method: 'put',
+		data: data
+	})
+}
+/* 
+ * 删除合同模板字段
+ * 
+ * 
+ */
+export function deleteField(id) {
+	return request({
+		url: `/file/template/data/delete/${id}`,
+		method: 'delete'
+	})
 }

+ 57 - 0
virgo.wzfrontend/console/src/httpApi/organization.js

@@ -114,4 +114,61 @@ export function deleteUser(organizationId, userId) {
 		url: `/manager/user/delete/${organizationId}/${userId}`,
 		method: 'delete'
 	})
+}
+/* 
+ * 获取组织印章列表
+ * 
+ * 
+ */
+export function getSealList(organizationId) {
+	return request({
+		url: `/file/seal/${organizationId}`,
+		method: 'get'
+	})
+}
+/* 
+ * 获取组织印章详情
+ * 
+ * 
+ */
+export function getSealDetailById(id) {
+	return request({
+		url: `/file/seal/detail/${id}`,
+		method: 'get',
+	})
+}
+/* 
+ * 新增组织印章
+ * 
+ * 
+ */
+export function insertSeal(data) {
+	return request({
+		url: `/file/seal`,
+		method: 'post',
+		data: data
+	})
+}
+/* 
+ * 编辑组织印章
+ * 
+ * 
+ */
+export function updateSeal(data) {
+	return request({
+		url: `/file/seal`,
+		method: 'put',
+		data: data
+	})
+}
+/* 
+ * 删除组织印章
+ * 
+ * 
+ */
+export function deleteSeal(id) {
+	return request({
+		url: `/file/seal/${id}`,
+		method: 'delete'
+	})
 }

+ 7 - 0
virgo.wzfrontend/console/src/router/modules/organization.js

@@ -19,5 +19,12 @@ const organization = [{
 	meta: {
 		title: '人员管理'
 	}
+}, {
+	path: 'organization/seal',
+	component: () => import('@/views/work/organization/seal'),
+	name: '印章管理',
+	meta: {
+		title: '印章管理'
+	}
 }]
 export default organization;

+ 11 - 4
virgo.wzfrontend/console/src/views/work/contract/template.vue

@@ -74,6 +74,9 @@
 			<preview v-if="detailsDialogVisible" :templateId="templateId" @close="detailsDialogVisible = false">
 			</preview>
 		</el-dialog>
+		<el-dialog title="字段设置" :visible.sync="visible" width="900px" :append-to-body="true">
+			<field v-if="visible" :templateId="templateId"></field>
+		</el-dialog>
 	</div>
 </template>
 
@@ -90,6 +93,7 @@
 	} from '@/uitls'
 	import tagTree from '@/components/work/contract/common/tagTree'
 	import documentUpload from '@/components/work/contract/common/documentUpload'
+	import field from '@/components/work/contract/template/field'
 	import preview from '@/components/document/preview'
 	export default {
 		data() {
@@ -100,7 +104,8 @@
 				totalCount: 0,
 				categoryId: -1,
 				templateId: '',
-				detailsDialogVisible: false
+				detailsDialogVisible: false,
+				visible: false
 			}
 		},
 		created() {
@@ -131,8 +136,9 @@
 				this.templateId = '';
 				this.$refs.upload.reloadUpload();
 			},
-			setField() {
-
+			setField(item) {
+				this.templateId = item.id;
+				this.visible = true;
 			},
 			reloadUpload(item) {
 				this.templateId = item.id;
@@ -179,7 +185,8 @@
 		components: {
 			tagTree,
 			documentUpload,
-			preview
+			preview,
+			field
 		},
 	}
 </script>

+ 116 - 0
virgo.wzfrontend/console/src/views/work/organization/seal.vue

@@ -0,0 +1,116 @@
+<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="insertSeal">新增印章</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="印章描述" prop="comment"></el-table-column>
+					<el-table-column label="申请印章" width="150">
+						<template slot-scope="scope">
+							<div class="hui-table-operation">
+								<span class="table-operation" @click="lookRequest(scope.row)">查看</span>
+							</div>
+						</template>
+					</el-table-column>
+					<el-table-column label="操作" width="150">
+						<template slot-scope="scope">
+							<div class="hui-table-operation">
+								<span class="table-operation" @click="lookSeal(scope.row)">详情</span>
+								<span class="table-operation" @click="updateSeal(scope.row)">编辑</span>
+								<span class="table-operation" @click="deleteSeal(scope.row)">删除</span>
+							</div>
+						</template>
+					</el-table-column>
+					<template slot="empty">
+						<empty description="暂无数据"></empty>
+					</template>
+				</el-table>
+			</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 {
+		getSealList,
+		deleteSeal
+	} from '@/httpApi/organization'
+	import edit from '@/components/work/organization/seal/edit'
+	import detail from '@/components/work/organization/seal/detail'
+	export default {
+		data() {
+			return {
+				tableData: [],
+				visible: false,
+				detailId: '',
+				isUpdate: false,
+				drawer: false
+			}
+		},
+		created() {
+			this.init();
+		},
+		methods: {
+			init() {
+				getSealList(this.$store.getters.organization.id).then(res => {
+					if (res.state) {
+						this.tableData = res.data;
+					}
+				})
+			},
+			insertSeal() {
+				this.isUpdate = false;
+				this.visible = true;
+			},
+			updateSeal(val) {
+				this.detailId = val.id;
+				this.isUpdate = true;
+				this.visible = true;
+			},
+			lookSeal(val) {
+				this.detailId = val.id;
+				this.drawer = true;
+			},
+			lookRequest() {
+				this.$message.warning('功能开发中~~~');
+			},
+			deleteSeal(item) {
+				this.$confirm('确定要删除该印章?', () => {
+					deleteSeal(item.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>