公章管理 #105

Merged
hanchaobo merged 2 commits from hcb into dev 2023-11-16 12:06:35 +00:00
6 changed files with 362 additions and 18 deletions
+16
View File
@@ -25,3 +25,19 @@ export function selectDeptIndefiUrl(data) {
data: data data: data
}) })
} }
// 新增机构
export function insert(data) {
return request({
url: '/deptIdentify/insert',
method: 'post',
data: data
})
}
// 查询公章列表
export function sealList(data) {
return request({
url: '/deptIdentify/sealList',
method: 'get',
params: data
})
}
@@ -0,0 +1,89 @@
<template>
<div>
<el-dialog title="新增机构" :visible="operateVisable" @close="cancel" width="600px" center :distroy-on-close="true">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="demo-ruleForm">
<el-form-item label="机构名称" prop="identifyName">
<el-input v-model="ruleForm.identifyName"></el-input>
</el-form-item>
<el-form-item label="经办人姓名" prop="operName">
<el-input v-model="ruleForm.operName"></el-input>
</el-form-item>
<el-form-item label="经办人手机号" prop="operPhone">
<el-input v-model="ruleForm.operPhone"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
<el-button type="primary" @click="submitForm" class="endbutton"><span>确认</span></el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
insert
} from "@/api/officialSeal/officialSeal.js";
export default {
props: ["operateVisable",],
data() {
return {
ruleForm: {},
rules: {
identifyName: [
{ required: true, message: '请输入机构名称', trigger: 'blur' },
// { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
],
operName: [
{ required: true, message: '请输入经办人姓名', trigger: 'blur' },
],
operPhone: [
{ required: true, message: '请输入手机号', trigger: 'blur' },
{ pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/, message: '请输入正确的手机号码', trigger: 'blur', },
],
}
};
},
watch: {
operateVisable(val) {
if (val) {
}
}
},
created() {
},
methods: {
// 新增部门
insertFn(data){
insert(data).then(res=>{
this.$modal.msgSuccess("新增成功!");
this.$emit("cancelFilingreview");
this.$emit('getList');
})
},
// 提交form表单
submitForm() {
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
this.insertFn(this.ruleForm)
}
});
},
cancel() {
this.$emit("cancelFilingreview");
},
},
};
</script>
<style lang="scss" scoped>
.steps {
display: flex;
flex-wrap: wrap;
}
.radiobox {
margin-top: 30px;
}
</style>
@@ -0,0 +1,89 @@
<template>
<div>
<el-dialog title="公章列表" :visible="sealVisable" @close="cancel" width="800px" center :distroy-on-close="true">
<el-table :data="dataList" style="width: 100%">
<el-table-column label="序号" type="index" align="center">
<template slot-scope="scope">
<span>{{
(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
}}</span>
</template>
</el-table-column>
<el-table-column label="印章名称" align="center" prop="sealName"
:show-overflow-tooltip="true"></el-table-column>
<el-table-column label="印章图片" align="center" prop="annexPath">
<template slot-scope="scope">
<!-- <el-image style="width: 40px; height: 40px;"
:src="imgUrl + scope.row.annexPath"
:preview-src-list="srcList">
</el-image> -->
<span>{{ imgUrl + scope.row.annexPath }}</span>
</template>
</el-table-column>
<el-table-column label="是否启用" align="center" prop="sealStatus">
<template slot-scope="scope">
<el-tag type="success" v-if="scope.row.isUse == 1">已启用</el-tag>
<el-tag type="info" v-if="scope.row.isUse == 0">未启用</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button size="mini" @click="DeptIndefiUrl(scope.row)" type="text" icon="el-icon-thumb"
v-if="scope.row.isUse == 0">启用</el-button>
<el-button size="mini" @click="DeptIndefiUrl(scope.row)" type="text" icon="el-icon-thumb"
v-if="scope.row.isUse == 1">禁用</el-button>
</template>
</el-table-column>
</el-table>
</el-dialog>
</div>
</template>
<script>
import {
sealList
} from "@/api/officialSeal/officialSeal.js";
export default {
props: ["sealVisable","sealData"],
data() {
return {
srcList: ["https://img2.baidu.com/it/u=1814561676,2470063876&fm=253&fmt=auto&app=138&f=JPEG?w=750&h=500"],
queryParams: {
pageNum: 1,
pageSize: 10,
},
dataList: [
],
imgUrl:""
};
},
watch: {
sealVisable(val) {
if (val) {
this.sealListFn({id:this.sealData.id})
// console.log(this.sealData,"LLLLLLLLLLLLLLLLL");
}
}
},
created() {
this.UploadUrl()
},
methods: {
UploadUrl() {
this.imgUrl = window.location.origin;
},
// 查询列表数据
sealListFn(data){
sealList(data).then(res=>{
this.dataList = res.rows;
})
},
cancel() {
this.$emit("cancelSeal");
},
},
};
</script>
<style lang="scss" scoped></style>
@@ -0,0 +1,107 @@
<template>
<div>
<el-dialog title="上传公章" :visible="uploadVisable" v-if="uploadVisable" @close="cancel" width="600px" center>
<el-upload class="avatar-uploader" :before-upload="beforeUpload" :on-success="handleSuccess" ref="upload" :action="UploadUrl()"
:headers="headers" :data="filedata" :on-remove="handleRemove" :on-change="handleChange"
:show-file-list="false" :file-list="fileList" :auto-upload="false">
<img v-if="imageUrl" :src="imageUrl" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
<el-button type="primary" @click="submitUpload" class="endbutton"><span>确认</span></el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { getToken } from "@/utils/auth";
export default {
props: ["uploadVisable", "uploadData"],
data() {
return {
fileList: [],
data: [],
headers: {
Authorization: "Bearer " + getToken(),
},
filedata: {
id: this.uploadData.id
},
flagBtn: false,
imageUrl: ""
};
},
watch: {
uploadVisable(val) {
if (val) {
this.imageUrl = ""
}
}
},
created() {
},
methods: {
// 提交
submitForm() {
},
cancel() {
this.$emit("cancelUpload");
},
handleChange(file, fileList) {
this.imageUrl = URL.createObjectURL(file.raw);
},
UploadUrl() {
return window.location.origin + "/API/deptIdentify/sealUpload";
},
submitUpload() {
this.filedata.id = this.uploadData.id
this.$refs.upload.submit();
},
handleRemove(file, fileList) {
console.log(file, fileList);
},
beforeUpload(file) {
const isImg = file.type === 'image/png'
if (!isImg) {
this.$message.error('只能上传图片格式的文件')
}
return isImg
},
handleSuccess(){
this.$message.success('上传成功')
}
},
};
</script>
<style lang="scss" scoped>
::v-deep .avatar-uploader .el-upload {
width: 178px;
height: 178px;
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
}
::v-deep .avatar-uploader .el-upload:hover {
border-color: #409EFF;
}
::v-deep .avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 178px;
height: 178px;
line-height: 178px;
text-align: center;
}
::v-deep .avatar {
width: 178px;
height: 178px;
display: block;
}
</style>
+59 -16
View File
@@ -1,5 +1,11 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="addInstitution">新增部门</el-button>
<!-- v-hasPermi="['caseManagement:list:add']" -->
</el-col>
</el-row>
<el-table v-loading="loading" :data="dataList" style="width: 100%"> <el-table v-loading="loading" :data="dataList" style="width: 100%">
<el-table-column label="序号" type="index" align="center"> <el-table-column label="序号" type="index" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
@@ -8,11 +14,10 @@
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="仲裁机构名称" align="center" prop="deptName" :show-overflow-tooltip="true" /> <el-table-column label="仲裁机构名称" align="center" prop="identifyName" :show-overflow-tooltip="true" />
<el-table-column label="公章名称" align="center" prop="sealName" :show-overflow-tooltip="true" /> <el-table-column label="经办人姓名" align="center" prop="operName" :show-overflow-tooltip="true" />
<el-table-column label="经办人姓名" align="center" prop="nickName" :show-overflow-tooltip="true" /> <el-table-column label="经办人手机号" align="center" prop="operPhone" :show-overflow-tooltip="true" />
<el-table-column label="经办人手机号" align="center" prop="phonenumber" :show-overflow-tooltip="true" /> <el-table-column label="认证时间" align="center" prop="identifyDate" />
<el-table-column label="认证时间" align="center" prop="updateTime" />
<el-table-column label="认证状态" align="center" prop="identifyStatus" :show-overflow-tooltip="true" /> <el-table-column label="认证状态" align="center" prop="identifyStatus" :show-overflow-tooltip="true" />
<el-table-column label="是否启用" align="center" prop="isUse"></el-table-column> <el-table-column label="是否启用" align="center" prop="isUse"></el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@@ -21,12 +26,21 @@
v-if="scope.row.identifyStatus == '未认证'">认证</el-button> v-if="scope.row.identifyStatus == '未认证'">认证</el-button>
<el-button size="mini" @click="changeStatus(scope.row)" type="text" icon="el-icon-thumb" <el-button size="mini" @click="changeStatus(scope.row)" type="text" icon="el-icon-thumb"
v-if="scope.row.isUse == '未启用' && scope.row.identifyStatus == '已认证'">启用</el-button> v-if="scope.row.isUse == '未启用' && scope.row.identifyStatus == '已认证'">启用</el-button>
<el-button size="mini" @click="uploadSeal(scope.row)" type="text"
v-if="scope.row.identifyStatus == '已认证'" icon="el-icon-upload2">上传公章</el-button>
<el-button size="mini" @click="sealManage(scope.row)" type="text"
v-if="scope.row.identifyStatus == '已认证'" icon="el-icon-upload2">公章管理</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList(queryParams)" /> @pagination="getList(queryParams)" />
<addInstitution :operateVisable="operateVisable" @cancelFilingreview="cancelFilingreview" @getList="getList">
</addInstitution>
<uploadSeal :uploadVisable="uploadVisable" @cancelUpload="cancelUpload" :uploadData="uploadData" @getList="getList">
</uploadSeal>
<sealManage :sealVisable="sealVisable" @cancelSeal="cancelSeal" :sealData="sealData">
</sealManage>
</div> </div>
</template> </template>
@@ -34,21 +48,25 @@
import { import {
deptIdentifyList, deptIdentifyList,
enableDept, enableDept,
selectDeptIndefiUrl selectDeptIndefiUrl,
} from "@/api/officialSeal/officialSeal.js"; } from "@/api/officialSeal/officialSeal.js";
import { getDicts } from '@/api/system/dict/data.js' import addInstitution from "./components/addInstitution";
import uploadSeal from "./components/uploadSeal";
import sealManage from "./components/sealManage";
export default { export default {
name: "paymentList", name: "paymentList",
dicts: ["case_status"], components: {
components: {}, addInstitution,
uploadSeal,
sealManage
},
data() { data() {
return { return {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
}, },
caseStatus: [],
// 遮罩层 // 遮罩层
loading: false, loading: false,
// 总条数 // 总条数
@@ -57,16 +75,41 @@ export default {
form: {}, form: {},
// 校验表单 // 校验表单
rules: {}, rules: {},
dataList: [], dataList: [1],
operateVisable: false,//新增弹窗
uploadVisable: false,//上传弹窗
sealVisable:false,//公章列表弹窗
uploadData: {},
sealData:{}
}; };
}, },
created() { created() {
getDicts("case_status").then(res => { this.getList(this.queryParams)
this.caseStatus = res.data;
this.getList(this.queryParams);
})
}, },
methods: { methods: {
// 公章管理
sealManage(row){
this.sealVisable = true;
this.sealData = row;
},
cancelSeal(){
this.sealVisable = false;
},
// 上传公章
uploadSeal(row) {
this.uploadVisable = true;
this.uploadData = row;
},
cancelFilingreview() {
this.operateVisable = false;
},
cancelUpload() {
this.uploadVisable = false;
},
// 新增部门
addInstitution() {
this.operateVisable = true;
},
// 启用认证按钮 // 启用认证按钮
changeStatus(row) { changeStatus(row) {
this.$modal.confirm('是否进行启用?') this.$modal.confirm('是否进行启用?')
+2 -2
View File
@@ -11,8 +11,8 @@ const name = process.env.VUE_APP_TITLE || '智慧仲裁管理系统' // 网页
const port = process.env.port || process.env.npm_config_port || 80 // 端口 const port = process.env.port || process.env.npm_config_port || 80 // 端口
const API = 'http://121.40.189.20:9001' //生产 // const API = 'http://121.40.189.20:9001' //生产
// const API = 'http://121.40.189.20:8001' //测试 const API = 'http://121.40.189.20:8001' //测试
// const API = 'http://192.168.3.18:9001' //B // const API = 'http://192.168.3.18:9001' //B
// const API = 'http://192.168.3.77:9001' //Q // const API = 'http://192.168.3.77:9001' //Q