审核预览文件时增加输入框 初步调试
This commit is contained in:
parent
de3a1dd6ed
commit
8d5ca641b1
Binary file not shown.
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 7.7 KiB |
|
|
@ -3,35 +3,21 @@
|
|||
<div v-if="items.length === 0" class="no-files">
|
||||
<img src="../../assets/file/no_file.png" alt="文件图标" />
|
||||
</div>
|
||||
<div
|
||||
v-for="(item, index) in items"
|
||||
:key="index"
|
||||
class="file-item"
|
||||
>
|
||||
<div class="file-icon" @click="handView(item)" :title="item.fileName" style="cursor: pointer">
|
||||
<img v-if="getIconPaths(item.fileName) === 'word.png'"
|
||||
src="@/assets/file/word.png" alt="文件图标"
|
||||
/>
|
||||
<img v-else-if="getIconPaths(item.fileName) === 'excel.png'"
|
||||
src="@/assets/file/excel.png" alt="文件图标"
|
||||
/>
|
||||
<img v-else-if="getIconPaths(item.fileName) === 'pdf.png'"
|
||||
src="@/assets/file/pdf.png" alt="文件图标"
|
||||
/>
|
||||
<img v-else-if="getIconPaths(item.fileName) === 'txt.png'"
|
||||
src="@/assets/file/txt.png" alt="文件图标"
|
||||
/>
|
||||
<img v-else-if="getIconPaths(item.fileName) === 'ppt.png'"
|
||||
src="@/assets/file/ppt.png" alt="文件图标"
|
||||
/>
|
||||
<img v-else-if="getIconPaths(item.fileName) === 'png'"
|
||||
:src="`${lookFile + item.filePath}`" alt="文件图标"
|
||||
/>
|
||||
|
||||
<div v-for="(item, index) in items" :key="index" class="file-item">
|
||||
<div class="file-icon" @click="handView(item)" :title="item.fileName" style="cursor: pointer">
|
||||
<img v-if="getIconPaths(item.fileName) === 'word.png'" src="@/assets/file/word.png" alt="文件图标" />
|
||||
<img v-else-if="getIconPaths(item.fileName) === 'excel.png'" src="@/assets/file/excel.png" alt="文件图标" />
|
||||
<img v-else-if="getIconPaths(item.fileName) === 'pdf.png'" src="@/assets/file/pdf.png" alt="文件图标" />
|
||||
<img v-else-if="getIconPaths(item.fileName) === 'txt.png'" src="@/assets/file/txt.png" alt="文件图标" />
|
||||
<img v-else-if="getIconPaths(item.fileName) === 'ppt.png'" src="@/assets/file/ppt.png" alt="文件图标" />
|
||||
<img v-else-if="getIconPaths(item.fileName) === 'png'" :src="`${lookFile + item.filePath}`" alt="文件图标" />
|
||||
</div>
|
||||
<div class="file-details">
|
||||
<div class="file-name" :title="item.fileName">
|
||||
{{ item.fileName.length > 8 ? item.fileName.substring(0, 8) + '....' + item.fileName.split('.').pop().toLowerCase() : item.fileName
|
||||
{{
|
||||
item.fileName.length > 8
|
||||
? item.fileName.substring(0, 8) + '....' + item.fileName.split('.').pop().toLowerCase()
|
||||
: item.fileName
|
||||
}}
|
||||
<div class="file-info">
|
||||
<div class="file-size">{{ (item.fileSize / 1024).toFixed(2) + 'Kb' }}</div>
|
||||
|
|
@ -40,14 +26,30 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<el-dialog title="文件预览" :visible.sync="viewOpen" width="90%" append-to-body>
|
||||
<div style="width: 100%;height:720px">
|
||||
<bns-kkFile-preview :items="filePreview" v-on:fillInComments="handleFillInComments"></bns-kkFile-preview>
|
||||
<el-dialog title="文件预览" :visible.sync="viewOpen" width="90%" append-to-body @closed="onCloseFileDialog">
|
||||
<div style="width: 100%; height: 720px">
|
||||
<el-row>
|
||||
<el-col :span="!isShowOptions ? 24 : 18">
|
||||
<div>
|
||||
<bns-kkFile-preview :items="filePreview" v-on:fillInComments="handleFillInComments"></bns-kkFile-preview>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="isShowOptions ? 6 : 0">
|
||||
<div style="padding-left: 12px" v-if="isShowOptions">
|
||||
<el-input
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 30, maxRows: 50 }"
|
||||
placeholder="请输入意见"
|
||||
v-model="opinionValue"
|
||||
maxlength="200"
|
||||
show-word-limit
|
||||
/>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
|
||||
</template>
|
||||
<script>
|
||||
import bnsKkFilePreview from '@/components/pro-tabs/bns-kkFile-preview.vue'
|
||||
|
|
@ -56,17 +58,35 @@ import { lookFaceFile } from '@/utils/bonus'
|
|||
|
||||
export default {
|
||||
components: {
|
||||
'bns-kkFile-preview': bnsKkFilePreview
|
||||
'bns-kkFile-preview': bnsKkFilePreview,
|
||||
},
|
||||
props: {
|
||||
items: {
|
||||
type: Array,
|
||||
default: () => {
|
||||
return {
|
||||
label: ''
|
||||
label: '',
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
// 是否显示意见输入框 如是审核时则展示
|
||||
isShowOptions: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
// 接收其他 taps 传递的意见
|
||||
opinionValueOther: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
opinionValueOther: {
|
||||
handler(newValue) {
|
||||
this.opinionValue = newValue
|
||||
},
|
||||
deep: true,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
|
@ -74,10 +94,11 @@ export default {
|
|||
filePreview: {
|
||||
filePreviewUrl: '',
|
||||
fileName: '',
|
||||
showDownloadButton: false
|
||||
showDownloadButton: false,
|
||||
},
|
||||
iconSrc: '',
|
||||
lookFile: ''
|
||||
lookFile: '',
|
||||
opinionValue: '',
|
||||
}
|
||||
},
|
||||
created() {
|
||||
|
|
@ -92,13 +113,19 @@ export default {
|
|||
this.viewOpen = true
|
||||
this.filePreview = {
|
||||
filePreviewUrl: item.filePath,
|
||||
fileName: item.fileName
|
||||
fileName: item.fileName,
|
||||
}
|
||||
},
|
||||
handleFillInComments: function(e) {
|
||||
handleFillInComments: function (e) {
|
||||
console.log('handleFillInComments', e)
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// 弹框关闭时触发
|
||||
onCloseFileDialog() {
|
||||
// 触发自定义事件传递意见框的值
|
||||
this.$emit('onCloseFileDialog', this.opinionValue)
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
|
|
|
|||
|
|
@ -170,6 +170,12 @@ export default {
|
|||
type: Number,
|
||||
default: 1,
|
||||
},
|
||||
|
||||
// 审批信息
|
||||
opinionValueOther: {
|
||||
type: String,
|
||||
default: () => '',
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
store() {
|
||||
|
|
@ -191,6 +197,15 @@ export default {
|
|||
},
|
||||
deep: true,
|
||||
},
|
||||
|
||||
opinionValueOther: {
|
||||
handler(newValue) {
|
||||
if (newValue && this.isExamine) {
|
||||
this.reason = newValue
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
|
|
|||
|
|
@ -6,26 +6,26 @@ const cbc_iv = CryptoJS.enc.Utf8.parse('1234567812345678')
|
|||
* 默认参数需要加密
|
||||
* @type {boolean}
|
||||
*/
|
||||
const jia_mi=false;
|
||||
const jia_mi = false
|
||||
/**
|
||||
* 默认后台会自动加密
|
||||
* @type {boolean}
|
||||
*/
|
||||
const jie_mi=false;
|
||||
const jie_mi = false
|
||||
/**
|
||||
* 加密
|
||||
* @param word
|
||||
* @returns {string}
|
||||
*/
|
||||
export const encryptCBC = function(word) {
|
||||
if(!jia_mi){
|
||||
return word;
|
||||
export const encryptCBC = function (word) {
|
||||
if (!jia_mi) {
|
||||
return word
|
||||
}
|
||||
const srcs = CryptoJS.enc.Utf8.parse(word)
|
||||
const encrypted = CryptoJS.AES.encrypt(srcs, cbc_key, {
|
||||
iv: cbc_iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
padding: CryptoJS.pad.Pkcs7,
|
||||
})
|
||||
return encrypted.toString()
|
||||
}
|
||||
|
|
@ -35,14 +35,14 @@ export const encryptCBC = function(word) {
|
|||
* @param word
|
||||
* @returns {*}
|
||||
*/
|
||||
export const decryptCBC = function(word) {
|
||||
if(!jie_mi){
|
||||
return word;
|
||||
export const decryptCBC = function (word) {
|
||||
if (!jie_mi) {
|
||||
return word
|
||||
}
|
||||
const encrypted = CryptoJS.AES.decrypt(word, cbc_key, {
|
||||
iv: cbc_iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
padding: CryptoJS.pad.Pkcs7,
|
||||
})
|
||||
return encrypted.toString(CryptoJS.enc.Utf8)
|
||||
}
|
||||
|
|
@ -52,12 +52,12 @@ export const decryptCBC = function(word) {
|
|||
* @param word
|
||||
* @returns {string}
|
||||
*/
|
||||
export const encryptCBCTime= function(word) {
|
||||
export const encryptCBCTime = function (word) {
|
||||
const srcs = CryptoJS.enc.Utf8.parse(word)
|
||||
const encrypted = CryptoJS.AES.encrypt(srcs, cbc_key, {
|
||||
iv: cbc_iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
padding: CryptoJS.pad.Pkcs7,
|
||||
})
|
||||
return encrypted.toString()
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -7,28 +7,19 @@
|
|||
placeholder="请输入关键字"
|
||||
maxlength="60"
|
||||
show-word-limit
|
||||
clearable v-no-whitespace
|
||||
clearable
|
||||
v-no-whitespace
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="工程" prop="proName" v-if="hideOrNot">
|
||||
<el-select v-model="queryParams.proName" placeholder="请选择工程" clearable>
|
||||
<el-option
|
||||
v-for="dict in proNameDict"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
<el-option v-for="dict in proNameDict" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="审批状态" prop="status">
|
||||
<el-select v-model="queryParams.status" placeholder="请选择审批状态" clearable>
|
||||
<el-option
|
||||
v-for="dict in approvalStatus"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
<el-option v-for="dict in approvalStatus" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
|
|
@ -36,10 +27,13 @@
|
|||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :style="{float:'right'}"></right-toolbar>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :style="{ float: 'right' }"></right-toolbar>
|
||||
|
||||
<el-table v-loading="loading" :data="proList" @selection-change="handleSelectionChange"
|
||||
:index="indexContinuous(queryParams.pageNum, queryParams.pageSize)"
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="proList"
|
||||
@selection-change="handleSelectionChange"
|
||||
:index="indexContinuous(queryParams.pageNum, queryParams.pageSize)"
|
||||
>
|
||||
<el-table-column label="序号" type="index" width="55" align="center" />
|
||||
<el-table-column label="工程名称" align="center" prop="proName" />
|
||||
|
|
@ -57,51 +51,49 @@
|
|||
<el-table-column label="承包商负责人联系方式" align="center">
|
||||
<template slot-scope="scope">
|
||||
<!-- 检查是否存在身份证号 -->
|
||||
<span v-if="scope.row.contractorPrincipalPhone">{{ hideSensitiveInfo(scope.row.contractorPrincipalPhone)
|
||||
}}</span>
|
||||
<span v-if="scope.row.contractorPrincipalPhone">
|
||||
{{ hideSensitiveInfo(scope.row.contractorPrincipalPhone) }}
|
||||
</span>
|
||||
<span v-else>-</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="审批状态" align="center" prop="intoStatus" >
|
||||
<template slot-scope="scope">
|
||||
<!-- 检查是否存在身份证号 -->
|
||||
<span v-if="scope.row.intoStatus">{{ updateStatus(scope.row.intoStatus)
|
||||
}}</span>
|
||||
<span v-else>-</span>
|
||||
</template>
|
||||
<el-table-column label="审批状态" align="center" prop="intoStatus">
|
||||
<template slot-scope="scope">
|
||||
<!-- 检查是否存在身份证号 -->
|
||||
<span v-if="scope.row.intoStatus">{{ updateStatus(scope.row.intoStatus) }}</span>
|
||||
<span v-else>-</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="300px" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
@click="examine(scope.row,1)"
|
||||
@click="examine(scope.row, 1)"
|
||||
v-if="scope.row.status === '1'"
|
||||
v-hasPermi="['system:consApproval:approval']"
|
||||
>审核
|
||||
>
|
||||
审核
|
||||
</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
@click="examine(scope.row,2)"
|
||||
@click="examine(scope.row, 2)"
|
||||
v-hasPermi="['system:consApproval:approval']"
|
||||
v-else
|
||||
>查看
|
||||
>
|
||||
查看
|
||||
</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
@click="auditRecord(scope.row)"
|
||||
v-hasPermi="['system:audit:query']"
|
||||
>审核记录
|
||||
<el-button size="mini" type="text" @click="auditRecord(scope.row)" v-hasPermi="['system:audit:query']">
|
||||
审核记录
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
|
|
@ -145,20 +137,19 @@ export default {
|
|||
keyword: undefined,
|
||||
proName: undefined,
|
||||
start: undefined,
|
||||
status:'1'
|
||||
status: '1',
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {},
|
||||
statusDict:{
|
||||
"1" : "待审批",
|
||||
"2" : "审批中",
|
||||
"3" : "已通过",
|
||||
"4" : "已驳回",
|
||||
"5" : "已撤销"
|
||||
}
|
||||
|
||||
statusDict: {
|
||||
1: '待审批',
|
||||
2: '审批中',
|
||||
3: '已通过',
|
||||
4: '已驳回',
|
||||
5: '已撤销',
|
||||
},
|
||||
}
|
||||
},
|
||||
created() {
|
||||
|
|
@ -171,7 +162,7 @@ export default {
|
|||
this.getApprovalStatus()
|
||||
},
|
||||
methods: {
|
||||
updateStatus(status){
|
||||
updateStatus(status) {
|
||||
return this.statusDict[status]
|
||||
},
|
||||
indexContinuous,
|
||||
|
|
@ -180,7 +171,7 @@ export default {
|
|||
getApprovalStatus() {
|
||||
const params = {
|
||||
dictType: 'sys_approval_state',
|
||||
dictValue: ''
|
||||
dictValue: '',
|
||||
}
|
||||
dictTableOption(params).then(response => {
|
||||
this.approvalStatus = response.data
|
||||
|
|
@ -189,7 +180,7 @@ export default {
|
|||
/** 获取工程下拉选 */
|
||||
getProOption() {
|
||||
const params = {
|
||||
id: ''
|
||||
id: '',
|
||||
}
|
||||
getProOptions(params).then(res => {
|
||||
this.proNameDict = res.data
|
||||
|
|
@ -200,8 +191,8 @@ export default {
|
|||
getList() {
|
||||
this.loading = false
|
||||
// this.queryParams.proId = this.$store.state.user.thisIds.proId;
|
||||
this.queryParams.supUuid = this.$store.state.user.thisIds.supUuid;
|
||||
this.queryParams.userType = this.$store.state.user.userType;
|
||||
this.queryParams.supUuid = this.$store.state.user.thisIds.supUuid
|
||||
this.queryParams.userType = this.$store.state.user.userType
|
||||
getConsEntranceList(this.queryParams).then(response => {
|
||||
this.proList = response.rows
|
||||
this.total = response.total
|
||||
|
|
@ -213,36 +204,51 @@ export default {
|
|||
/** 打开审核页面 */
|
||||
examine(row, type) {
|
||||
if (type === 1) {
|
||||
this.$router.push('/system/cons-approval-auth/consEntranceApproval/' + encryptCBC(JSON.stringify({
|
||||
proId: row.proId,
|
||||
taskId: row.taskId,
|
||||
procInstId:row.procInsId,
|
||||
finalCheck: row.finalCheck,
|
||||
consUuid: row.consUuid,
|
||||
isExamine: true,
|
||||
btnShow: true,
|
||||
showType: 2
|
||||
})))
|
||||
this.$router.push(
|
||||
'/system/cons-approval-auth/consEntranceApproval/' +
|
||||
encryptCBC(
|
||||
JSON.stringify({
|
||||
proId: row.proId,
|
||||
taskId: row.taskId,
|
||||
procInstId: row.procInsId,
|
||||
finalCheck: row.finalCheck,
|
||||
consUuid: row.consUuid,
|
||||
isExamine: true,
|
||||
btnShow: true,
|
||||
showType: 2,
|
||||
})
|
||||
)
|
||||
)
|
||||
} else {
|
||||
this.$router.push('/system/cons-approval-auth/consEntranceApproval/' + encryptCBC(JSON.stringify({
|
||||
proId: row.proId,
|
||||
taskId: row.taskId,
|
||||
procInstId:row.procInsId,
|
||||
finalCheck: row.finalCheck,
|
||||
consUuid: row.consUuid,
|
||||
isExamine: false,
|
||||
btnShow: false,
|
||||
showType: 1
|
||||
})))
|
||||
this.$router.push(
|
||||
'/system/cons-approval-auth/consEntranceApproval/' +
|
||||
encryptCBC(
|
||||
JSON.stringify({
|
||||
proId: row.proId,
|
||||
taskId: row.taskId,
|
||||
procInstId: row.procInsId,
|
||||
finalCheck: row.finalCheck,
|
||||
consUuid: row.consUuid,
|
||||
isExamine: false,
|
||||
btnShow: false,
|
||||
showType: 1,
|
||||
})
|
||||
)
|
||||
)
|
||||
}
|
||||
},
|
||||
/** 打开审核记录页面 */
|
||||
auditRecord(row) {
|
||||
this.$router.push("/flow/auditRecord/" + encryptCBC(JSON.stringify({
|
||||
taskId: row.taskId,
|
||||
checkType:'2',
|
||||
taskType: '存在'
|
||||
})));
|
||||
this.$router.push(
|
||||
'/flow/auditRecord/' +
|
||||
encryptCBC(
|
||||
JSON.stringify({
|
||||
taskId: row.taskId,
|
||||
checkType: '2',
|
||||
taskType: '存在',
|
||||
})
|
||||
)
|
||||
)
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
|
|
@ -259,7 +265,7 @@ export default {
|
|||
this.ids = selection.map(item => item.proId)
|
||||
this.single = selection.length !== 1
|
||||
this.multiple = !selection.length
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -1,10 +1,7 @@
|
|||
<template>
|
||||
<el-tabs v-model="activeName" @tab-click="handleClick" :style="{padding:'20px'}">
|
||||
<el-tabs v-model="activeName" @tab-click="handleClick" :style="{ padding: '20px' }">
|
||||
<el-tab-pane label="监理单位信息" name="first">
|
||||
<bns-supervisor-info-tabs
|
||||
:items="supervisoryUnitInformationItems"
|
||||
>
|
||||
</bns-supervisor-info-tabs>
|
||||
<bns-supervisor-info-tabs :items="supervisoryUnitInformationItems"></bns-supervisor-info-tabs>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="监理人员基本信息" name="second">
|
||||
<div class="app-container">
|
||||
|
|
@ -13,7 +10,8 @@
|
|||
<el-input
|
||||
v-model="queryParams.supervisorName"
|
||||
maxlength="20"
|
||||
show-word-limit v-no-whitespace
|
||||
show-word-limit
|
||||
v-no-whitespace
|
||||
placeholder="请输入监理姓名"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
|
|
@ -22,14 +20,7 @@
|
|||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
>导出
|
||||
</el-button>
|
||||
<el-button type="primary" plain icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table v-loading="loading" :data="supervisorList">
|
||||
|
|
@ -44,17 +35,17 @@
|
|||
<el-table-column label="岗位" align="center" prop="postName" />
|
||||
<el-table-column label="体检文件" width="100" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" @click="handleShow(scope.row,1)">查看</el-button>
|
||||
<el-button size="mini" @click="handleShow(scope.row, 1)">查看</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="保险文件" width="100" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" @click="handleShow(scope.row,2)">查看</el-button>
|
||||
<el-button size="mini" @click="handleShow(scope.row, 2)">查看</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="其他文件" width="100" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" @click="handleShow(scope.row,4)">查看</el-button>
|
||||
<el-button size="mini" @click="handleShow(scope.row, 4)">查看</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="年龄" align="center" prop="age" />
|
||||
|
|
@ -68,39 +59,37 @@
|
|||
<el-table-column label="人脸照片" align="center" prop="faceUrl">
|
||||
<template slot-scope="scope">
|
||||
<el-popover placement="right" title="" trigger="hover">
|
||||
<img :src="`${lookFaceFile+scope.row.faceUrl}`" :min-width="300" :height="300" alt="照片" />
|
||||
<img slot="reference" :src="`${lookFaceFile+scope.row.faceUrl}`" style="max-height: 50px; max-width: 50px"
|
||||
:alt="`${lookFaceFile+scope.row.faceUrl}`"
|
||||
<img :src="`${lookFaceFile + scope.row.faceUrl}`" :min-width="300" :height="300" alt="照片" />
|
||||
<img
|
||||
slot="reference"
|
||||
:src="`${lookFaceFile + scope.row.faceUrl}`"
|
||||
style="max-height: 50px; max-width: 50px"
|
||||
:alt="`${lookFaceFile + scope.row.faceUrl}`"
|
||||
/>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
@click="handleView(scope.row)"
|
||||
>查看
|
||||
</el-button>
|
||||
<el-button size="mini" type="text" @click="handleView(scope.row)">查看</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getSupervisorPersonList"
|
||||
/>
|
||||
<el-dialog title="文件查看" :visible.sync="document" width="80%" top="5vh" append-to-body>
|
||||
<div style="width: 100%;height:720px">
|
||||
<div style="width: 100%; height: 720px">
|
||||
<bns-file-list-tabs :items="fileList" />
|
||||
</div>
|
||||
</el-dialog>
|
||||
<el-dialog title="文件查看" :visible.sync="documentPreview" width="80%" top="5vh" append-to-body>
|
||||
<div style="width: 100%;height:720px">
|
||||
<div style="width: 100%; height: 720px">
|
||||
<bns-kkFile-preview :items="kkFilePreview"></bns-kkFile-preview>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
|
@ -110,15 +99,25 @@
|
|||
<el-row type="flex" justify="start" align="top" :gutter="gutterValue">
|
||||
<el-col :span="11">
|
||||
<el-form-item label-width="120px" label="姓名" prop="name">
|
||||
<el-input v-model="formData.name" placeholder="请输入姓名" :disabled="true" clearable v-no-whitespace
|
||||
:style="{width: '100%'}"
|
||||
<el-input
|
||||
v-model="formData.name"
|
||||
placeholder="请输入姓名"
|
||||
:disabled="true"
|
||||
clearable
|
||||
v-no-whitespace
|
||||
:style="{ width: '100%' }"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11">
|
||||
<el-form-item label-width="120px" label="性别" prop="sex">
|
||||
<el-input v-model="formData.sex" placeholder="请输入性别" :disabled="true" clearable v-no-whitespace
|
||||
:style="{width: '100%'}"
|
||||
<el-input
|
||||
v-model="formData.sex"
|
||||
placeholder="请输入性别"
|
||||
:disabled="true"
|
||||
clearable
|
||||
v-no-whitespace
|
||||
:style="{ width: '100%' }"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
@ -126,15 +125,25 @@
|
|||
<el-row type="flex" justify="start" align="top" :gutter="gutterValue">
|
||||
<el-col :span="11">
|
||||
<el-form-item label-width="120px" label="年龄" prop="age">
|
||||
<el-input v-model="formData.age" placeholder="请输入年龄" :disabled="true" clearable v-no-whitespace
|
||||
:style="{width: '100%'}"
|
||||
<el-input
|
||||
v-model="formData.age"
|
||||
placeholder="请输入年龄"
|
||||
:disabled="true"
|
||||
clearable
|
||||
v-no-whitespace
|
||||
:style="{ width: '100%' }"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11">
|
||||
<el-form-item label-width="120px" label="身份证号码" prop="idCard">
|
||||
<el-input v-model="formData.idCard" placeholder="请输入身份证号码" :disabled="true" clearable
|
||||
:style="{width: '100%'}" v-no-whitespace
|
||||
<el-input
|
||||
v-model="formData.idCard"
|
||||
placeholder="请输入身份证号码"
|
||||
:disabled="true"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
v-no-whitespace
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
@ -142,18 +151,30 @@
|
|||
<el-row type="flex" justify="start" align="top" :gutter="gutterValue">
|
||||
<el-col :span="11">
|
||||
<el-form-item label-width="120px" label="联系方式" prop="phone">
|
||||
<el-input v-model="formData.phone" placeholder="请输入联系方式" :disabled="true" clearable
|
||||
:style="{width: '100%'}" v-no-whitespace
|
||||
<el-input
|
||||
v-model="formData.phone"
|
||||
placeholder="请输入联系方式"
|
||||
:disabled="true"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
v-no-whitespace
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11">
|
||||
<el-form-item label-width="120px" label="岗位" prop="postName">
|
||||
<el-select v-model="formData.postName" placeholder="请选择岗位" :style="{width: '100%'}" clearable
|
||||
:disabled="true"
|
||||
<el-select
|
||||
v-model="formData.postName"
|
||||
placeholder="请选择岗位"
|
||||
:style="{ width: '100%' }"
|
||||
clearable
|
||||
:disabled="true"
|
||||
>
|
||||
<el-option v-for="(item,index) in postList" :key="item.value" :label="item.label"
|
||||
:value="item.value"
|
||||
<el-option
|
||||
v-for="(item, index) in postList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
|
@ -161,14 +182,17 @@
|
|||
</el-row>
|
||||
<el-row type="flex" justify="start" align="top" :gutter="gutterValue">
|
||||
<el-col :span="24">
|
||||
<el-form-item label-width="120px" label="人脸照片" :style="{width:'100%'}">
|
||||
<img v-if="formData.facePhoto.length === 0" style="width:100px;height: 100px;margin-left: 45px;"
|
||||
src="@/assets/file/no_file.png" alt="暂无文件"
|
||||
>
|
||||
<el-form-item label-width="120px" label="人脸照片" :style="{ width: '100%' }">
|
||||
<img
|
||||
v-if="formData.facePhoto.length === 0"
|
||||
style="width: 100px; height: 100px; margin-left: 45px"
|
||||
src="@/assets/file/no_file.png"
|
||||
alt="暂无文件"
|
||||
/>
|
||||
<bns-file-list-tabs
|
||||
v-else
|
||||
:items="formData.facePhoto"
|
||||
:style="{marginLeft:'45px'}"
|
||||
:style="{ marginLeft: '45px' }"
|
||||
></bns-file-list-tabs>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
@ -176,14 +200,16 @@
|
|||
<el-row type="flex" justify="start" align="top" :gutter="gutterValue">
|
||||
<el-col :span="24">
|
||||
<el-form-item label-width="120px" label="体检文件">
|
||||
<img v-if="formData.physicalExaminationFile.length === 0"
|
||||
style="width:100px;height: 100px;margin-left: 45px;" src="@/assets/file/no_file.png"
|
||||
alt="暂无文件"
|
||||
>
|
||||
<img
|
||||
v-if="formData.physicalExaminationFile.length === 0"
|
||||
style="width: 100px; height: 100px; margin-left: 45px"
|
||||
src="@/assets/file/no_file.png"
|
||||
alt="暂无文件"
|
||||
/>
|
||||
<bns-file-list-tabs
|
||||
v-else
|
||||
:items="formData.physicalExaminationFile"
|
||||
:style="{marginLeft:'45px'}"
|
||||
:style="{ marginLeft: '45px' }"
|
||||
></bns-file-list-tabs>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
@ -191,13 +217,16 @@
|
|||
<el-row type="flex" justify="start" align="top" :gutter="gutterValue">
|
||||
<el-col :span="24">
|
||||
<el-form-item label-width="120px" label="保险文件">
|
||||
<img v-if="formData.insuranceFile.length === 0" style="width:100px;height: 100px;margin-left: 45px;"
|
||||
src="@/assets/file/no_file.png" alt="暂无文件"
|
||||
>
|
||||
<img
|
||||
v-if="formData.insuranceFile.length === 0"
|
||||
style="width: 100px; height: 100px; margin-left: 45px"
|
||||
src="@/assets/file/no_file.png"
|
||||
alt="暂无文件"
|
||||
/>
|
||||
<bns-file-list-tabs
|
||||
v-else
|
||||
:items="formData.insuranceFile"
|
||||
:style="{marginLeft:'45px'}"
|
||||
:style="{ marginLeft: '45px' }"
|
||||
></bns-file-list-tabs>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
@ -205,13 +234,16 @@
|
|||
<el-row type="flex" justify="start" align="top" :gutter="gutterValue">
|
||||
<el-col :span="24">
|
||||
<el-form-item label-width="120px" label="其他文件">
|
||||
<img v-if="formData.otherFileList.length === 0" style="width:100px;height: 100px;margin-left: 45px;"
|
||||
src="@/assets/file/no_file.png" alt="暂无文件"
|
||||
>
|
||||
<img
|
||||
v-if="formData.otherFileList.length === 0"
|
||||
style="width: 100px; height: 100px; margin-left: 45px"
|
||||
src="@/assets/file/no_file.png"
|
||||
alt="暂无文件"
|
||||
/>
|
||||
<bns-file-list-tabs
|
||||
v-else
|
||||
:items="formData.otherFileList"
|
||||
:style="{marginLeft:'45px'}"
|
||||
:style="{ marginLeft: '45px' }"
|
||||
></bns-file-list-tabs>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
@ -226,34 +258,50 @@
|
|||
<el-tab-pane label="企业资质" name="third">
|
||||
<bns-file-list-tabs
|
||||
:items="enterpriseQualificationItems"
|
||||
:isShowOptions="paramsData.isExamine"
|
||||
:opinionValueOther="opinionValueOther"
|
||||
@onCloseFileDialog="onCloseFileDialog"
|
||||
></bns-file-list-tabs>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="安全协议书" name="fourth">
|
||||
<bns-file-list-tabs
|
||||
:items="securityAgreementFileItems"
|
||||
:isShowOptions="paramsData.isExamine"
|
||||
:opinionValueOther="opinionValueOther"
|
||||
@onCloseFileDialog="onCloseFileDialog"
|
||||
></bns-file-list-tabs>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="监理规划" name="five">
|
||||
<bns-file-list-tabs
|
||||
:items="supervisionPlanningItems"
|
||||
:isShowOptions="paramsData.isExamine"
|
||||
:opinionValueOther="opinionValueOther"
|
||||
@onCloseFileDialog="onCloseFileDialog"
|
||||
></bns-file-list-tabs>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="实施细则" name="six">
|
||||
<bns-file-list-tabs
|
||||
:items="implementationRulesItems"
|
||||
:isShowOptions="paramsData.isExamine"
|
||||
:opinionValueOther="opinionValueOther"
|
||||
@onCloseFileDialog="onCloseFileDialog"
|
||||
></bns-file-list-tabs>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="审批结果及意见" name="seven">
|
||||
<bns-timeline-tabs :is-examine="paramsData.isExamine" :btn-show="paramsData.btnShow"
|
||||
:show-type="paramsData.showType" :final-check="paramsData.finalCheck"
|
||||
:items="formData.approvalItems" :audit-type="'审批信息'"
|
||||
v-on:pass="approvalPass"
|
||||
v-on:turnDown="approvalTurnDown"
|
||||
v-on:finalInstance="approvalFinalInstance"
|
||||
<bns-timeline-tabs
|
||||
:is-examine="paramsData.isExamine"
|
||||
:btn-show="paramsData.btnShow"
|
||||
:show-type="paramsData.showType"
|
||||
:final-check="paramsData.finalCheck"
|
||||
:items="formData.approvalItems"
|
||||
:audit-type="'审批信息'"
|
||||
v-on:pass="approvalPass"
|
||||
v-on:turnDown="approvalTurnDown"
|
||||
v-on:finalInstance="approvalFinalInstance"
|
||||
:opinionValueOther="opinionValueOther"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
</template>
|
||||
<script>
|
||||
import bnsSupervisorInfoTabs from '@/components/pro-tabs/bns-supervisor-info-tabs.vue'
|
||||
|
|
@ -274,7 +322,7 @@ export default {
|
|||
BnsTimelineTabs,
|
||||
bnsSupervisorInfoTabs,
|
||||
bnsFileListTabs,
|
||||
bnsGenerateWorkCardTabs
|
||||
bnsGenerateWorkCardTabs,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
|
@ -293,7 +341,7 @@ export default {
|
|||
kkFilePreview: {
|
||||
filePreviewUrl: '',
|
||||
fileName: '',
|
||||
showDownloadButton: false
|
||||
showDownloadButton: false,
|
||||
},
|
||||
gutterValue: parseInt('21', 10),
|
||||
// 遮罩层
|
||||
|
|
@ -306,7 +354,7 @@ export default {
|
|||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
supervisorName: undefined
|
||||
supervisorName: undefined,
|
||||
},
|
||||
//企业资质
|
||||
enterpriseQualificationItems: [],
|
||||
|
|
@ -335,10 +383,12 @@ export default {
|
|||
//保险文件
|
||||
insuranceFile: [],
|
||||
//其他文件
|
||||
otherFileList: []
|
||||
otherFileList: [],
|
||||
},
|
||||
paramsData: {},
|
||||
lookFaceFile:''
|
||||
lookFaceFile: '',
|
||||
// 阅读文件时的意见
|
||||
opinionValueOther: '',
|
||||
}
|
||||
},
|
||||
created() {
|
||||
|
|
@ -352,16 +402,15 @@ export default {
|
|||
indexContinuous,
|
||||
lookFaceFile,
|
||||
hideSensitiveInfo,
|
||||
approvalHistory(){
|
||||
approvalHistory({taskId:this.paramsData.taskId}).then(res => {
|
||||
approvalHistory() {
|
||||
approvalHistory({ taskId: this.paramsData.taskId }).then(res => {
|
||||
this.formData.approvalItems = res.data
|
||||
})
|
||||
|
||||
},
|
||||
getStatus() {
|
||||
const params = {
|
||||
dictType: 'sys_sup_post',
|
||||
dictValue: ''
|
||||
dictValue: '',
|
||||
}
|
||||
dictTableOption(params).then(response => {
|
||||
this.postList = response.data
|
||||
|
|
@ -382,13 +431,13 @@ export default {
|
|||
1: '体检文件',
|
||||
2: '保险文件',
|
||||
3: '特殊工种文件',
|
||||
4: '其他文件'
|
||||
4: '其他文件',
|
||||
}
|
||||
selectFile({
|
||||
classification: 9,
|
||||
uuid: row.uuid,
|
||||
informationType: informationType,
|
||||
fromType: 3
|
||||
fromType: 3,
|
||||
}).then(response => {
|
||||
console.log(response)
|
||||
if (response.data.length === 0) {
|
||||
|
|
@ -398,7 +447,7 @@ export default {
|
|||
this.kkFilePreview = {
|
||||
filePreviewUrl: response.data[0].filePath,
|
||||
fileName: response.data[0].fileName,
|
||||
showDownloadButton: false
|
||||
showDownloadButton: false,
|
||||
}
|
||||
this.documentPreview = true
|
||||
} else {
|
||||
|
|
@ -412,7 +461,7 @@ export default {
|
|||
getSupervisorList() {
|
||||
this.loading = true
|
||||
const params = {
|
||||
proId: this.paramsData.proId
|
||||
proId: this.paramsData.proId,
|
||||
}
|
||||
listSupervisor(params).then(response => {
|
||||
this.supervisoryUnitInformationItems = response.data
|
||||
|
|
@ -430,7 +479,7 @@ export default {
|
|||
proId: this.paramsData.proId,
|
||||
supId: this.paramsData.supId,
|
||||
supUuid: this.paramsData.supUuid,
|
||||
...this.queryParams
|
||||
...this.queryParams,
|
||||
}
|
||||
listSupervisorPerson(params).then(response => {
|
||||
console.log(response)
|
||||
|
|
@ -446,7 +495,7 @@ export default {
|
|||
classification: '1',
|
||||
fromType: '1',
|
||||
informationType: '1',
|
||||
uuid : this.$store.state.user.thisIds.uuid
|
||||
uuid: this.$store.state.user.thisIds.uuid,
|
||||
}
|
||||
selectFile(params).then(response => {
|
||||
this.enterpriseQualificationItems = response.data
|
||||
|
|
@ -459,7 +508,7 @@ export default {
|
|||
classification: '1',
|
||||
fromType: '1',
|
||||
informationType: '2',
|
||||
uuid : this.$store.state.user.thisIds.uuid
|
||||
uuid: this.$store.state.user.thisIds.uuid,
|
||||
}
|
||||
selectFile(params).then(response => {
|
||||
this.securityAgreementFileItems = response.data
|
||||
|
|
@ -471,7 +520,7 @@ export default {
|
|||
id: this.paramsData.proId,
|
||||
classification: '1',
|
||||
fromType: '1',
|
||||
informationType: '9'
|
||||
informationType: '9',
|
||||
}
|
||||
selectFile(params).then(response => {
|
||||
this.supervisionPlanningItems = response.data
|
||||
|
|
@ -483,7 +532,7 @@ export default {
|
|||
id: this.paramsData.proId,
|
||||
classification: '1',
|
||||
fromType: '1',
|
||||
informationType: '10'
|
||||
informationType: '10',
|
||||
}
|
||||
selectFile(params).then(response => {
|
||||
this.implementationRulesItems = response.data
|
||||
|
|
@ -505,11 +554,15 @@ export default {
|
|||
proId: this.paramsData.proId,
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
supervisorName: this.queryParams.supervisorName
|
||||
supervisorName: this.queryParams.supervisorName,
|
||||
}
|
||||
this.derive('project/outsourcingPro/exportSupervisorPerson', {
|
||||
...params
|
||||
}, `监理人员基本信息.xlsx`)
|
||||
this.derive(
|
||||
'project/outsourcingPro/exportSupervisorPerson',
|
||||
{
|
||||
...params,
|
||||
},
|
||||
`监理人员基本信息.xlsx`
|
||||
)
|
||||
},
|
||||
// 点击tab事件 切换tab
|
||||
handleClick(tab, event) {
|
||||
|
|
@ -523,7 +576,7 @@ export default {
|
|||
id: row.id,
|
||||
proId: row.proId,
|
||||
uuid: row.uuid,
|
||||
supUuid: row.supUuid
|
||||
supUuid: row.supUuid,
|
||||
}
|
||||
this.getStatus()
|
||||
listSupervisorPersonById(params).then(response => {
|
||||
|
|
@ -546,35 +599,35 @@ export default {
|
|||
name: row.name,
|
||||
phone: row.phone,
|
||||
postName: row.postName,
|
||||
faceUrl: row.faceUrl
|
||||
faceUrl: row.faceUrl,
|
||||
}
|
||||
},
|
||||
/** 审核通过*/
|
||||
approvalPass(e){
|
||||
approvalPass(e) {
|
||||
const param = {
|
||||
reason:e,
|
||||
reason: e,
|
||||
...this.paramsData,
|
||||
agree:"1"
|
||||
agree: '1',
|
||||
}
|
||||
this.approval(param,"审批通过")
|
||||
this.approval(param, '审批通过')
|
||||
},
|
||||
/**审核驳回*/
|
||||
approvalTurnDown(e){
|
||||
approvalTurnDown(e) {
|
||||
const param = {
|
||||
...e,
|
||||
...this.paramsData,
|
||||
agree:"2"
|
||||
agree: '2',
|
||||
}
|
||||
this.approval(param,"退回成功")
|
||||
this.approval(param, '退回成功')
|
||||
},
|
||||
/**终审*/
|
||||
approvalFinalInstance(e){
|
||||
approvalFinalInstance(e) {
|
||||
const param = {
|
||||
reason:e,
|
||||
reason: e,
|
||||
...this.paramsData,
|
||||
agree:"3"
|
||||
agree: '3',
|
||||
}
|
||||
this.approval(param,"终审成功")
|
||||
this.approval(param, '终审成功')
|
||||
},
|
||||
/**
|
||||
* 审批方法+
|
||||
|
|
@ -582,23 +635,27 @@ export default {
|
|||
* @param text
|
||||
*/
|
||||
getMyToDoNum,
|
||||
approval(param,text){
|
||||
approval(param, text) {
|
||||
submitPersonApproval(param).then(response => {
|
||||
this.getMyToDoNum()
|
||||
if (response.code === 200) {
|
||||
this.$message({
|
||||
message: text,
|
||||
type: 'success'
|
||||
type: 'success',
|
||||
})
|
||||
this.$tab.closePage();
|
||||
this.$tab.closePage()
|
||||
} else {
|
||||
this.$message({
|
||||
message: response.msg,
|
||||
type: 'error'
|
||||
type: 'error',
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
// 自定义事件接收意见
|
||||
onCloseFileDialog(val) {
|
||||
this.opinionValueOther = val
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
Loading…
Reference in New Issue