Merge remote-tracking branch 'origin/liujun-2024-02-04-相关方新流程上线后新提需求' into 2024年2月22日v1.0.55
commit
adafcfd115
|
@ -0,0 +1,16 @@
|
|||
export default async function useDownloadFile(url) {
|
||||
if (!url) throw new Error('没有下载地址')
|
||||
fetch(config.fileUrl + url)
|
||||
.then((res) => res.blob())
|
||||
.then((blob) => {
|
||||
const a = document.createElement('a')
|
||||
document.body.appendChild(a)
|
||||
a.style.display = 'none'
|
||||
const url = window.URL.createObjectURL(blob)
|
||||
a.href = url
|
||||
a.download = url.substring(url.lastIndexOf('/') + 1)
|
||||
a.click()
|
||||
document.body.removeChild(a)
|
||||
window.URL.revokeObjectURL(url)
|
||||
})
|
||||
}
|
|
@ -317,6 +317,7 @@ export default {
|
|||
axios.get(config.httpurl + '/classMessage/excel?CLASS_MESSAGE_ID=' + id, {
|
||||
responseType: 'blob'
|
||||
}).then(res => {
|
||||
setTimeout(() => {
|
||||
const blob = new Blob([res.data], { type: 'application/vnd.ms-excel' })
|
||||
const downloadElement = document.createElement('a')
|
||||
const href = window.URL.createObjectURL(blob)
|
||||
|
@ -330,6 +331,7 @@ export default {
|
|||
this.$emit('getResult', '')
|
||||
loading.close()
|
||||
this.close()
|
||||
}, 2000)
|
||||
}).catch((e) => {
|
||||
console.log(e)
|
||||
loading.close()
|
||||
|
@ -362,6 +364,7 @@ export default {
|
|||
})
|
||||
this.visible = false
|
||||
this.loading = false
|
||||
this.close()
|
||||
this.$emit('getResult', '')
|
||||
}).catch((e) => {
|
||||
this.loading = false
|
||||
|
|
|
@ -224,7 +224,7 @@ export default {
|
|||
varList: [],
|
||||
treeData: [],
|
||||
hiddenPartList: [],
|
||||
hiddenTypeList: [],//隐患类型
|
||||
hiddenTypeList: [], // 隐患类型
|
||||
hiddenlevelList: [
|
||||
{
|
||||
value: 'hiddenLevel1004',
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -22,9 +22,9 @@
|
|||
:options="treeData"
|
||||
:props="defaultProps"
|
||||
v-model="form.INSPECTED_DEPARTMENT_ID"
|
||||
@change="changeCurrentDeptId(form.INSPECTED_DEPARTMENT_ID)"
|
||||
placeholder="请选择被检查单位"
|
||||
style="width: 300px" />
|
||||
style="width: 300px"
|
||||
@change="changeCurrentDeptId(form.INSPECTED_DEPARTMENT_ID)" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
|
@ -60,7 +60,7 @@
|
|||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="检查开始时间" prop="INSPECTION_TIME_START">
|
||||
<el-date-picker v-model="form.INSPECTION_TIME_START" format="yyyy-MM-dd HH:mm" v-on:blur="checkTime(form.INSPECTION_TIME_START)" value-format="yyyy-MM-dd HH:mm" type="datetime" placeholder="选择检查开始时间"/>
|
||||
<el-date-picker v-model="form.INSPECTION_TIME_START" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm" type="datetime" placeholder="选择检查开始时间" @blur="checkTime(form.INSPECTION_TIME_START)"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
|
@ -70,7 +70,7 @@
|
|||
</el-col>
|
||||
</el-row>
|
||||
<el-divider v-if="CURRENT_INSPECTED_DEPARTMENT_ID !== null && CURRENT_INSPECTED_DEPARTMENT_ID !== '' " content-position="left">检查人员 <el-button type="primary" size="mini" @click="addInspector">添加</el-button></el-divider>
|
||||
<el-form-item v-if="CURRENT_INSPECTED_DEPARTMENT_ID !== null && CURRENT_INSPECTED_DEPARTMENT_ID !== '' " v-for="(item,index) in form.inspectorList" :key="index + (Math.random() + '').replace('.', '')" :label="(index+1)+'.'">
|
||||
<el-form-item v-for="(item,index) in form.inspectorList" v-if="CURRENT_INSPECTED_DEPARTMENT_ID !== null && CURRENT_INSPECTED_DEPARTMENT_ID !== '' " :key="index + (Math.random() + '').replace('.', '')" :label="(index+1)+'.'">
|
||||
<div class="uo-flex">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
|
@ -350,7 +350,7 @@ export default {
|
|||
},
|
||||
pd: [],
|
||||
switchInspectionType: 'select',
|
||||
CURRENT_INSPECTED_DEPARTMENT_ID: '', //当前被检查单位
|
||||
CURRENT_INSPECTED_DEPARTMENT_ID: '', // 当前被检查单位
|
||||
form: {
|
||||
INSPECTION_SUBJECT: '', // 检查标题
|
||||
INSPECTION_SOURCE: '4', // 检查来源(4-监管端 5-企业端)
|
||||
|
@ -473,9 +473,9 @@ export default {
|
|||
})
|
||||
},
|
||||
methods: {
|
||||
checkTime(data){
|
||||
if (Date.parse(data)>new Date().getTime()){
|
||||
this.$message.error("检查开始时间需小于当前时间")
|
||||
checkTime(data) {
|
||||
if (Date.parse(data) > new Date().getTime()) {
|
||||
this.$message.error('检查开始时间需小于当前时间')
|
||||
this.$refs['form'].resetFields()
|
||||
}
|
||||
},
|
||||
|
@ -507,7 +507,7 @@ export default {
|
|||
this.form.inspectorList.push({ INSPECTION_INSPECTOR_ID: '', INSPECTION_DEPARTMENT_ID: '', INSPECTION_USER_ID: '', USER_SIDE: '' })
|
||||
this.INSPECTOR_List.push([])
|
||||
},
|
||||
updateInspecteDept(id,i,item) {
|
||||
updateInspecteDept(id, i, item) {
|
||||
// 获取人员列表
|
||||
if (id) {
|
||||
requestFN(
|
||||
|
@ -517,12 +517,12 @@ export default {
|
|||
id: id
|
||||
}
|
||||
).then((data) => {
|
||||
if (data.message!=null) {
|
||||
if (data.message != null) {
|
||||
this.INSPECTION_DEPARTMENT_ID = ''
|
||||
this.INSPECTOR_List = []
|
||||
this.INSPECTION_USER_ID = ''
|
||||
this.$message.error(data.message)
|
||||
}else {
|
||||
} else {
|
||||
// 获取人员列表
|
||||
if (id) {
|
||||
requestFN(
|
||||
|
|
|
@ -50,22 +50,22 @@
|
|||
<el-dialog :visible.sync="dialogFormEdit" :title="dialogType==='edit'?'修改':'新增'" width="600px">
|
||||
<el-form ref="form" :rules="rules" :model="form" label-width="110px" style="width: 500px;">
|
||||
<el-form-item label="菜单名称" prop="MENU_NAME">
|
||||
<el-input ref="MENU_NAME" id="MENU_NAME" v-model="form.MENU_NAME" maxlength="255" placeholder="这里输入菜单名称..." title="菜单名称"/>
|
||||
<el-input id="MENU_NAME" ref="MENU_NAME" v-model="form.MENU_NAME" maxlength="255" placeholder="这里输入菜单名称..." title="菜单名称"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="菜单地址" prop="MENU_URL">
|
||||
<el-input ref="MENU_URL" id="MENU_URL" v-model="form.MENU_URL" maxlength="255" placeholder="这里输入菜单地址..." title="菜单地址"/>
|
||||
<el-input id="MENU_URL" ref="MENU_URL" v-model="form.MENU_URL" maxlength="255" placeholder="这里输入菜单地址..." title="菜单地址"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="父节点id" prop="PARENT_ID">
|
||||
<el-input ref="PARENT_ID" id="PARENT_ID" v-model="form.PARENT_ID" maxlength="255" placeholder="这里输入父节点id..." title="父节点id"/>
|
||||
<el-input id="PARENT_ID" ref="PARENT_ID" v-model="form.PARENT_ID" maxlength="255" placeholder="这里输入父节点id..." title="父节点id"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="排序" prop="MENU_ORDER">
|
||||
<el-input ref="MENU_ORDER" id="MENU_ORDER" v-model.number="form.MENU_ORDER" maxlength="11" placeholder="这里输入排序..." title="排序"/>
|
||||
<el-input id="MENU_ORDER" ref="MENU_ORDER" v-model.number="form.MENU_ORDER" maxlength="11" placeholder="这里输入排序..." title="排序"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="企业id" prop="CORPINFO_ID">
|
||||
<el-input ref="CORPINFO_ID" id="CORPINFO_ID" v-model="form.CORPINFO_ID" maxlength="255" placeholder="这里输入企业id..." title="企业id"/>
|
||||
<el-input id="CORPINFO_ID" ref="CORPINFO_ID" v-model="form.CORPINFO_ID" maxlength="255" placeholder="这里输入企业id..." title="企业id"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="删除状态" prop="IS_DELETE">
|
||||
<el-input ref="IS_DELETE" id="IS_DELETE" v-model.number="form.IS_DELETE" maxlength="2" placeholder="这里输入删除状态..." title="删除状态"/>
|
||||
<el-input id="IS_DELETE" ref="IS_DELETE" v-model.number="form.IS_DELETE" maxlength="2" placeholder="这里输入删除状态..." title="删除状态"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
|
@ -76,10 +76,10 @@
|
|||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包
|
||||
import { requestFN } from '@/utils/request'
|
||||
import waves from '@/directive/waves' // waves directive
|
||||
export default {
|
||||
import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包
|
||||
import { requestFN } from '@/utils/request'
|
||||
import waves from '@/directive/waves' // waves directive
|
||||
export default {
|
||||
components: { Pagination },
|
||||
directives: { waves },
|
||||
data() {
|
||||
|
@ -97,12 +97,12 @@
|
|||
varList: [],
|
||||
pd: [],
|
||||
form: {
|
||||
MENU_NAME: '',//菜单名称
|
||||
MENU_URL: '',//菜单地址
|
||||
PARENT_ID: '',//父节点id
|
||||
MENU_ORDER: '',//排序
|
||||
CORPINFO_ID: '',//企业id
|
||||
IS_DELETE: '',//删除状态
|
||||
MENU_NAME: '', // 菜单名称
|
||||
MENU_URL: '', // 菜单地址
|
||||
PARENT_ID: '', // 父节点id
|
||||
MENU_ORDER: '', // 排序
|
||||
CORPINFO_ID: '', // 企业id
|
||||
IS_DELETE: ''// 删除状态
|
||||
},
|
||||
multipleSelectionAll: [], // 所有选中的数据包含跨页数据
|
||||
multipleSelection: [], // 当前页选中的数据
|
||||
|
@ -120,7 +120,7 @@
|
|||
IS_DELETE: [
|
||||
{ required: true, message: '删除状态不能为空', trigger: 'change' },
|
||||
{ type: 'number', message: '删除状态必须为数字' }
|
||||
],
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -131,12 +131,12 @@
|
|||
getRowKey(row) {
|
||||
return row.APPMENUS_ID
|
||||
},
|
||||
//搜索
|
||||
// 搜索
|
||||
getQuery() {
|
||||
this.$refs.multipleTable.clearSelection()
|
||||
this.getList()
|
||||
},
|
||||
//获取列表
|
||||
// 获取列表
|
||||
getList() {
|
||||
this.listLoading = true
|
||||
requestFN(
|
||||
|
@ -154,21 +154,21 @@
|
|||
this.listLoading = false
|
||||
})
|
||||
},
|
||||
//添加
|
||||
// 添加
|
||||
handleAdd() {
|
||||
this.dialogType = 'add'
|
||||
this.resetForm()
|
||||
this.getDict()
|
||||
this.dialogFormEdit = true
|
||||
},
|
||||
//修改
|
||||
// 修改
|
||||
handleEdit(ID) {
|
||||
this.getDict()
|
||||
this.dialogType = 'edit'
|
||||
requestFN(
|
||||
'/appmenus/goEdit',
|
||||
{
|
||||
APPMENUS_ID:ID
|
||||
APPMENUS_ID: ID
|
||||
}
|
||||
).then((data) => {
|
||||
this.form = Object.assign({}, data.pd) // copy obj
|
||||
|
@ -177,7 +177,7 @@
|
|||
})
|
||||
this.dialogFormEdit = true
|
||||
},
|
||||
//保存
|
||||
// 保存
|
||||
confirm() {
|
||||
this.$refs.form.validate(valid => {
|
||||
if (valid) {
|
||||
|
@ -268,34 +268,34 @@
|
|||
},
|
||||
// 判断按钮权限,用于是否显示按钮
|
||||
hasButton: function() {
|
||||
var keys = 'appmenus:add,appmenus:del,appmenus:edit,toExcel';
|
||||
var keys = 'appmenus:add,appmenus:del,appmenus:edit,toExcel'
|
||||
requestFN(
|
||||
'/head/hasButton',
|
||||
{
|
||||
keys: keys
|
||||
}
|
||||
).then((data) => {
|
||||
this.add = data.appmenusfhadminadd; //新增权限
|
||||
this.del = data.appmenusfhadmindel; //删除权限
|
||||
this.edit = data.appmenusfhadminedit; //修改权限
|
||||
this.add = data.appmenusfhadminadd // 新增权限
|
||||
this.del = data.appmenusfhadmindel // 删除权限
|
||||
this.edit = data.appmenusfhadminedit // 修改权限
|
||||
}).catch((e) => {
|
||||
this.listLoading = false
|
||||
})
|
||||
},
|
||||
//获取数据字典数据
|
||||
getDict: function (){
|
||||
// 获取数据字典数据
|
||||
getDict: function() {
|
||||
},
|
||||
resetForm() {
|
||||
this.form = {
|
||||
MENU_NAME: '',//菜单名称
|
||||
MENU_URL: '',//菜单地址
|
||||
PARENT_ID: '',//父节点id
|
||||
MENU_ORDER: '',//排序
|
||||
CORPINFO_ID: '',//企业id
|
||||
IS_DELETE: '',//删除状态
|
||||
}
|
||||
MENU_NAME: '', // 菜单名称
|
||||
MENU_URL: '', // 菜单地址
|
||||
PARENT_ID: '', // 父节点id
|
||||
MENU_ORDER: '', // 排序
|
||||
CORPINFO_ID: '', // 企业id
|
||||
IS_DELETE: ''// 删除状态
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
|
|
@ -603,7 +603,7 @@ export default {
|
|||
if (this.pd.VILLAGE) {
|
||||
areaRefID.push(this.pd.VILLAGE)
|
||||
}
|
||||
this.$set(this.pd,'shudi',areaRefID)
|
||||
this.$set(this.pd, 'shudi', areaRefID)
|
||||
|
||||
const refDeptLevelVal = {}
|
||||
refDeptLevelVal.id = this.pd.deptLevenlID
|
||||
|
@ -625,7 +625,6 @@ export default {
|
|||
this.pd.ROLE_ID = arrString
|
||||
this.dialogFormEdit = true
|
||||
await this.$nextTick()
|
||||
|
||||
},
|
||||
handleEditStatus(row, type) {
|
||||
const typeName = type == '1' ? '禁用' : '启用'
|
||||
|
|
|
@ -0,0 +1,141 @@
|
|||
<template>
|
||||
<el-dialog
|
||||
v-if="visible"
|
||||
:visible.sync="visible"
|
||||
:before-close="handleClose"
|
||||
:append-to-body="appendToBody"
|
||||
:title="title"
|
||||
width="60%">
|
||||
<el-input v-model="filterText" placeholder="输入关键字进行过滤"/>
|
||||
<el-scrollbar class="information" style="height: 500px; margin-top: 10px">
|
||||
<el-tree
|
||||
ref="tree"
|
||||
:data="tree"
|
||||
:props="defaultProp"
|
||||
:filter-node-method="filterNode"
|
||||
check-strictly
|
||||
default-expand-all
|
||||
expand-on-click-node
|
||||
check-on-click-node
|
||||
show-checkbox
|
||||
@node-click="handleNodeClick"/>
|
||||
</el-scrollbar>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="closeWindow">取 消</el-button>
|
||||
<el-button type="primary" @click="save">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包
|
||||
import { requestFN } from '@/utils/request'
|
||||
import waves from '@/directive/waves' // waves directive
|
||||
export default {
|
||||
components: { Pagination },
|
||||
directives: { waves },
|
||||
props: {
|
||||
title: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
appendToBody: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
limit: {
|
||||
type: Number,
|
||||
default: 1
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
defaultProp: {
|
||||
value: 'id',
|
||||
children: 'nodes',
|
||||
label: 'name'
|
||||
},
|
||||
tree: [],
|
||||
filterText: '',
|
||||
treeClickCount: 0
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
filterText(val) {
|
||||
this.$refs.tree.filter(val)
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init(e) {
|
||||
this.visible = true
|
||||
this.getTree()
|
||||
},
|
||||
handleClose() {
|
||||
this.visible = false
|
||||
},
|
||||
getTree() {
|
||||
requestFN(
|
||||
'/department/listTree'
|
||||
).then((data) => {
|
||||
this.tree = JSON.parse(data.zTreeNodes)
|
||||
if (this.tree[0]) {
|
||||
this.tree[0].disabled = false
|
||||
}
|
||||
}).catch((e) => {
|
||||
this.$message.error(e)
|
||||
})
|
||||
},
|
||||
filterNode(value, data) {
|
||||
if (!value) return true
|
||||
return data.name.indexOf(value) !== -1
|
||||
},
|
||||
closeWindow() {
|
||||
this.visible = false
|
||||
},
|
||||
clear() {
|
||||
this.tree = []
|
||||
},
|
||||
save() {
|
||||
const list = this.$refs.tree.getCheckedNodes()
|
||||
if (list.length > this.limit) {
|
||||
this.$message.error('应该选择' + this.limit + '个,但是现在选择了' + list.length + '个')
|
||||
return
|
||||
}
|
||||
this.$emit('getResult', { info: this.$refs.tree.getCheckedNodes() })
|
||||
this.visible = false
|
||||
},
|
||||
// 节点点击事件
|
||||
handleNodeClick(data, node) {
|
||||
// 记录点击次数
|
||||
this.treeClickCount++
|
||||
// 单次点击次数超过2次不作处理,直接返回,也可以拓展成多击事件
|
||||
if (this.treeClickCount >= 2) {
|
||||
return
|
||||
}
|
||||
// 计时器,计算300毫秒为单位,可自行修改
|
||||
this.timer = window.setTimeout(() => {
|
||||
if (this.treeClickCount === 1) {
|
||||
// 把次数归零
|
||||
this.treeClickCount = 0
|
||||
// 单击事件处理
|
||||
this.console('单击事件,可在此处理对应逻辑')
|
||||
} else if (this.treeClickCount > 1) {
|
||||
// 把次数归零
|
||||
this.treeClickCount = 0
|
||||
// 双击事件
|
||||
this.$emit('getResult', { info: [data] })
|
||||
this.visible = false
|
||||
}
|
||||
}, 300)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.information >>> .el-scrollbar__wrap {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,75 @@
|
|||
<template>
|
||||
<el-dialog
|
||||
v-if="visible"
|
||||
:visible.sync="visible"
|
||||
:before-close="handleClose"
|
||||
:title="title"
|
||||
:append-to-body="appendToBody"
|
||||
width="60%">
|
||||
<UploadFile :file-list.sync = "files"/>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="closeWindow">取 消</el-button>
|
||||
<el-button type="primary" @click="confirm">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包
|
||||
import waves from '@/directive/waves' // waves directive
|
||||
import UploadFile from '../uploadFile'
|
||||
|
||||
export default {
|
||||
components: { Pagination, UploadFile },
|
||||
directives: { waves },
|
||||
props: {
|
||||
title: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
appendToBody: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
limit: {
|
||||
type: Number,
|
||||
default: 1
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
files: [],
|
||||
heirloom: {}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init(e) {
|
||||
this.visible = true
|
||||
this.heirloom = e
|
||||
},
|
||||
handleClose() {
|
||||
this.visible = false
|
||||
this.files = []
|
||||
},
|
||||
closeWindow() {
|
||||
this.handleClose()
|
||||
},
|
||||
confirm() {
|
||||
if (this.files.length <= 0) {
|
||||
this.$message.error('未选择文件')
|
||||
return
|
||||
}
|
||||
this.$emit('getChoose', { heirloom: this.heirloom, info: this.files, name: 'uploadExcel' })
|
||||
this.visible = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.information >>> .el-scrollbar__wrap {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,81 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-upload
|
||||
ref="uploadFile"
|
||||
:auto-upload="false"
|
||||
:file-list="fileList"
|
||||
:on-change="onChange"
|
||||
:on-remove="onRemove"
|
||||
:limit="limit"
|
||||
:on-exceed="handleExceed"
|
||||
:accept="accept"
|
||||
action="#">
|
||||
<el-button slot="trigger" size="small" type="primary">选取文件</el-button>
|
||||
<div slot="tip" class="el-upload__tip">{{ info }}</div>
|
||||
</el-upload>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: 'UploadImg',
|
||||
props: {
|
||||
fileList: {
|
||||
type: Array,
|
||||
default() {
|
||||
return []
|
||||
}
|
||||
},
|
||||
limit: {
|
||||
type: Number,
|
||||
default: 1
|
||||
},
|
||||
fileSize: {
|
||||
type: Number,
|
||||
default: 500
|
||||
},
|
||||
accept: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
info: {
|
||||
type: String,
|
||||
default: '文件大小不超过500MB'
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialogImageUrl: '',
|
||||
dialogVisible: false,
|
||||
disabled: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handleRemove(file) {
|
||||
this.fileList.splice(this.fileList.findIndex(item => item.uid === file.uid), 1)
|
||||
},
|
||||
handlePictureCardPreview(file) {
|
||||
this.dialogImageUrl = file.url
|
||||
this.dialogVisible = true
|
||||
},
|
||||
onChange(file, fileList) {
|
||||
this.file = file
|
||||
this.file_name = file.name
|
||||
const isLt2M = file.size / 1024 / 1024 < this.fileSize
|
||||
if (!isLt2M) {
|
||||
this.$message.error('上传视频大小不能超过 ' + this.fileSize + 'MB!')
|
||||
this.$refs.uploadFile.clearFiles()
|
||||
return false
|
||||
}
|
||||
this.$emit('update:fileList', fileList)
|
||||
},
|
||||
onRemove(file, fileList) {
|
||||
this.$emit('update:fileList', fileList)
|
||||
},
|
||||
handleExceed(files, fileList) {
|
||||
this.$message.warning(`当前限制选择 ${this.limit} 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
</style>
|
|
@ -0,0 +1,93 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-upload
|
||||
ref="uploadImg"
|
||||
:auto-upload="false"
|
||||
:file-list="fileList"
|
||||
:on-change="onChange"
|
||||
:limit="limit"
|
||||
:on-exceed="handleExceed"
|
||||
:accept="accept"
|
||||
:class="{hide:hideFlag}"
|
||||
action="#"
|
||||
list-type="picture-card">
|
||||
<i slot="default" class="el-icon-plus"/>
|
||||
<div slot="file" slot-scope="{file}">
|
||||
<el-image :src="file.url" alt=""/>
|
||||
<span class="el-upload-list__item-actions">
|
||||
<span @click="handlePictureCardPreview(file)">
|
||||
<i class="el-icon-zoom-in"/>
|
||||
</span>
|
||||
<span class="el-upload-list__item-delete" @click="handleRemove(file)">
|
||||
<i class="el-icon-delete"/>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
</el-upload>
|
||||
<el-dialog :visible.sync="dialogVisible" :append-to-body="appendToBody">
|
||||
<img :src="dialogImageUrl" width="100%" alt="">
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
// 在使用时要加上.sync
|
||||
// 注意limit的值
|
||||
export default {
|
||||
name: 'UploadImg',
|
||||
props: {
|
||||
fileList: {
|
||||
type: Array, default() {
|
||||
return []
|
||||
}
|
||||
},
|
||||
limit: { type: Number, default: 1 },
|
||||
appendToBody: { type: Boolean, default: false },
|
||||
accept: {
|
||||
type: String, default() {
|
||||
return ''
|
||||
}
|
||||
},
|
||||
hideUpload: { type: Boolean, default: false }
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialogImageUrl: '',
|
||||
dialogVisible: false,
|
||||
disabled: false,
|
||||
hideFlag: false
|
||||
}
|
||||
},
|
||||
created() {
|
||||
if (this.fileList.length >= this.limit && this.hideUpload) {
|
||||
this.hideFlag = true
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handleRemove(file) {
|
||||
this.fileList.splice(this.fileList.findIndex(item => item.uid === file.uid), 1)
|
||||
if (this.hideUpload) {
|
||||
if (this.fileList.length < this.limit) {
|
||||
this.hideFlag = false
|
||||
}
|
||||
}
|
||||
},
|
||||
handlePictureCardPreview(file) {
|
||||
this.dialogImageUrl = file.url
|
||||
this.dialogVisible = true
|
||||
},
|
||||
onChange(file, fileList) {
|
||||
this.$emit('update:fileList', fileList)
|
||||
if (this.hideUpload) {
|
||||
if (fileList.length === this.limit) {
|
||||
this.hideFlag = true
|
||||
}
|
||||
}
|
||||
},
|
||||
handleExceed(files, fileList) {
|
||||
this.$message.warning(`当前限制选择 ${this.limit} 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
</style>
|
|
@ -25,6 +25,19 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="APPOINT_ANNEX" label="委托书:">
|
||||
<upload-file
|
||||
:file-list.sync="form.APPOINT_ANNEX"
|
||||
:multiple="false"
|
||||
:accept="'.pdf,.jpg,.png,doc,docx'"
|
||||
:limit="1"
|
||||
:size="1024"
|
||||
:upload-type="1"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
|
||||
<div slot="footer" class="dialog-footer">
|
||||
|
@ -39,9 +52,11 @@
|
|||
import vueQr from 'vue-qr'
|
||||
import Treeselect from '@riophae/vue-treeselect'
|
||||
import { requestFN } from '@/utils/request'
|
||||
import uploadFile from '../../../util/uploadFile/index.vue'
|
||||
import { upload } from '@/utils/upload'
|
||||
|
||||
export default {
|
||||
components: { Treeselect, vueQr },
|
||||
components: { uploadFile, Treeselect, vueQr },
|
||||
props: {
|
||||
appendToBody: {
|
||||
type: Boolean,
|
||||
|
@ -80,6 +95,9 @@ export default {
|
|||
],
|
||||
OPINION: [
|
||||
{ required: true, message: '请填写打回原因', trigger: 'change' }
|
||||
],
|
||||
APPOINT_ANNEX: [
|
||||
{ required: true, message: '请上传文件', trigger: 'change' }
|
||||
]
|
||||
},
|
||||
heirloom: {},
|
||||
|
@ -111,7 +129,12 @@ export default {
|
|||
if (!valid) {
|
||||
this.$message.error('请填写完整信息')
|
||||
} else {
|
||||
requestFN('/xgf/user/approve', this.form)
|
||||
const formData = new FormData()
|
||||
Object.keys(this.form).map(key => {
|
||||
formData.append(key, this.form[key])
|
||||
})
|
||||
formData.append('weiTuoShu', this.form.APPOINT_ANNEX[0].raw)
|
||||
upload('/xgf/user/attorney', formData)
|
||||
.then((data) => {
|
||||
this.$message.success('推送成功')
|
||||
this.visible = false
|
||||
|
|
|
@ -7,13 +7,15 @@
|
|||
title="审批流程"
|
||||
width="60%">
|
||||
<el-steps :space="200" :active="list.length" direction="vertical" finish-status="success">
|
||||
<el-step v-for="item in list" :key="item.FLOW_DETAIL_ID" :value="item.FLOW_DETAIL_ID" :title="item.SORT">
|
||||
<el-step v-for="item in list" :key="item.FLOW_DETAIL_ID" :value="item.FLOW_DETAIL_ID" :title="item.SORT+''">
|
||||
<template slot="description">
|
||||
<el-card class="box-card a" style="width: 900px;">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>{{ item.STEP_NAME }}</span>
|
||||
</div>
|
||||
<div>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-row>
|
||||
<el-col v-if="item.APPROVER_NAME">
|
||||
审批人:{{ item.APPROVER_NAME }}
|
||||
|
@ -34,6 +36,11 @@
|
|||
审批结束
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-col>
|
||||
<el-col v-if="item.APPOINT_ANNEX" :span="12">
|
||||
<el-button icon="el-icon-download" type="primary" @click = "download(item)">下载附件</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</el-card>
|
||||
</template>
|
||||
|
@ -47,6 +54,7 @@
|
|||
|
||||
<script>
|
||||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||
import useDownloadFile from '../../../../utils/useDownloadFile'
|
||||
|
||||
export default {
|
||||
props: {
|
||||
|
@ -77,6 +85,9 @@ export default {
|
|||
},
|
||||
closeWindow() {
|
||||
this.handleClose()
|
||||
},
|
||||
download(item) {
|
||||
useDownloadFile(item.APPOINT_ANNEX)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -141,7 +141,7 @@
|
|||
|
||||
<tr>
|
||||
<th>民族</th>
|
||||
<td>{{ userDetailForm.minzuName ? userDetailForm.minzuName : '暂无信息' }}</td>
|
||||
<td>{{ userDetailForm.NATIONALITY_NAME ? userDetailForm.NATIONALITY_NAME : '暂无信息' }}</td>
|
||||
<th>婚姻状况</th>
|
||||
<td>{{ userDetailForm.MARITALSTATUS === '0' ? '未婚' : '已婚' }}</td>
|
||||
<th>政治面貌</th>
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
|
||||
<tr>
|
||||
<th>民族</th>
|
||||
<td>{{ userDetailForm.minzuName ? userDetailForm.minzuName : '暂无信息' }}</td>
|
||||
<td>{{ userDetailForm.NATIONALITY_NAME ? userDetailForm.NATIONALITY_NAME : '暂无信息' }}</td>
|
||||
<th>婚姻状况</th>
|
||||
<td>{{ userDetailForm.MARITALSTATUS === '0' ? '未婚' : '已婚' }}</td>
|
||||
<th>政治面貌</th>
|
||||
|
@ -137,6 +137,22 @@
|
|||
<td>{{ formatLabel(userDetailForm.ISFLOW) }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div v-if="userDetailForm.ANNEX" style="padding-bottom: 10px">
|
||||
<div class="level-title">
|
||||
<h1>承诺书</h1>
|
||||
</div>
|
||||
<div>
|
||||
<el-button icon="el-icon-download" type="primary" @click = "download(userDetailForm.ANNEX)">下载附件</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="userDetailForm.ATTORNEY" style="padding-bottom: 10px">
|
||||
<div class="level-title">
|
||||
<h1>委托书</h1>
|
||||
</div>
|
||||
<div>
|
||||
<el-button icon="el-icon-download" type="primary" @click = "download(userDetailForm.ATTORNEY)">下载附件</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="level-title">
|
||||
<h1>培训记录</h1>
|
||||
|
@ -317,6 +333,7 @@
|
|||
import vueQr from 'vue-qr'
|
||||
import dateformat from '@/utils/dateformat'
|
||||
import { requestFN } from '@/utils/request'
|
||||
import useDownloadFile from '@/utils/useDownloadFile'
|
||||
|
||||
export default {
|
||||
components: { vueQr },
|
||||
|
@ -347,7 +364,6 @@ export default {
|
|||
},
|
||||
methods: {
|
||||
init(e) {
|
||||
console.log(e)
|
||||
this.visible = true
|
||||
this.heirloom = JSON.parse(JSON.stringify(e))
|
||||
this.getUserInfoById(this.heirloom)
|
||||
|
@ -402,6 +418,9 @@ export default {
|
|||
} else {
|
||||
return ''
|
||||
}
|
||||
},
|
||||
download(item) {
|
||||
useDownloadFile(item)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -141,7 +141,7 @@
|
|||
|
||||
<tr>
|
||||
<th>民族</th>
|
||||
<td>{{ userDetailForm.minzuName ? userDetailForm.minzuName : '暂无信息' }}</td>
|
||||
<td>{{ userDetailForm.NATIONALITY_NAME ? userDetailForm.NATIONALITY_NAME : '暂无信息' }}</td>
|
||||
<th>婚姻状况</th>
|
||||
<td>{{ userDetailForm.MARITALSTATUS === '0' ? '未婚' : '已婚' }}</td>
|
||||
<th>政治面貌</th>
|
||||
|
|
Loading…
Reference in New Issue