Browse Source

开发盖章申请管理的分页列表页面、新增、编辑、详情页面

master
yunuo970428 3 years ago
parent
commit
3003870a9e
  1. 52
      anrui-buscenter/anrui-buscenter-ui/src/api/sealContract/sealContract.js
  2. 57
      anrui-buscenter/anrui-buscenter-ui/src/components/uploadFile/HeTongMoBanUpload.vue
  3. 80
      anrui-buscenter/anrui-buscenter-ui/src/components/uploadFile/filesUpload.vue
  4. 20
      anrui-buscenter/anrui-buscenter-ui/src/router/index.js
  5. 210
      anrui-buscenter/anrui-buscenter-ui/src/views/gaizhanggunali/gaizhangshenqingguanli/gaizhangAdd.vue
  6. 140
      anrui-buscenter/anrui-buscenter-ui/src/views/gaizhanggunali/gaizhangshenqingguanli/gaizhangInfo.vue
  7. 248
      anrui-buscenter/anrui-buscenter-ui/src/views/gaizhanggunali/gaizhangshenqingguanli/gaizhangguanli.vue
  8. 237
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/gaizhangguanliFlow/gaizhangshenqingguanli/gaizhangshenqingEdit.vue
  9. 366
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/gaizhangguanliFlow/gaizhangshenqingguanli/gaizhangshenqingInfo.vue

52
anrui-buscenter/anrui-buscenter-ui/src/api/sealContract/sealContract.js

@ -0,0 +1,52 @@
import request from '@/utils/request'
import qs from 'qs'
// 盖章申请管理分页列表
export function listPage(data) {
return request({
url: '/buscenter/v1/bussealapply/listPage',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 盖章申请管理保存(新增、编辑)
export function save(data) {
return request({
url: '/buscenter/v1/bussealapply/save',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 盖章申请管理分页列表删除
export function delBySids(data) {
return request({
url: '/buscenter/v1/bussealapply/delBySids?sids=' + data,
method: 'DELETE',
data: qs.stringify(data)
})
}
// 盖章申请管理根据Sid获取一条记录
export function fetchDetailsBySid(data) {
return request({
url: '/buscenter/v1/bussealapply/fetchDetailsBySid/' + data,
method: 'get'
})
}
// 数据字典
export function dataDictionary(data) {
return request({
url: '/portal/v1/dictcommons/typeValues',
method: 'get',
params: data
})
}

57
anrui-buscenter/anrui-buscenter-ui/src/components/uploadFile/HeTongMoBanUpload.vue

@ -0,0 +1,57 @@
<template>
<div>
<el-upload class="avatar-uploader" :action="uploadFile" :accept="accept" :file-list="files" :limit="limit" :on-remove="removeImage" :on-success="uploadImgSuccess_FuJian">
<el-button size="small" type="primary">选择文件</el-button>
</el-upload>
</div>
</template>
<script>
import { uploadFile } from '@/api/jichuxinxi/file.js'
export default {
props: {
accept: {
type: String,
default: '.doc, .docx, .ftl'
}
},
data() {
return {
accessToken: null,
uploadFile: uploadFile,
files: [],
limit: 1
}
},
methods: {
show(row) {
this.files.push({
name: row
})
},
// --
uploadImgSuccess_FuJian(response, file) {
console.log('您选择的file:', file)
if (file.response.code === '200') {
this.files.push({
name: file.response.data.sourceFileName,
url: file.response.data.fullUrl,
size: file.response.data.size
})
this.$emit('fileAdd', this.files)
}
},
removeImage(file) {
this.files.splice(this.files.indexOf(file), 1)
const imgFiles = []
this.files.forEach((o) => {
imgFiles.push(o.url)
})
this.$emit('fileDelete', this.files)
}
}
}
</script>
<style lang="scss" scoped></style>

80
anrui-buscenter/anrui-buscenter-ui/src/components/uploadFile/filesUpload.vue

@ -0,0 +1,80 @@
<template>
<div>
<el-upload class="upload-demo" action="" :data="datas" :accept="accept" :on-change="handleChange" :on-remove="handleRemove" :file-list="fileList_FuJian" :http-request="uploadSectionFile">
<el-button size="small" type="primary">选择文件</el-button>
<div slot="tip" v-show="reminder == true" class="el-upload__tip">单个文件大小不允许超过100M,支持上传文件类型: {{ accept }}</div>
</el-upload>
</div>
</template>
<script>
import {upload, uploadFile} from '@/api/business/beiAn'
export default {
props: {
placeholder: {
type: String,
default: ''
},
//
accept: {
type: String,
default: ''
},
//
reminder: {
type: Boolean,
default: true
}
},
data() {
return {
datas: null,
name: null,
accessToken: {},
fileList_FuJian: [],
enclosure: '',
file_add: '',
idsz: '',
file_catch: '',
files_list: []
}
},
methods: {
show(val) {
console.log(val)
this.fileList_FuJian = val
},
handleChange(file, fileList) {
},
handleRemove(file, fileList) {
this.$emit("handleRemove", file)
},
// FrontPhoto
uploadSectionFile(params) {
const file = params.file
//
const form = new FormData()
//
form.append('file', file)
//
upload(form).then((res) => {
//
if (res.code === '200') {
this.$emit('handleSuccess', res)
}
if (res.msg == '操作成功') {
this.$message({
message: '上传成功!',
type: 'success'
})
}
}).catch((err) => {
console.log(err)
// ,
})
}
}
}
</script>
<style lang="scss" scoped></style>

20
anrui-buscenter/anrui-buscenter-ui/src/router/index.js

@ -490,6 +490,26 @@ export const constantRoutes = [{
}
]
},
// 车型查询
{
path: '/gaizhangguanli',
component: Layout,
redirect: '/gaizhangguanli',
meta: {
title: '车型查询'
},
children: [
{
path: '/gaizhangguanli/gaizhangshenqingguanli',
component: () =>
import('@/views/gaizhanggunali/gaizhangshenqingguanli/gaizhangguanli.vue'),
name: 'gaizhangguanli',
meta: {
title: '盖章申请管理'
}
}
]
},
// 流程所需页面路径
// 订金收取审批、发起人详情页面

210
anrui-buscenter/anrui-buscenter-ui/src/views/gaizhanggunali/gaizhangshenqingguanli/gaizhangAdd.vue

@ -0,0 +1,210 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="handsave()">保存
</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submit()">提交
</el-button>
<el-button type="info" size="small" @click="handleReturn()">返回</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top" label-width="100px" class="formadd">
<div class="wlInfo"><span>盖章申请单</span></div>
<el-row>
<el-col :span="6" class="tleftb">
<el-form-item><span slot="label">申请人</span></el-form-item>
</el-col>
<el-col :span="6" class="trightb">
<el-form-item>
<el-input v-model="formobj.applyName" placeholder="" style="width: 50%" clearable/>
</el-form-item>
</el-col>
<el-col :span="6" class="tleftb">
<el-form-item><span slot="label">盖章日期</span></el-form-item>
</el-col>
<el-col :span="6" class="trightb">
<el-form-item>
<el-date-picker value-format="yyyy-MM-dd" v-model="formobj.sealDate" clearable style="width: 50%" type="date" placeholder="请选择"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<el-form-item><span>盖章类型</span></el-form-item>
</el-col>
<el-col :span="6" class="trightb">
<el-select v-model="formobj.sealTypeValue" style="width: 50%" filterable @change="changeSealType" placeholder="请选择">
<el-option v-for="item in sealType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"/>
</el-select>
</el-col>
<el-col :span="6" class="tleftb">
<el-form-item><span>盖章个数</span></el-form-item>
</el-col>
<el-col :span="6" class="trightb">
<el-form-item>
<el-input v-model="formobj.sealNum" placeholder="" style="width: 50%"clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<el-form-item><span>文章名称或盖章事由</span></el-form-item>
</el-col>
<el-col :span="18" class="trightb">
<el-form-item>
<el-input v-model="formobj.fileNameOrSealReason" placeholder="" type="textarea" :autosize="{ minRows: 2, maxRows: 4}" style="width: 85%" resize="none" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<el-form-item><span>盖章文件</span></el-form-item>
</el-col>
<el-col :span="18" class="trightb">
<el-form-item>
<Upload style="float:left;" :accept="accept" ref="divUpload" :reminder="false" @handleSuccess="filesAdd" @handleRemove="filesRemove" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</template>
<script>
import { dataDictionary, fetchDetailsBySid, save } from '@/api/sealContract/sealContract.js'
import Upload from '@/components/uploadFile/filesUpload' //
export default {
name: 'gaizhangAdd',
components: {
Upload
},
data() {
return {
viewTitle: '',
sealType_list: [],
list1: [],
accept: '.jpg,.jpeg,.png,.JPG,.JPEG',
formobj: {
sid: '',
applyName: window.sessionStorage.getItem('name'),
sealDate: '',
sealTypeValue: '', //
sealTypekey: '',
sealNum: '', //
fileNameOrSealReason: '', //
sealFileUrl: '',
useOrgSid: '',
busSealApplyAppendices: [] //
},
rules: {},
submitdisabled: false
}
},
created() {
this.DataDictionary()
},
methods: {
DataDictionary() {
dataDictionary({ type: 'sealType' }).then((res) => {
if (res.code === '200') {
this.sealType_list = res.data
}
})
},
showAdd() {
this.viewTitle = '【新建】盖章申请'
},
showEdit(row) {
this.viewTitle = '【编辑】盖章申请'
fetchDetailsBySid(row.sid).then(resp => {
if (resp.code === '200') {
this.formobj = resp.data
if (this.formobj.busSealApplyAppendices.length > 0) {
for (var i = 0; i < this.formobj.busSealApplyAppendices.length; i++) {
this.list1.push({
name: this.formobj.busSealApplyAppendices[i].fileName
}
)
}
}
console.log(this.formobj.busSealApplyAppendices)
this.$nextTick(() => {
this.$refs['divUpload'].show(this.list1)
})
}
}).catch(e => {
this.formobj = row
})
},
changeSealType(value) {
const choosetItem = this.sealType_list.filter((item) => item.dictValue === value)
this.formobj.sealTypekey = choosetItem[0].dictKey
},
filesAdd(item) {
var arrayList = []
console.log(item)
arrayList = item.data
this.formobj.busSealApplyAppendices.push({
createBySid: window.sessionStorage.getItem('staffSid'),
name: window.sessionStorage.getItem('name'),
fileName: arrayList.sourceFileName.substr(0, arrayList.sourceFileName.lastIndexOf('.')),
fileType: arrayList.sourceFileName.substr(arrayList.sourceFileName.lastIndexOf('.')),
linkSid: '',
attachType: '',
fileSize: arrayList.size,
filePath: arrayList.fullUrl
})
},
filesRemove(item) {
this.formobj.busSealApplyAppendices.forEach((e, index) => {
if (e.filePath === item) {
this.formobj.sealFileList.splice(index, 1)
}
})
},
handsave() {
// this.submitdisabled = true
if (this.formobj.busSealApplyAppendices.length > 0) {
var sealFileUrl_list = []
for (var i = 0; i < this.formobj.busSealApplyAppendices.length; i++) {
sealFileUrl_list.push(this.formobj.busSealApplyAppendices[i].filePath)
}
this.formobj.sealFileUrl = sealFileUrl_list.join(',')
}
console.log(this.formobj)
save(this.formobj).then(resp => {
this.submitdisabled = false
this.$message({ showClose: true, type: 'success', message: resp.msg })
this.handleReturn()
}).catch(() => {
this.submitdisabled = false
})
},
handleReturn() {
this.$emit('doback')
}
}
}
</script>
<style scoped>
.wlInfo {
padding: 60px 0;
font-size: 24px;
border-width: 0 0 1px 0;
border-style: solid;
border-color: #EDF1F7;
font-weight: bold;
display: flex;
justify-content: center;
align-items: center;
}
.tleftb {
text-align: right;
}
</style>

140
anrui-buscenter/anrui-buscenter-ui/src/views/gaizhanggunali/gaizhangshenqingguanli/gaizhangInfo.vue

@ -0,0 +1,140 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="info" size="small" @click="handleReturn()">返回</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top" label-width="100px" class="formadd">
<div class="wlInfo"><span>盖章申请单</span></div>
<el-row>
<el-col :span="6" class="tleftb">
<el-form-item><span slot="label">申请人</span></el-form-item>
</el-col>
<el-col :span="6" class="trightb">
<el-form-item>
<span>{{ formobj.applyName }}</span>
</el-form-item>
</el-col>
<el-col :span="6" class="tleftb">
<el-form-item><span slot="label">盖章日期</span></el-form-item>
</el-col>
<el-col :span="6" class="trightb">
<el-form-item>
<span>{{ formobj.sealDate }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<el-form-item><span>盖章类型</span></el-form-item>
</el-col>
<el-col :span="6" class="trightb">
<span>{{ formobj.sealTypeValue }}</span>
</el-col>
<el-col :span="6" class="tleftb">
<el-form-item><span>盖章个数</span></el-form-item>
</el-col>
<el-col :span="6" class="trightb">
<el-form-item>
<span>{{ formobj.sealNum }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<el-form-item><span>文章名称或盖章事由</span></el-form-item>
</el-col>
<el-col :span="18" class="trightb">
<el-form-item>
<span>{{ formobj.fileNameOrSealReason }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<el-form-item><span>盖章文件</span></el-form-item>
</el-col>
<el-col :span="18" class="trightb">
<el-form-item>
<span v-for="(item, index) in list1" :key="index">
<el-link :underline="false" :href="item.path" target="_blank">{{ item.name }}</el-link>
</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</template>
<script>
import { fetchDetailsBySid } from '@/api/sealContract/sealContract.js'
export default {
name: 'gaizhangInfo',
data() {
return {
viewTitle: '',
list1: [],
formobj: {
sid: '',
applyName: window.sessionStorage.getItem('name'),
sealDate: '',
sealTypeValue: '', //
sealTypekey: '',
sealNum: '', //
fileNameOrSealReason: '', //
sealFileUrl: '',
useOrgSid: '',
busSealApplyAppendices: [] //
},
rules: {},
submitdisabled: false
}
},
methods: {
showInfo(row) {
this.viewTitle = '盖章申请单详情'
fetchDetailsBySid(row.sid).then(resp => {
if (resp.code === '200') {
this.formobj = resp.data
if (this.formobj.busSealApplyAppendices.length > 0) {
this.formobj.busSealApplyAppendices.forEach((e) => {
this.list1.push({
name: e.fileName,
path: e.filePath
})
})
}
}
}).catch(e => {
this.formobj = row
})
},
handleReturn() {
this.$emit('doback')
}
}
}
</script>
<style scoped>
.wlInfo {
padding: 60px 0;
font-size: 24px;
border-width: 0 0 1px 0;
border-style: solid;
border-color: #EDF1F7;
font-weight: bold;
display: flex;
justify-content: center;
align-items: center;
}
.tleftb {
text-align: right;
}
</style>

248
anrui-buscenter/anrui-buscenter-ui/src/views/gaizhanggunali/gaizhangshenqingguanli/gaizhangguanli.vue

@ -0,0 +1,248 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>盖章申请管理</div>
<div>
<el-button type="primary" size="small" @click="handleCreate()">新增</el-button>
<el-button type="danger" size="small" @click="handleDelete()">删除</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="webcon">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-row>
<el-form-item label="文件名称:" class="searchlist">
<el-input v-model="listQuery.params.fileNameOrSealReason" placeholder="" clearable style="width: 150px"/>
</el-form-item>
<el-form-item label="盖章日期:" class="searchlist">
<el-date-picker value-format="yyyy-MM-dd" v-model="listQuery.params.sealStartDate" clearable style="width: 160px" type="date" placeholder="开始日期"/>
<div class="line"></div>
<el-date-picker value-format="yyyy-MM-dd" v-model="listQuery.params.sealEndDate" clearable style="width: 160px" type="date" placeholder="结束日期"/>
</el-form-item>
</el-row>
<div class="searchbtns">
<el-button type="primary" @click="handleFilter">查询</el-button>
<el-button type="primary" @click="handReset">重置</el-button>
</div>
</el-form>
</div>
</div>
<div>
<div class="listtop">
<div class="tit">盖章申请列表</div>
<pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="50"/>
<el-table-column width="80px" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="handUpdate(scope.row)">办理</el-button>
<el-button type="primary" size="small" @click="handLook(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column label="状态" align="center">
<template slot-scope="scope">
<span>{{ scope.row.applyName }}</span>
</template>
</el-table-column>
<el-table-column label="申请人" align="center">
<template slot-scope="scope">
<span>{{ scope.row.applyName }}</span>
</template>
</el-table-column>
<el-table-column label="盖章日期" align="center">
<template slot-scope="scope">
<span>{{ scope.row.sealDate }}</span>
</template>
</el-table-column>
<el-table-column label="盖章类型" align="center">
<template slot-scope="scope">
<span>{{ scope.row.sealTypeValue }}</span>
</template>
</el-table-column>
<el-table-column label="文件名称" align="center">
<template slot-scope="scope">
<span>{{ scope.row.fileNameOrSealReason }}</span>
</template>
</el-table-column>
</el-table>
</div>
<div class="pages">
<!-- 翻页 -->
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
</div>
</div>
</div>
<gaizhangAdd v-show="viewState == 2 || viewState == 3" ref="divAdd" @doback="resetState"/>
<gaizhangInfo v-show="viewState == 4" ref="divInfo" @doback="resetState"/>
</div>
</template>
<script>
import { listPage, delBySids } from '@/api/sealContract/sealContract.js'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import gaizhangAdd from './gaizhangAdd.vue'
import gaizhangInfo from './gaizhangInfo.vue'
export default {
name: 'gaizhangguanli',
components: {
Pagination,
pageye,
gaizhangAdd,
gaizhangInfo
},
data() {
return {
isSearchShow: false,
searchxianshitit: '隐藏查询条件',
viewState: 1,
tableKey: 0,
list: [],
sids: [],
listLoading: false,
listQuery: {
current: 1,
size: 10,
params: {
fileNameOrSealReason: '',
sealStartDate: '',
sealEndDate: '',
userSid: window.sessionStorage.getItem('staffSid')
},
total: 0
}
}
},
created() {
this.getList()
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
handleSelectionChange(row) {
const aa = []
row.forEach((element) => {
aa.push(element.sid)
})
this.sids = aa
console.log('勾选记录', this.sids)
},
//
getList() {
this.listLoading = true
listPage(this.listQuery).then((response) => {
this.listLoading = false
if (response.code === '200') {
this.listQuery.total = response.data.total
this.list = response.data.records
}
})
},
//
handleFilter() {
this.getList()
},
handReset() {
this.listQuery = {
current: 1,
size: 10,
params: {
fileNameOrSealReason: '',
sealStartDate: '',
sealEndDate: '',
userSid: window.sessionStorage.getItem('staffSid')
},
total: 0
}
this.getList()
},
handleCreate() {
this.viewState = 2
this.$refs['divAdd'].showAdd()
},
handUpdate(row) {
this.viewState = 3
this.$refs['divAdd'].showEdit(row)
},
handlook(row) {
this.viewState = 4
this.$refs['divInfo'].showInfo(row)
},
handleDelete() {
if (this.sids.length) {
delBySids(this.sids).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '删除成功',
type: 'success',
duration: 2000
})
this.getList()
} else {
this.$notify({
title: '删除失败',
message: response.msg,
type: 'error'
})
}
})
} else {
this.$notify({
title: '提示',
message: '没有选择信息!',
type: 'error',
duration: 2000
})
return
}
},
resetState() {
this.viewState = 1
this.handReset()
}
}
}
</script>
<style scoped>
.listtop {
display: flex;
justify-content: space-between;
align-items: center;
border: 1px solid #dfe4ed;
height: 40px;
}
.tit {
margin-bottom: -10px;
}
.pagination {
margin-bottom: -10px;
}
.line {
display: inline-block;
margin: 0px 15px;
}
</style>

237
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/gaizhangguanliFlow/gaizhangshenqingguanli/gaizhangshenqingEdit.vue

@ -0,0 +1,237 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="handsave()">保存
</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submit()">提交
</el-button>
<el-button type="info" size="small" @click="handleReturn()">返回</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top" label-width="100px" class="formadd">
<div class="wlInfo"><span>盖章申请单</span></div>
<el-row>
<el-col :span="6" class="tleftb">
<el-form-item><span slot="label">申请人</span></el-form-item>
</el-col>
<el-col :span="6" class="trightb">
<el-form-item>
<el-input v-model="formobj.applyName" placeholder="" style="width: 50%" clearable/>
</el-form-item>
</el-col>
<el-col :span="6" class="tleftb">
<el-form-item><span slot="label">盖章日期</span></el-form-item>
</el-col>
<el-col :span="6" class="trightb">
<el-form-item>
<el-date-picker value-format="yyyy-MM-dd" v-model="formobj.sealDate" clearable style="width: 50%" type="date" placeholder="请选择"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<el-form-item><span>盖章类型</span></el-form-item>
</el-col>
<el-col :span="6" class="trightb">
<el-select v-model="formobj.sealTypeValue" style="width: 50%" filterable @change="changeSealType" placeholder="请选择">
<el-option v-for="item in sealType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"/>
</el-select>
</el-col>
<el-col :span="6" class="tleftb">
<el-form-item><span>盖章个数</span></el-form-item>
</el-col>
<el-col :span="6" class="trightb">
<el-form-item>
<el-input v-model="formobj.sealNum" placeholder="" style="width: 50%"clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<el-form-item><span>文章名称或盖章事由</span></el-form-item>
</el-col>
<el-col :span="18" class="trightb">
<el-form-item>
<el-input v-model="formobj.fileNameOrSealReason" placeholder="" type="textarea" :autosize="{ minRows: 2, maxRows: 4}" style="width: 85%" resize="none" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<el-form-item><span>盖章文件</span></el-form-item>
</el-col>
<el-col :span="18" class="trightb">
<el-form-item>
<Upload style="float:left;" :accept="accept" ref="divUpload" :reminder="false" @handleSuccess="filesAdd" @handleRemove="filesRemove" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</template>
<script>
import { dataDictionary, fetchDetailsBySid, save } from '@/api/sealContract/sealContract.js'
import Upload from '@/components/uploadFile/filesUpload' //
export default {
name: 'gaizhangAdd',
components: {
Upload
},
data() {
return {
viewTitle: '',
sealType_list: [],
list1: [],
accept: '.jpg,.jpeg,.png,.JPG,.JPEG',
formobj: {
sid: '',
applyName: window.sessionStorage.getItem('name'),
sealDate: '',
sealTypeValue: '', //
sealTypekey: '',
sealNum: '', //
fileNameOrSealReason: '', //
sealFileUrl: '',
useOrgSid: '',
businessSid: '', // sid
instanceId: '', // id
taskId: '', // id
busSealApplyAppendices: [] //
},
rules: {},
submitdisabled: false
}
},
created() {
this.DataDictionary()
console.log('url:' + window.location.href)
var a = window.location.href.indexOf('?') + 1 // ?
var b = window.location.href.indexOf('#data') // #data
const info = window.location.href.slice(a, b)
var sid = info.substr(info.indexOf('=') + 1)
this.showInfo(sid)
// ===
var one = window.location.href.lastIndexOf('#') + 1
var two = window.location.href.lastIndexOf('}') + 1
const data = decodeURI(window.location.href.slice(one, two)) // urlunescape()web,使
var tar = data.substr(data.indexOf('=') + 1)
const obj = JSON.parse(tar)
console.log('iframe页面获取的obj:', obj)
//
this.formobj.businessSid = sid
this.formobj.instanceId = obj.instanceId
this.formobj.taskId = obj.taskId
},
methods: {
DataDictionary() {
dataDictionary({ type: 'sealType' }).then((res) => {
if (res.code === '200') {
this.sealType_list = res.data
}
})
},
showAdd() {
this.viewTitle = '【新建】盖章申请'
},
showInfo(sid) {
this.viewTitle = '【编辑】盖章申请'
fetchDetailsBySid(sid).then(resp => {
if (resp.code === '200') {
this.formobj.sid = sid
this.formobj.sealDate = resp.data.sealDate
this.formobj.sealTypeValue = resp.data.sealTypeValue
this.formobj.sealTypekey = resp.data.sealTypekey
this.formobj.sealNum = resp.data.sealNum
this.formobj.fileNameOrSealReason = resp.data.fileNameOrSealReason
this.formobj.sealFileUrl = resp.data.sealFileUrl
this.formobj.busSealApplyAppendices = resp.data.busSealApplyAppendices
if (this.formobj.busSealApplyAppendices.length > 0) {
for (var i = 0; i < this.formobj.busSealApplyAppendices.length; i++) {
this.list1.push({
name: this.formobj.busSealApplyAppendices[i].fileName
}
)
}
}
console.log(this.formobj.busSealApplyAppendices)
this.$nextTick(() => {
this.$refs['divUpload'].show(this.list1)
})
}
}).catch(e => {
this.formobj = row
})
},
changeSealType(value) {
const choosetItem = this.sealType_list.filter((item) => item.dictValue === value)
this.formobj.sealTypekey = choosetItem[0].dictKey
},
filesAdd(item) {
var arrayList = []
console.log(item)
arrayList = item.data
this.formobj.busSealApplyAppendices.push({
createBySid: window.sessionStorage.getItem('staffSid'),
name: window.sessionStorage.getItem('name'),
fileName: arrayList.sourceFileName.substr(0, arrayList.sourceFileName.lastIndexOf('.')),
fileType: arrayList.sourceFileName.substr(arrayList.sourceFileName.lastIndexOf('.')),
linkSid: '',
attachType: '',
fileSize: arrayList.size,
filePath: arrayList.fullUrl
})
},
filesRemove(item) {
this.formobj.busSealApplyAppendices.forEach((e, index) => {
if (e.filePath === item) {
this.formobj.sealFileList.splice(index, 1)
}
})
},
handsave() {
// this.submitdisabled = true
if (this.formobj.busSealApplyAppendices.length > 0) {
var sealFileUrl_list = []
for (var i = 0; i < this.formobj.busSealApplyAppendices.length; i++) {
sealFileUrl_list.push(this.formobj.busSealApplyAppendices[i].filePath)
}
this.formobj.sealFileUrl = sealFileUrl_list.join(',')
}
console.log(this.formobj)
save(this.formobj).then(resp => {
this.submitdisabled = false
this.$message({ showClose: true, type: 'success', message: resp.msg })
this.handleReturn()
}).catch(() => {
this.submitdisabled = false
})
},
handleReturn() {
this.$emit('doback')
}
}
}
</script>
<style scoped>
.wlInfo {
padding: 60px 0;
font-size: 24px;
border-width: 0 0 1px 0;
border-style: solid;
border-color: #EDF1F7;
font-weight: bold;
display: flex;
justify-content: center;
align-items: center;
}
.tleftb {
text-align: right;
}
</style>

366
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/gaizhangguanliFlow/gaizhangshenqingguanli/gaizhangshenqingInfo.vue

@ -0,0 +1,366 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button v-show="transactState=='00'" type="primary" @click="openAgree"> </el-button>
<el-button v-show="transactState=='00'" type="danger" @click="openReject"> </el-button>
<el-button v-show="transactState=='00'" type="danger" @click="openStop"> </el-button>
<el-button v-show="transactState=='01'" type="danger" @click="openRevoke"> </el-button>
<el-button type="info"> </el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top" label-width="100px" class="formadd">
<div class="wlInfo"><span>盖章申请单</span></div>
<el-row>
<el-col :span="6" class="tleftb">
<el-form-item><span slot="label">申请人</span></el-form-item>
</el-col>
<el-col :span="6" class="trightb">
<el-form-item>
<span>{{ formobj.applyName }}</span>
</el-form-item>
</el-col>
<el-col :span="6" class="tleftb">
<el-form-item><span slot="label">盖章日期</span></el-form-item>
</el-col>
<el-col :span="6" class="trightb">
<el-form-item>
<span>{{ formobj.sealDate }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<el-form-item><span>盖章类型</span></el-form-item>
</el-col>
<el-col :span="6" class="trightb">
<span>{{ formobj.sealTypeValue }}</span>
</el-col>
<el-col :span="6" class="tleftb">
<el-form-item><span>盖章个数</span></el-form-item>
</el-col>
<el-col :span="6" class="trightb">
<el-form-item>
<span>{{ formobj.sealNum }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<el-form-item><span>文章名称或盖章事由</span></el-form-item>
</el-col>
<el-col :span="18" class="trightb">
<el-form-item>
<span>{{ formobj.fileNameOrSealReason }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<el-form-item><span>盖章文件</span></el-form-item>
</el-col>
<el-col :span="18" class="trightb">
<el-form-item>
<span v-for="(item, index) in list1" :key="index">
<el-link :underline="false" :href="item.path" target="_blank">{{ item.name }}</el-link>
</span>
</el-form-item>
</el-col>
</el-row>
<div v-show="transactState=='00'">
<el-form :model="dialogList" :inline="true" label-width="80px">
<el-row>
<el-col>
<el-form-item label="审批意见">
<el-input v-model="dialogList.comment" type="textarea" maxlength="20" placeholder="请输入审批意见" class="inputType" clearable/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</el-form>
</div>
</div>
</template>
<script>
import { fetchDetailsBySid } from '@/api/sealContract/sealContract.js'
export default {
name: 'gaizhangshenqingInfo',
data() {
return {
viewTitle: '',
list1: [],
formobj: {
sid: '',
applyName: window.sessionStorage.getItem('name'),
sealDate: '',
sealTypeValue: '', //
sealTypekey: '',
sealNum: '', //
fileNameOrSealReason: '', //
sealFileUrl: '',
useOrgSid: '',
busSealApplyAppendices: [] //
},
dialogList: {
comment: ''
},
transactState: '', //
//
agreeList: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
userSid: window.sessionStorage.getItem('userSid')
},
//
regectList: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
userSid: window.sessionStorage.getItem('userSid')
},
//
stopList: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
userSid: window.sessionStorage.getItem('userSid')
},
//
revokeList: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
userSid: window.sessionStorage.getItem('userSid')
},
rules: {},
submitdisabled: false
}
},
created() {
console.log('url:' + window.location.href)
var a = window.location.href.indexOf('?') + 1 // ?
var b = window.location.href.indexOf('#data') // #data
const info = window.location.href.slice(a, b)
var sid = info.substr(info.indexOf('=') + 1)
this.showInfo(sid)
// ===
var one = window.location.href.lastIndexOf('#') + 1
var two = window.location.href.lastIndexOf('}') + 1
const data = decodeURI(window.location.href.slice(one, two)) // urlunescape()web,使
var tar = data.substr(data.indexOf('=') + 1)
const obj = JSON.parse(tar)
console.log('iframe页面获取的obj:', obj)
//
this.agreeList.businessSid = sid
this.agreeList.instanceId = obj.instanceId
this.agreeList.taskId = obj.taskId
//
this.regectList.businessSid = sid
this.regectList.instanceId = obj.instanceId
this.regectList.taskId = obj.taskId
//
this.stopList.businessSid = sid
this.stopList.instanceId = obj.instanceId
this.stopList.taskId = obj.taskId
//
this.revokeList.businessSid = sid
this.revokeList.instanceId = obj.instanceId
this.revokeList.taskId = obj.taskId
//
this.transactState = obj.transactState
},
methods: {
showInfo(row) {
this.viewTitle = '盖章申请单详情'
fetchDetailsBySid(row.sid).then(resp => {
if (resp.code === '200') {
this.formobj = resp.data
if (this.formobj.busSealApplyAppendices.length > 0) {
this.formobj.busSealApplyAppendices.forEach((e) => {
this.list1.push({
name: e.fileName,
path: e.filePath
})
})
}
}
}).catch(e => {
this.formobj = row
})
},
//
openAgree() {
this.$confirm('是否确认执行同意操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleAgree()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消同意'
})
})
},
//
openReject() {
this.$confirm('是否确认执行驳回操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleReject()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消驳回'
})
})
},
//
openStop() {
this.$confirm('是否确认执行终止操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleStop()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消终止'
})
})
},
/** 确认撤回任务 */
openRevoke() {
this.$confirm('是否确认执行撤回操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleRevoke()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消撤回'
})
})
},
/** 同意任务 */
handleAgree() {
this.agreeList.comment = this.dialogList.comment
req.businessAgree(this.agreeList).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
this.refreshIt()
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000
})
}
})
},
/** 终止任务 */
handleStop() {
this.stopList.comment = this.dialogList.comment
req.breakTask(this.stopList).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000
})
}
})
},
/** 驳回任务 */
handleReject() {
this.regectList.comment = this.dialogList.comment
req.rejectTask(this.regectList).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000
})
}
})
},
/** 撤回任务 */
handleRevoke() {
this.revokeList.comment = this.dialogList.comment
req.revokeTask(this.revokeList).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000
})
}
})
}
}
}
</script>
<style scoped>
.wlInfo {
padding: 60px 0;
font-size: 24px;
border-width: 0 0 1px 0;
border-style: solid;
border-color: #EDF1F7;
font-weight: bold;
display: flex;
justify-content: center;
align-items: center;
}
.tleftb {
text-align: right;
}
</style>
Loading…
Cancel
Save