Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
Superman_Main
2021-12-06 06:41:53 +08:00
129 changed files with 57242 additions and 5262 deletions
+88 -17
View File
@@ -3596,23 +3596,6 @@
"upath": "^1.1.1"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true,
"optional": true
},
"commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
@@ -13784,6 +13767,94 @@
"resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.22.4.tgz",
"integrity": "sha512-XLI5s0AdqMP2Lf4I4CmdmOq8kjb5DDFGR77wAuxCfpEuYSfhTRyyx6MetgZMiL6Lxa0DasjBOiOcciU3NkL3/Q=="
},
"vue-loader-v16": {
"version": "npm:vue-loader@16.8.3",
"resolved": "https://registry.npmmirror.com/vue-loader/download/vue-loader-16.8.3.tgz",
"integrity": "sha1-1D5nXe9bqTRdbH8FkUwT2GGZcIc=",
"dev": true,
"optional": true,
"requires": {
"chalk": "^4.1.0",
"hash-sum": "^2.0.0",
"loader-utils": "^2.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995651629&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
"integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
"dev": true,
"optional": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz",
"integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=",
"dev": true,
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
"integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
"dev": true,
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.nlark.com/color-name/download/color-name-1.1.4.tgz",
"integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
"dev": true,
"optional": true
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
"integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
"dev": true,
"optional": true
},
"hash-sum": {
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-2.0.0.tgz",
"integrity": "sha1-gdAbtd6OpKIUrV1urRtSNGCwtFo=",
"dev": true,
"optional": true
},
"loader-utils": {
"version": "2.0.2",
"resolved": "https://registry.npmmirror.com/loader-utils/download/loader-utils-2.0.2.tgz?cache=0&sync_timestamp=1636687952028&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-2.0.2.tgz",
"integrity": "sha1-1uO0+4GHByGuTghoqxHdY4NowSk=",
"dev": true,
"optional": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^2.1.2"
}
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-7.2.0.tgz",
"integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
"dev": true,
"optional": true,
"requires": {
"has-flag": "^4.0.0"
}
}
}
},
"vue-router": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.4.0.tgz",
+6 -4
View File
@@ -1,6 +1,8 @@
<!DOCTYPE html>
<html style="height: 100%">
<head id="vue">
<meta charset="utf-8" http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui"/>
@@ -8,7 +10,7 @@
<meta name="mobile-web-app-capable" content="yes"/>
<title>在线编辑</title>
<!-- 此处配置onlyOffice地址 -->
<script type="text/javascript" src="http://127.0.0.1:9011/web-apps/apps/api/documents/api.js"></script>
<script type="text/javascript" src="https://10.100.5.116:9443/web-apps/apps/api/documents/api.js"></script>
<!-- <script src="js/vue.min.js"></script>-->
<!-- <script type="text/javascript" src="http://172.20.10.5/web-apps/apps/api/documents/api.js"></script>-->
@@ -36,7 +38,7 @@
var filePath = GetQueryValue('filePath')
var fileName = GetQueryValue('fileName')
var fileUrl = GetQueryValue('fileUrl')
var standNo = GetQueryValue('standNo')
var oldFileName = GetQueryValue('oldFileName')
var key = GetQueryValue('key')
// var attId = GetQueryValue('attId')
var fileSuffix = GetQueryValue('fileType')
@@ -100,7 +102,7 @@
"download":true,//是否可以下载
"print":true //是否可以打印
},
"fileType": 'pptx',
"fileType": fileSuffix,
"key": key,
"title": oldFileName,
"url": fileUrl
@@ -108,7 +110,7 @@
"documentType": documentType, // 文档类word-text、表格类excel-spreadsheet、ppt类-presentation
"editorConfig": {
// 此处配置回调地址
"callbackUrl": `127.0.0.1:8080/api/att/attFile/recieveFile?fileNm=${fileName}&standNo=${filePath}`,
"callbackUrl": `http://10.100.5.116:4202/api/att/attFile/recieveFile?fileNm=${fileName}&standNo=${filePath}`,
"mode":"edit",
"lang":"zh-CN",
// "customization": {
+5 -4
View File
@@ -1,6 +1,7 @@
<!DOCTYPE html>
<html style="height: 100%">
<head id="vue">
<meta charset="utf-8" http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui"/>
@@ -8,7 +9,7 @@
<meta name="mobile-web-app-capable" content="yes"/>
<title>在线预览</title>
<!-- 此处配置onlyOffice地址 -->
<script type="text/javascript" src="http://127.0.0.1:9011/web-apps/apps/api/documents/api.js"></script>
<script type="text/javascript" src="https://10.100.5.116:9443/web-apps/apps/api/documents/api.js"></script>
<!-- <script type="text/javascript" src="http://172.20.10.5/web-apps/apps/api/documents/api.js"></script>-->
@@ -34,7 +35,7 @@
var fileName = GetQueryValue('fileName')
var filePath = GetQueryValue('filePath')
var fileUrl = GetQueryValue('fileUrl')
var standNo = GetQueryValue('standNo')
var oldFileName = GetQueryValue('oldFileName')
var key = GetQueryValue('key')
// var attId = GetQueryValue('attId')
var fileSuffix = GetQueryValue('fileType')
@@ -100,13 +101,13 @@
},
"fileType": fileSuffix,
"key": key,
"title": fileName,
"title": oldFileName,
"url": fileUrl
},
"documentType": documentType,
"editorConfig": {
// 此处配置回调地址
"callbackUrl": `127.0.0.1:8080/api/att/attFile/recieveFile?fileNm=${fileName}&standNo=${filePath}`,
"callbackUrl": `http://10.100.5.116:4202/api/att/attFile/recieveFile?fileNm=${fileName}&standNo=${filePath}`,
"mode":"edit",
"lang":"zh-CN",
// "customization": {
+45 -22
View File
@@ -6648,19 +6648,41 @@ var PDFPageView = function () {
var defaultSettings = {
watermark_txt: msg,
watermark_x: 50,//水印起始位置x轴坐标
watermark_y: 0,//水印起始位置Y轴坐标
watermark_rows: 7,//水印行数
watermark_cols: 5,//水印列数
watermark_x_space: 80,//水印x轴间隔
watermark_y_space: 120,//水印y轴间隔
watermark_y: -100,//水印起始位置Y轴坐标
watermark_rows: 13,//水印行数
watermark_cols: 7,//水印列数
watermark_x_space: 18,//水印x轴间隔
watermark_y_space: 20,//水印y轴间隔
watermark_color: 'rgba(192, 192, 192)',//水印字体颜色
watermark_alpha: 0.3,//水印透明度
watermark_fontsize: '30px',//水印字体大小
watermark_fontsize: '40px',//水印字体大小
watermark_font: '微软雅黑',//水印字体
watermark_width: 120,//水印宽度
watermark_height: 80,//水印长度
watermark_angle: 40//水印倾斜度数
};
//判断分辨率
if (screen.width+"*"+screen.height === '800*600' ){
defaultSettings = {
watermark_txt: msg,
watermark_x: 80,//水印起始位置x轴坐标
watermark_y: -100,//水印起始位置Y轴坐标
watermark_rows: 11,//水印行数
watermark_cols: 6,//水印列数
watermark_x_space: 2,//水印x轴间隔
watermark_y_space: 27,//水印y轴间隔
watermark_color: 'rgba(192, 192, 192)',//水印字体颜色
watermark_alpha: 0.3,//水印透明度
watermark_fontsize: '40px',//水印字体大小
watermark_font: '微软雅黑',//水印字体
watermark_width: 120,//水印宽度
watermark_height: 80,//水印长度
watermark_angle: 40//水印倾斜度数
};
}
var oTemp = document.createDocumentFragment();
//获取页面最大宽度
@@ -6670,23 +6692,24 @@ var PDFPageView = function () {
//获取页面最大长度
var page_height = Math.max(document.body.scrollHeight, document.body.clientHeight+350);
var pdf_page =document.getElementById("viewer");
//2021/12/5 分辨率不同的情况会出现问题
//如果将水印列数设置为0,或水印列数设置过大,超过页面最大宽度,则重新计算水印列数和水印x轴间隔
if (defaultSettings.watermark_cols == 0 || (parseInt(defaultSettings.watermark_x + defaultSettings.watermark_width * defaultSettings.watermark_cols + defaultSettings.watermark_x_space * (defaultSettings.watermark_cols - 1)) > page_width)) {
defaultSettings.watermark_cols = parseInt((page_width - defaultSettings.watermark_x + defaultSettings.watermark_x_space) / (defaultSettings.watermark_width + defaultSettings.watermark_x_space))-1;
console.log("------------------------------------")
console.log(defaultSettings.watermark_cols)
defaultSettings.watermark_x_space = parseInt((page_width - defaultSettings.watermark_x - defaultSettings.watermark_width * defaultSettings.watermark_cols) / (defaultSettings.watermark_cols - 1));
console.log(defaultSettings.watermark_x_space)
}
//如果将水印行数设置为0,或水印行数设置过大,超过页面最大长度,则重新计算水印行数和水印y轴间隔
if (defaultSettings.watermark_rows == 0 || (parseInt(defaultSettings.watermark_y + defaultSettings.watermark_height * defaultSettings.watermark_rows + defaultSettings.watermark_y_space * (defaultSettings.watermark_rows - 1)) > page_height)) {
defaultSettings.watermark_rows = parseInt((defaultSettings.watermark_y_space + page_height - defaultSettings.watermark_y) / (defaultSettings.watermark_height + defaultSettings.watermark_y_space))-3;
defaultSettings.watermark_y_space = parseInt(((page_height - defaultSettings.watermark_y) - defaultSettings.watermark_height * defaultSettings.watermark_rows) / (defaultSettings.watermark_rows - 1));
console.log("------------------------------------")
console.log(defaultSettings.watermark_rows+10)
console.log(defaultSettings.watermark_y_space)
}
// if (defaultSettings.watermark_cols == 0 || (parseInt(defaultSettings.watermark_x + defaultSettings.watermark_width * defaultSettings.watermark_cols + defaultSettings.watermark_x_space * (defaultSettings.watermark_cols - 1)) > page_width)) {
// defaultSettings.watermark_cols = parseInt((page_width - defaultSettings.watermark_x + defaultSettings.watermark_x_space) / (defaultSettings.watermark_width + defaultSettings.watermark_x_space))-1;
// console.log("------------------------------------")
// console.log(defaultSettings.watermark_cols)
// defaultSettings.watermark_x_space = parseInt((page_width - defaultSettings.watermark_x - defaultSettings.watermark_width * defaultSettings.watermark_cols) / (defaultSettings.watermark_cols - 1));
// console.log(defaultSettings.watermark_x_space)
// }
// //如果将水印行数设置为0,或水印行数设置过大,超过页面最大长度,则重新计算水印行数和水印y轴间隔
// if (defaultSettings.watermark_rows == 0 || (parseInt(defaultSettings.watermark_y + defaultSettings.watermark_height * defaultSettings.watermark_rows + defaultSettings.watermark_y_space * (defaultSettings.watermark_rows - 1)) > page_height)) {
// defaultSettings.watermark_rows = parseInt((defaultSettings.watermark_y_space + page_height - defaultSettings.watermark_y) / (defaultSettings.watermark_height + defaultSettings.watermark_y_space))-3;
// defaultSettings.watermark_y_space = parseInt(((page_height - defaultSettings.watermark_y) - defaultSettings.watermark_height * defaultSettings.watermark_rows) / (defaultSettings.watermark_rows - 1));
// console.log("------------------------------------")
// console.log(defaultSettings.watermark_rows+10)
// console.log(defaultSettings.watermark_y_space)
//
// }
var x;
var y;
for (var i = 0; i < defaultSettings.watermark_rows; i++) {
@@ -96,7 +96,6 @@
#upload .placeholder .webuploader-pick {
font-size: 18px;
background: #00b7ee;
3px;
line-height: 44px;
padding: 0 30px;
*width: 120px;
@@ -198,7 +197,6 @@
overflow: hidden;
z-index: 50;
margin: 0;
0;
background: none;
-webkit-box-shadow: 0 0 0;
}
@@ -317,7 +315,6 @@
height: 113px;
background: url(./images/image.png) no-repeat center 12px;
border: 1px solid #eeeeee;
0;
}
#upload .filelist li.filePickerBlock div.webuploader-pick {
width: 100%;
@@ -447,7 +444,6 @@
color: #565656;
padding: 0 18px;
display: inline-block;
3px;
margin-left: 10px;
cursor: pointer;
font-size: 14px;
+10
View File
@@ -0,0 +1,10 @@
import axios from "@/common/axiosV2";
export function getImg (data) {
return axios({
url: 'api/sarUrl/tsUrl/getIconImg',
method: 'get',
params: data,
responseType: 'arraybuffer'
})
}
+2
View File
@@ -1,6 +1,8 @@
/*liuyan 全局公共样式*/
@import './style';
@import './mixins';
// 移动端公共样式
@import './phone';
// 左侧菜单样式
@import './navMenu';
// tree组件父组件内样式
+9
View File
@@ -0,0 +1,9 @@
.phoneBox {
width: 100%;
height: 100%;
}
@media screen and (max-width: 1366px) {
.el-message {
min-width: 200px !important;
}
}
+6 -1
View File
@@ -18,7 +18,12 @@ mark{background-color:transparent}
a,ins,s,u,del{text-decoration:none}
sup,sub{vertical-align:baseline}
html {width:100%;height: 100%;font-size: 50px;-webkit-tap-highlight-color: transparent;}
body {font-family: 'PingFang SC', 'Microsoft Yahei', '微软雅黑', Arial, sans-serif !important;color: #333;font-size: 14px;line-height: 1;-webkit-text-size-adjust: none;width:100%;height:100%;min-width:1280px;overflow-x:auto;}
@media screen and (min-width: 1366px) {
body {
min-width:1280px;
}
}
body {font-family: 'PingFang SC', 'Microsoft Yahei', '微软雅黑', Arial, sans-serif !important;color: #333;font-size: 14px;line-height: 1;-webkit-text-size-adjust: none;width:100%;height:100%;overflow-x:auto;}
hr {height: .02rem;margin: .1rem 0;border: medium none;border-top: .02rem solid #cacaca;}
a {text-decoration: none;}
/*意见反馈页面富文本表格宽度*/
+6 -8
View File
@@ -38,7 +38,6 @@
class="form-upload-btn"
>
<!-- {{ (value === 'null' || value === '' || value == null) && (!processModel || (processModel && !disabled)) ? '点击上传' : '查看已上传的文件' }}-->
上传
</el-button>
</template>
<el-dialog
@@ -347,7 +346,12 @@ export default {
handlePreview(file) {
const attId = file.response.data.id
if (this.preview) {
if (attId) {
window.location.href = '/api/att/attFile/downloadFileForSar?fileId=' + attId
} else {
this.$message.warning('文件不存在,下载失败')
}
} else {
this.getBusStandFileByAttId(attId)
.then(res => {
console.log(res)
@@ -381,12 +385,6 @@ export default {
console.log(e)
this.$message.warning('文件不存在,预览失败')
})
} else {
if (attId) {
window.location.href = '/api/att/attFile/downloadFileForSar?fileId=' + attId
} else {
this.$message.warning('文件不存在,下载失败')
}
}
},
@@ -16,6 +16,7 @@
multiple
@change="handleChange"
>
<!-- <el-option value="全选" label="全选" @click.native="clickOption"></el-option>-->
<el-option
v-for="opt in options"
:key="opt.value"
@@ -73,6 +74,7 @@ export default {
handleChange (event) {
// const value = event.target.value
this.$emit('input', event)
}
},
watch: {
File diff suppressed because it is too large Load Diff
+57 -382
View File
@@ -1,393 +1,68 @@
<!-- 配置管理 - 链接管理 -->
<template>
<div id="post-manage">
<!-- 头部操作按钮-->
<div class="action-bar">
<el-button type="primary"
class="common-button-primary add-button"
@click="addLink"
v-btn-permission="'980cb239683de9e29ee5335cec98e5b4'"
size="mini">新增</el-button>
<!-- <el-button type="primary"-->
<!-- class="common-button-primary add-button"-->
<!-- @click="linkOrder"-->
<!-- v-btn-permission="'779665b2e4bb20fc480cf9372a100f69'"-->
<!-- size="mini">顺序调整</el-button>-->
<el-button type="primary"
class="common-button-primary add-button"
@click="deleteAllLink"
v-btn-permission="'779665b2e4bb20fc480cf9372a100f69'"
size="mini">删除</el-button>
</div>
<!-- 表格-->
<div class="content">
<el-table
:data="linkList"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-table"
height="100%"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
@selection-change="handleSelectionChange">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="orderBy"
label="序号"
align="center"
width="50px">
</el-table-column>
<el-table-column
prop="name"
label="链接名称">
</el-table-column>
<el-table-column
label="链接">
<template slot-scope="scope" >
<span v-if="scope.row.url.slice(0,7) === 'http://'" @click="linkto(scope.row.url)" style="color: #0c91e5;cursor: pointer;text-decoration: underline">
{{ scope.row.url }}
</span>
<span v-else @click="linkto('http://' + scope.row.url)" style="color: #0c91e5;cursor: pointer;text-decoration: underline">{{ scope.row.url }}</span>
</template>
</el-table-column>
<el-table-column
label="操作"
width="50px">
<template slot-scope="scope">
<div @click.stop style="display: inline-block">
<el-dropdown trigger="click" @command="handleCommand">
<i class="iconfont">&#xe61e;</i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-btn-permission="'0fbb849e244e07433a90180fb314ad10'" :command="[scope.row, '删除']">删除</el-dropdown-item>
<el-dropdown-item v-btn-permission="'fa0846d977aeef07e9cb7faf648f8f7f'" :command="[scope.row, '编辑']">编辑</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</template>
</el-table-column>
</el-table>
</div>
<loading :loading="Loading">加载中...</loading>
<!-- 新增链接弹窗-->
<el-dialog
:close-on-click-modal="false"
:title="dialogTitle"
:visible.sync="modalshowflag"
:wrapperClosable="false"
size="800px"
@close="resetForm"
>
<el-form
ref="sarStandardsInfoForm"
:model="sarStandardsInfoEO"
:rules="sarStandardsInfoRules"
class="label-input-form"
>
<el-form-item label="链接名称" prop="name" label-width="150px" class="add-form-item">
<el-input v-model="sarStandardsInfoEO.name"
placeholder="请输入链接名称"
maxlength="30"
show-word-limit
clearable></el-input>
</el-form-item>
<el-form-item label="链接" prop="url" label-width="150px" class="add-form-item">
<el-input v-model="sarStandardsInfoEO.url"
maxlength="100"
show-word-limit
placeholder="请输入链接">
</el-input>
</el-form-item>
</el-form>
<span slot="footer" class="demo-drawer-footer">
<el-button class="common-button-default" size="mini" icon="el-icon-close" @click="resetForm">取消</el-button>
<el-button type="primary" size="mini" class="common-button-primary" icon="el-icon-check" @click="submit">确定</el-button>
</span>
</el-dialog>
</div>
<div class="data-link">
<el-tabs v-model="activeName">
<el-tab-pane label="第一行链接" name="firstLink">
<first-link v-if="activeName === 'firstLink'"></first-link>
</el-tab-pane>
<el-tab-pane label="第二行链接" name="secondLink">
<second-link v-if="activeName === 'secondLink'"></second-link>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import Sortable from 'sortablejs'
export default {
name: "linkManage",
data () {
return {
editId: '',
type: '', // 1为新增 2为编辑
dialogTitle: '',
submitLoading: false,
// 向后台传参使用
data: [],
Loading: false,
modalshowflag: false,
// 排序
order:[],
// 表格选取的
selectList:[],
selectId:[],
ids:'',
// 向后台传参使用
sarStandardsInfoEO: {
name: '',
url: '',
// sortId: ''
},
//新增链接未输入时提示
sarStandardsInfoRules: {
name: [
{ required: true, message: '请输入链接名称', trigger: 'blur' }
],
url: [
{ required: true, message: '请输入链接', trigger: 'blur' }
]
},
modalRole: false,
props: {
label: 'name',
children: 'children'
},
linkList: [],
sortData: [],
}
},
methods: {
//链接点击跳转,链接形式为http://xxxxxx
linkto(link_href){
window.open(link_href)
},
//头部新增按钮
addLink () {
this.type = 1
this.dialogTitle = '新增链接'
this.modalshowflag = true
},
//表格中操作列删除操作弹窗
deleteLink (row) {
this.$confirm('此操作将删除该链接, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http.delete('sarUrl/tsUrl/delete', {
id: row.id
}, {
_this: this,
loading: 'Loading'
}, res => {
if (res.ok) {
this.$message.success('删除成功')
let arr = []
for (let a = 0; a < this.linkList.length; a++) {
if (this.linkList[a].id === row.id) {
this.linkList.splice(a, 1)
}
}
this.linkList.forEach((item, index) => {
let json = {}
json.id = item.id
json.orderBy = index + 1
arr.push(json)
})
this.$http.putData('sarUrl/tsUrl/updateOrder', JSON.stringify(arr), {}, res => {
this.getLink()
})
}else {
this.$message.warning(res.message)
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
//头部删除按钮
deleteAllLink() {
this.selectId=[]
for (var i=0;i<this.selectList.length;i++){
this.selectId.push(this.selectList[i].id)
}
this.ids = this.selectId.join(",")
if (this.selectList.length === 0) {
this.$message.warning('请选择要删除的链接')
} else {
this.modalRole = true
this.$confirm('此操作将删除链接, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http.delete('sarUrl/tsUrl/deleteBatch', {
ids: this.ids
}, {}, res => {
if (res.ok) {
this.$message.success('删除成功')
let arr = this.linkList.filter(items => {
if (!this.ids.includes(items.id)) return items;
})
let newArr = []
arr.forEach((item, index) => {
let json = {}
json.id = item.id
json.orderBy = index + 1
newArr.push(json)
})
this.$http.putData('sarUrl/tsUrl/updateOrder', JSON.stringify(newArr), {}, res => {
this.getLink()
})
}else {
this.$message.warning(res.message)
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
}
},
//弹窗关闭操作
resetForm () {
this.$refs['sarStandardsInfoForm'].resetFields();
this.modalshowflag = false
},
//弹窗确认操作
submit () {
this.$refs['sarStandardsInfoForm'].validate((valid) => {
if (valid) {
if (this.type === 1) {
this.$http.postData('sarUrl/tsUrl/add', {
...this.sarStandardsInfoEO,
}, {
_this: this,
loading: 'Loading'
}, res=> {
if (res.ok) {
this.$message.success('新增成功')
this.modalshowflag = false
this.getLink()
} else {
this.$message.warning(res.message)
}
})
} else {
// 编辑
this.$http.putData('/sarUrl/tsUrl/edit', {
id: this.editId,
name: this.sarStandardsInfoEO.name,
url: this.sarStandardsInfoEO.url,
}, {
_this: this,
loading: 'Loading'
}, res=> {
if (res.ok) {
this.$message.success('修改成功')
this.modalshowflag = false
this.getLink()
} else {
this.$message.warning(res.message)
}
})
}
} else {
return false;
}
});
},
//表格中操作列
handleCommand (command) {
switch (command[1]) {
case '删除':
this.deleteLink(command[0])
break
case '编辑':
this.editLink(command[0])
break
}
},
//表格中操作列编辑操作弹窗
editLink (row) {
this.type = 2
this.editId = row.id
this.sarStandardsInfoEO.name = row.name
this.sarStandardsInfoEO.url = row.url
this.sarStandardsInfoEO.sortId = row.sortId
this.dialogTitle = '修改链接'
this.modalshowflag = true
},
//多选框选择
handleSelectionChange (val) {
this.selectList = val
},
// 获取链接数据
getLink () {
this.$http.get('sarUrl/tsUrl', {
}, {
_this: this,
loading: 'Loading'
}, res=> {
this.linkList = res.data
this.initSortable()
})
},
initSortable () {
this.sortData = [...this.linkList]
const el = document.querySelector('.el-table__body-wrapper tbody')
//创建拖拽对象
this.sortable = Sortable.create(el, {
sort: true, //是否可进行拖拽排序
animation: 150,
onEnd: ({newIndex, oldIndex}) => {
const val = this.sortData[oldIndex]
this.sortData.splice(oldIndex, 1)
this.sortData.splice(newIndex, 0, val)
this.sortData.forEach((item, index) => {
item.orderBy = index + 1
})
let arr = []
this.sortData.forEach(item => {
let json = {}
json.id = item.id
json.orderBy = item.orderBy
arr.push(json)
})
this.$http.putData('sarUrl/tsUrl/updateOrder', JSON.stringify(arr), {}, res => {
if (res.ok) {
this.$message.success('保存成功')
} else {
this.$message.warning('保存失败!')
}
})
}
})
},
},
mounted() {
this.getLink();
}
import firstLink from "./linkType/firstLink";
import secondLink from "./linkType/secondLink";
export default {
name: "linkManage",
components: {
firstLink,
secondLink
},
data() {
return {
activeName: 'firstLink',
}
},
methods: {
},
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/mixins';
#post-manage {
height: 100%;
.content {
height: calc(~'100% - 53px')
}
.filter-tree {
height: calc(~'100% - 50px')
}
@import '~@/assets/styles/mixins';
.data-link{
height: 100%;
padding: 0 10px;
background: #fff;
display: flex;
flex-direction: column;
/deep/ .el-tabs {
flex: auto;
display: flex;
flex-direction: column;
/deep/ .el-tabs__header {
margin: 0 !important;
}
.el-tabs__content {
height: 100% !important;
flex: auto;
position: relative;
display: flex;
flex-direction: column;
.el-tab-pane {
height: 100%;
flex: auto;
display: flex;
flex-direction: column;
}
}
}
}
</style>
@@ -0,0 +1,567 @@
<!-- 配置管理 - 链接管理 -->
<template>
<div id="post-manage">
<!-- 头部操作按钮-->
<div class="action-bar">
<el-button
type="primary"
class="common-button-primary add-button"
@click="addLink"
v-btn-permission="'980cb239683de9e29ee5335cec98e5b4'"
size="mini">新增
</el-button>
<!-- <el-button
type="primary"
class="common-button-primary add-button"
@click="linkOrder"
v-btn-permission="'779665b2e4bb20fc480cf9372a100f69'"
size="mini">顺序调整
</el-button>-->
<el-button
type="danger"
class="common-button-primary add-button"
@click="deleteAllLink"
v-btn-permission="'779665b2e4bb20fc480cf9372a100f69'"
size="mini">删除
</el-button>
</div>
<!-- 表格-->
<div class="content">
<el-table
:data="linkListFirst"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-table"
height="100%"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
@selection-change="handleSelectionChange">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="orderBy"
label="序号"
align="center"
width="50px">
</el-table-column>
<el-table-column
prop="name"
label="链接名称">
</el-table-column>
<el-table-column
prop="icon"
label="链接图标">
<template slot-scope="scope">
<img v-if="scope.row.icon !== ''" style="height: 50px;width: 50px" :src="scope.row.icon">
<span v-else>{{ '-' }}</span>
</template>
</el-table-column>
<el-table-column
prop="url"
show-overflow-tooltip
label="链接">
<template slot-scope="scope">
<span v-if="scope.row.url.slice(0,7) === 'http://' || scope.row.url.slice(0,8) === 'https://'" @click="linkto(scope.row.url)" style="color: #0c91e5;cursor: pointer;text-decoration: underline">
{{ scope.row.url }}
</span>
<span v-else @click="linkto('http://' + scope.row.url)" style="color: #0c91e5;cursor: pointer;text-decoration: underline">
{{ 'http://' + scope.row.url }}
</span>
</template>
</el-table-column>
<el-table-column
label="操作"
width="50px">
<template slot-scope="scope">
<div @click.stop style="display: inline-block">
<el-dropdown trigger="click" @command="handleCommand">
<i class="iconfont">&#xe61e;</i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-btn-permission="'0fbb849e244e07433a90180fb314ad10'" :command="[scope.row, '删除']">
删除
</el-dropdown-item>
<el-dropdown-item v-btn-permission="'fa0846d977aeef07e9cb7faf648f8f7f'" :command="[scope.row, '编辑']">
编辑
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</template>
</el-table-column>
</el-table>
</div>
<loading :loading="Loading">加载中...</loading>
<!-- 新增链接弹窗-->
<el-dialog
:close-on-click-modal="false"
:title="dialogTitle"
:visible.sync="modalshowflag"
:wrapperClosable="false"
size="800px"
@close="resetForm"
>
<el-form
ref="sarStandardsInfoForm"
:model="sarStandardsInfoEO"
:rules="sarStandardsInfoRules"
class="label-input-form"
>
<el-form-item label="链接类型" prop="type" label-width="150px" class="add-form-item">
<el-input :disabled="true" v-if="sarStandardsInfoEO.type === 1" value="第一行链接"/>
</el-form-item>
<el-form-item label="链接名称" prop="name" label-width="150px" class="add-form-item">
<el-input
v-model="sarStandardsInfoEO.name"
placeholder="请输入链接名称"
maxlength="20"
show-word-limit
clearable></el-input>
</el-form-item>
<el-form-item label="链接图标" prop="icon" label-width="150px" class="add-form-item">
<el-upload
v-model="sarStandardsInfoEO.icon"
class="upload-demo"
:action="uploadUrl"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
>
<img width="100%" v-if="imageUrl" :src="imageUrl" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
<el-form-item label="链接" prop="url" label-width="150px" class="add-form-item">
<el-input
v-model="sarStandardsInfoEO.url"
maxlength="100"
show-word-limit
placeholder="请输入链接">
</el-input>
</el-form-item>
</el-form>
<span slot="footer" class="demo-drawer-footer">
<el-button class="common-button-default" size="mini" icon="el-icon-close" @click="resetForm">取消</el-button>
<el-button type="primary" size="mini" class="common-button-primary" icon="el-icon-check" @click="submit">确定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import Sortable from 'sortablejs'
import {getImg} from '@/api/linkApi.js'
export default {
name: "firstLink",
data() {
return {
editId: '',
type: '', // 1为新增 2为编辑
dialogTitle: '',
submitLoading: false,
// 向后台传参使用
data: [],
Loading: false,
modalshowflag: false,
// 排序
order: [],
// 表格选取的
selectList: [],
selectId: [],
ids: '',
// 向后台传参使用
sarStandardsInfoEO: {
name: '',
url: '',
icon: '',
type: 1,
// sortId: ''
},
//新增链接未输入时提示
sarStandardsInfoRules: {
name: [
{required: true, message: '请输入链接名称', trigger: 'blur'}
],
url: [
{required: true, message: '请输入链接', trigger: 'blur'}
]
},
modalRole: false,
props: {
label: 'name',
children: 'children'
},
linkListFirst: [],
linkList: [],
sortData: [],
imageUrl: '',
uploadUrl: 'api/att/attFile/upload',
}
},
methods: {
//链接点击跳转,链接形式为http://xxxxxx
linkto(link_href) {
window.open(link_href)
},
//头部新增按钮
addLink() {
this.type = 1
this.dialogTitle = '新增链接'
this.modalshowflag = true
},
//表格中操作列删除操作弹窗
deleteLink(row) {
this.$confirm('此操作将删除该链接, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http.delete('sarUrl/tsUrl/delete', {
id: row.id
}, {
_this: this,
loading: 'Loading'
}, res => {
if (res.ok) {
this.$message.success('删除成功')
let arr = []
for (let a = 0; a < this.linkList.length; a++) {
if (this.linkList[a].id === row.id) {
this.linkList.splice(a, 1)
}
}
this.linkList.forEach((item, index) => {
let json = {}
json.id = item.id
json.orderBy = index + 1
arr.push(json)
})
this.$http.putData('sarUrl/tsUrl/updateOrder', JSON.stringify(arr), {}, res => {
if (res.ok) {
this.linkListFirst = []
this.getLink()
}
})
} else {
this.$message.warning(res.message)
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
//头部删除按钮
deleteAllLink() {
this.selectId = []
for (var i = 0; i < this.selectList.length; i++) {
this.selectId.push(this.selectList[i].id)
}
this.ids = this.selectId.join(",")
if (this.selectList.length === 0) {
this.$message.warning('请选择要删除的链接')
} else {
this.modalRole = true
this.$confirm('此操作将删除链接, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http.delete('sarUrl/tsUrl/deleteBatch', {
ids: this.ids
}, {}, res => {
if (res.ok) {
this.$message.success('删除成功')
let arr = this.linkList.filter(items => {
if (!this.ids.includes(items.id)) return items;
})
let newArr = []
arr.forEach((item, index) => {
let json = {}
json.id = item.id
json.orderBy = index + 1
newArr.push(json)
})
this.$http.putData('sarUrl/tsUrl/updateOrder', JSON.stringify(newArr), {}, res => {
if (res.ok) {
this.linkListFirst = []
this.getLink()
}
})
} else {
this.$message.warning(res.message)
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
}
},
/** 链接图片上传 */
//
handleAvatarSuccess(res, file, fileList) {
if (res.ok) {
this.imageUrl = URL.createObjectURL(file.raw)
this.sarStandardsInfoEO.icon = res.data.attId
this.$message({
showClose: true,
message: res.message,
type: 'success'
})
}
},
// 链接图片上传格式限制
beforeAvatarUpload(file) {
const index = file.name.lastIndexOf('.')
const ext = file.name.substr(index + 1)
const isJPG = (file.type === 'image/jpeg' || file.type === 'image/png');
const isType = (ext === 'jpg' || ext === 'png')
const isLt2M = file.size / 1024 / 1024 < 2;
if (!isJPG || !isType) {
this.$message.error('上传头像图片只能是 .jpg、.png 格式!');
}
if (!isLt2M) {
this.$message.error('上传头像图片大小不能超过 2MB!');
}
return isJPG && isLt2M && isType;
},
//弹窗关闭操作
resetForm() {
this.$refs['sarStandardsInfoForm'].resetFields();
this.imageUrl = ''
this.modalshowflag = false
},
//弹窗确认操作
submit() {
this.$refs['sarStandardsInfoForm'].validate((valid) => {
if (valid) {
if (this.type === 1) {
this.$http.postData('sarUrl/tsUrl/add', {
...this.sarStandardsInfoEO,
}, {
_this: this,
loading: 'Loading'
}, res => {
if (res.ok) {
this.$message.success('新增成功')
this.modalshowflag = false
this.imageUrl = ''
this.linkListFirst = []
this.getLink()
} else {
this.$message.warning(res.message)
}
})
} else {
// 编辑
this.$http.putData('/sarUrl/tsUrl/edit', {
id: this.editId,
name: this.sarStandardsInfoEO.name,
type: this.sarStandardsInfoEO.type,
url: this.sarStandardsInfoEO.url,
icon: this.sarStandardsInfoEO.icon
}, {
_this: this,
loading: 'Loading'
}, res => {
if (res.ok) {
this.$message.success('修改成功')
this.modalshowflag = false
this.linkListFirst = []
this.getLink()
} else {
this.$message.warning(res.message)
}
})
}
} else {
return false;
}
});
},
//表格中操作列
handleCommand(command) {
switch (command[1]) {
case '删除':
this.deleteLink(command[0])
break
case '编辑':
this.editLink(command[0])
break
}
},
//表格中操作列编辑操作弹窗
editLink(row) {
this.type = 2
this.editId = row.id
this.sarStandardsInfoEO.name = row.name
this.sarStandardsInfoEO.url = row.url
this.sarStandardsInfoEO.sortId = row.sortId
this.sarStandardsInfoEO.icon = row.icon
if (row.icon !== '') {
let imgId = {
id: row.id
}
// 图片转base64
getImg(imgId).then(res => {
if (res.ok) {
const src =
"data:image/png;base64," +
btoa(
new Uint8Array(res).reduce(
(data, byte) => data + String.fromCharCode(byte), "")
)
this.imageUrl = src
}
})
}
this.dialogTitle = '修改链接'
this.modalshowflag = true
},
//多选框选择
handleSelectionChange(val) {
this.selectList = val
},
// 获取链接数据
getLink() {
this.$http.get('sarUrl/tsUrl', {}, {
_this: this,
loading: 'Loading'
}, res => {
this.Loading = true
this.linkList = res.data
res.data.forEach(item => {
if (item.type === 1) {
this.linkListFirst.push(item)
}
})
if (this.linkListFirst.length === 0) {
this.Loading = false
}
this.linkListFirst.forEach(item => {
if (item.icon !== '') {
let imgId = {
id: item.id
}
// 图片转base64
getImg(imgId).then(res => {
const src =
"data:image/png;base64," +
btoa(
new Uint8Array(res).reduce(
(data, byte) => data + String.fromCharCode(byte), "")
)
item.icon = src
}, setTimeout(()=>{
this.Loading = false
},1200))
}
})
this.initSortable()
})
},
initSortable() {
this.sortData = [...this.linkListFirst]
const el = document.querySelector('.el-table__body-wrapper tbody')
//创建拖拽对象
this.sortable = Sortable.create(el, {
sort: true, //是否可进行拖拽排序
animation: 150,
onEnd: ({newIndex, oldIndex}) => {
const val = this.sortData[oldIndex]
this.sortData.splice(oldIndex, 1)
this.sortData.splice(newIndex, 0, val)
this.sortData.forEach((item, index) => {
item.orderBy = index + 1
})
let arr = []
this.sortData.forEach(item => {
let json = {}
json.id = item.id
json.orderBy = item.orderBy
arr.push(json)
})
this.$http.putData('sarUrl/tsUrl/updateOrder', JSON.stringify(arr), {}, res => {
if (res.ok) {
this.$message.success('保存成功')
} else {
this.$message.warning('保存失败!')
}
})
}
})
},
},
mounted() {
this.getLink();
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/mixins';
#post-manage {
height: 100%;
.content {
height: calc(~'100% - 53px')
}
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
margin-top: 10px;
border-color: #409EFF;
}
.avatar-uploader {
margin-top: 10px;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 100px;
height: 100px;
line-height: 100px;
text-align: center;
}
.avatar {
width: 100px;
height: 100px;
display: block;
}
.filter-tree {
height: calc(~'100% - 50px')
}
/deep/ .el-input.is-disabled .el-input__inner {
background-color: #fff;
}
}
</style>
@@ -0,0 +1,565 @@
<!-- 配置管理 - 链接管理 -->
<template>
<div id="post-manage">
<!-- 头部操作按钮-->
<div class="action-bar">
<el-button
type="primary"
class="common-button-primary add-button"
@click="addLink"
v-btn-permission="'980cb239683de9e29ee5335cec98e5b4'"
size="mini">新增
</el-button>
<!-- <el-button
type="primary"
class="common-button-primary add-button"
@click="linkOrder"
v-btn-permission="'779665b2e4bb20fc480cf9372a100f69'"
size="mini">顺序调整
</el-button>-->
<el-button
type="danger"
class="common-button-primary add-button"
@click="deleteAllLink"
v-btn-permission="'779665b2e4bb20fc480cf9372a100f69'"
size="mini">删除
</el-button>
</div>
<!-- 表格-->
<div class="content">
<el-table
:data="linkListSecond"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-table"
height="100%"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
@selection-change="handleSelectionChange">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="orderBy"
label="序号"
align="center"
width="50px">
</el-table-column>
<el-table-column
prop="name"
label="链接名称">
</el-table-column>
<el-table-column
prop="icon"
label="链接图标">
<template slot-scope="scope">
<img v-if="scope.row.icon !== ''" style="height: 50px;width: 50px" :src="scope.row.icon">
<span v-else>{{ '-' }}</span>
</template>
</el-table-column>
<el-table-column
prop="url"
show-overflow-tooltip
label="链接">
<template slot-scope="scope">
<span v-if="scope.row.url.slice(0,7) === 'http://' || scope.row.url.slice(0,8) === 'https://'" @click="linkto(scope.row.url)" style="color: #0c91e5;cursor: pointer;text-decoration: underline">
{{ scope.row.url }}
</span>
<span v-else @click="linkto('http://' + scope.row.url)" style="color: #0c91e5;cursor: pointer;text-decoration: underline">
{{ 'http://' + scope.row.url }}
</span>
</template>
</el-table-column>
<el-table-column
label="操作"
width="50px">
<template slot-scope="scope">
<div @click.stop style="display: inline-block">
<el-dropdown trigger="click" @command="handleCommand">
<i class="iconfont">&#xe61e;</i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-btn-permission="'0fbb849e244e07433a90180fb314ad10'" :command="[scope.row, '删除']">
删除
</el-dropdown-item>
<el-dropdown-item v-btn-permission="'fa0846d977aeef07e9cb7faf648f8f7f'" :command="[scope.row, '编辑']">
编辑
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</template>
</el-table-column>
</el-table>
</div>
<loading :loading="Loading">加载中...</loading>
<!-- 新增链接弹窗-->
<el-dialog
:close-on-click-modal="false"
:title="dialogTitle"
:visible.sync="modalshowflag"
:wrapperClosable="false"
size="800px"
@close="resetForm"
>
<el-form
ref="sarStandardsInfoForm"
:model="sarStandardsInfoEO"
:rules="sarStandardsInfoRules"
class="label-input-form"
>
<el-form-item label="链接类型" prop="type" label-width="150px" class="add-form-item">
<el-input :disabled="true" v-if="sarStandardsInfoEO.type === 2" value="第二行链接"/>
</el-form-item>
<el-form-item label="链接名称" prop="name" label-width="150px" class="add-form-item">
<el-input
v-model="sarStandardsInfoEO.name"
placeholder="请输入链接名称"
maxlength="30"
show-word-limit
clearable></el-input>
</el-form-item>
<el-form-item label="链接图标" prop="icon" label-width="150px" class="add-form-item">
<el-upload
v-model="sarStandardsInfoEO.icon"
class="avatar-uploader"
:action="uploadUrl"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload">
<img v-if="imageUrl" :src="imageUrl" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
<el-form-item label="链接" prop="url" label-width="150px" class="add-form-item">
<el-input
v-model="sarStandardsInfoEO.url"
maxlength="100"
show-word-limit
placeholder="请输入链接">
</el-input>
</el-form-item>
</el-form>
<span slot="footer" class="demo-drawer-footer">
<el-button class="common-button-default" size="mini" icon="el-icon-close" @click="resetForm">取消</el-button>
<el-button type="primary" size="mini" class="common-button-primary" icon="el-icon-check" @click="submit">确定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import Sortable from 'sortablejs'
import {getImg} from '@/api/linkApi.js'
import listOfCost from "../../../../regulatoryRepository/dataStatis/page/listOfCost";
export default {
name: "secondLink",
data() {
return {
editId: '',
type: '', // 1为新增 2为编辑
dialogTitle: '',
submitLoading: false,
// 向后台传参使用
data: [],
Loading: false,
modalshowflag: false,
// 排序
order: [],
// 表格选取的
selectList: [],
selectId: [],
ids: '',
// 向后台传参使用
sarStandardsInfoEO: {
name: '',
url: '',
icon: '',
type: 2,
// sortId: ''
},
//新增链接未输入时提示
sarStandardsInfoRules: {
name: [
{required: true, message: '请输入链接名称', trigger: 'blur'}
],
url: [
{required: true, message: '请输入链接', trigger: 'blur'}
]
},
modalRole: false,
props: {
label: 'name',
children: 'children'
},
linkList: [],
linkListSecond: [],
sortData: [],
imageUrl: '',
uploadUrl: 'api/att/attFile/upload',
verifyImg: ''
}
},
methods: {
//链接点击跳转,链接形式为http://xxxxxx
linkto(link_href) {
window.open(link_href)
},
//头部新增按钮
addLink() {
this.type = 1
this.dialogTitle = '新增链接'
this.modalshowflag = true
},
//表格中操作列删除操作弹窗
deleteLink(row) {
this.$confirm('此操作将删除该链接, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http.delete('sarUrl/tsUrl/delete', {
id: row.id
}, {
_this: this,
loading: 'Loading'
}, res => {
if (res.ok) {
this.$message.success('删除成功')
let arr = []
for (let a = 0; a < this.linkList.length; a++) {
if (this.linkList[a].id === row.id) {
this.linkList.splice(a, 1)
}
}
this.linkList.forEach((item, index) => {
let json = {}
json.id = item.id
json.orderBy = index + 1
arr.push(json)
})
this.$http.putData('sarUrl/tsUrl/updateOrder', JSON.stringify(arr), {}, res => {
if (res.ok) {
this.linkListSecond = []
this.getLink()
}
})
} else {
this.$message.warning(res.message)
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
//头部删除按钮
deleteAllLink() {
this.selectId = []
for (var i = 0; i < this.selectList.length; i++) {
this.selectId.push(this.selectList[i].id)
}
this.ids = this.selectId.join(",")
if (this.selectList.length === 0) {
this.$message.warning('请选择要删除的链接')
} else {
this.modalRole = true
this.$confirm('此操作将删除链接, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http.delete('sarUrl/tsUrl/deleteBatch', {
ids: this.ids
}, {}, res => {
if (res.ok) {
this.$message.success('删除成功')
let arr = this.linkList.filter(items => {
if (!this.ids.includes(items.id)) return items;
})
let newArr = []
arr.forEach((item, index) => {
let json = {}
json.id = item.id
json.orderBy = index + 1
newArr.push(json)
})
this.$http.putData('sarUrl/tsUrl/updateOrder', JSON.stringify(newArr), {}, res => {
if (res.ok) {
this.linkListSecond = []
this.getLink()
}
})
} else {
this.$message.warning(res.message)
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
}
},
/** 链接图片上传 */
//
handleAvatarSuccess(res, file, fileList) {
if (res.ok) {
this.imageUrl = URL.createObjectURL(file.raw)
this.sarStandardsInfoEO.icon = res.data.attId
this.$message({
showClose: true,
message: res.message,
type: 'success'
})
}
},
// 链接图片上传格式限制
beforeAvatarUpload(file) {
const index = file.name.lastIndexOf('.')
const ext = file.name.substr(index + 1)
const isJPG = (file.type === 'image/jpeg' || file.type === 'image/png');
const isType = (ext === 'jpeg' || ext === 'jpg' || ext === 'png')
const isLt2M = file.size / 1024 / 1024 < 2;
if (!isJPG || !isType) {
this.$message.error('上传头像图片只能是 .jpg、.jpeg、.png 格式!');
}
if (!isLt2M) {
this.$message.error('上传头像图片大小不能超过 2MB!');
}
return isJPG && isLt2M && isType;
},
//弹窗关闭操作
resetForm() {
this.$refs['sarStandardsInfoForm'].resetFields();
this.imageUrl = ''
this.modalshowflag = false
},
//弹窗确认操作
submit() {
this.$refs['sarStandardsInfoForm'].validate((valid) => {
if (valid) {
if (this.type === 1) {
this.$http.postData('sarUrl/tsUrl/add', {
...this.sarStandardsInfoEO,
}, {
_this: this,
loading: 'Loading'
}, res => {
if (res.ok) {
this.$message.success('新增成功')
this.modalshowflag = false
this.linkListSecond = []
this.getLink()
} else {
this.$message.warning(res.message)
}
})
} else {
// 编辑
this.$http.putData('/sarUrl/tsUrl/edit', {
id: this.editId,
type: this.sarStandardsInfoEO.type,
url: this.sarStandardsInfoEO.url,
icon: this.sarStandardsInfoEO.icon
}, {
_this: this,
loading: 'Loading'
}, res => {
if (res.ok) {
this.$message.success('修改成功')
this.modalshowflag = false
this.linkListSecond = []
this.getLink()
} else {
this.$message.warning(res.message)
}
})
}
} else {
return false;
}
});
},
//表格中操作列
handleCommand(command) {
switch (command[1]) {
case '删除':
this.deleteLink(command[0])
break
case '编辑':
this.editLink(command[0])
break
}
},
//表格中操作列编辑操作弹窗
editLink(row) {
this.type = 2
this.editId = row.id
this.sarStandardsInfoEO.name = row.name
this.sarStandardsInfoEO.url = row.url
this.sarStandardsInfoEO.sortId = row.sortId
this.sarStandardsInfoEO.icon = row.icon
if (row.icon !== '') {
let imgId = {
id: row.id
}
// 图片转base64
getImg(imgId).then(res => {
const src =
"data:image/png;base64," +
btoa(
new Uint8Array(res).reduce(
(data, byte) => data + String.fromCharCode(byte), "")
)
this.imageUrl = src
})
}
this.dialogTitle = '修改链接'
this.modalshowflag = true
},
//多选框选择
handleSelectionChange(val) {
this.selectList = val
},
// 获取链接数据
getLink() {
this.$http.get('sarUrl/tsUrl', {}, {
_this: this,
loading: 'Loading'
}, res => {
this.Loading = true
this.linkList = res.data
res.data.forEach(item => {
if (item.type === 2) {
this.linkListSecond.push(item)
}
})
if (this.linkListSecond.length === 0) {
this.Loading = false
}
this.linkListSecond.forEach(item => {
if (item.icon !== '') {
let imgId = {
id: item.id
}
// 图片转base64
getImg(imgId).then(res => {
const src =
"data:image/png;base64," +
btoa(
new Uint8Array(res).reduce(
(data, byte) => data + String.fromCharCode(byte), "")
)
item.icon = src
}, setTimeout(()=>{
this.Loading = false
},1200))
}
})
this.initSortable()
})
},
initSortable() {
this.sortData = [...this.linkListSecond]
const el = document.querySelector('.el-table__body-wrapper tbody')
//创建拖拽对象
this.sortable = Sortable.create(el, {
sort: true, //是否可进行拖拽排序
animation: 150,
onEnd: ({newIndex, oldIndex}) => {
const val = this.sortData[oldIndex]
this.sortData.splice(oldIndex, 1)
this.sortData.splice(newIndex, 0, val)
this.sortData.forEach((item, index) => {
item.orderBy = index + 1
})
let arr = []
this.sortData.forEach(item => {
let json = {}
json.id = item.id
json.orderBy = item.orderBy
arr.push(json)
})
this.$http.putData('sarUrl/tsUrl/updateOrder', JSON.stringify(arr), {}, res => {
if (res.ok) {
this.$message.success('保存成功')
} else {
this.$message.warning('保存失败!')
}
})
}
})
},
},
mounted() {
this.getLink();
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/mixins';
#post-manage {
height: 100%;
.content {
height: calc(~'100% - 53px')
}
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
margin-top: 10px;
border-color: #409EFF;
}
.avatar-uploader {
margin-top: 10px;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 100px;
height: 100px;
line-height: 100px;
text-align: center;
}
.avatar {
width: 100px;
height: 100px;
display: block;
}
.filter-tree {
height: calc(~'100% - 50px')
}
/deep/ .el-input.is-disabled .el-input__inner {
background-color: #fff;
}
}
</style>
+2 -15
View File
@@ -4,15 +4,13 @@
<el-divider content-position="left" v-if="unfit.length < 1 && fit.length < 1" >暂无评估结果</el-divider>
<!-- 不满足-->
<el-divider content-position="left" v-if="unfit.length" >不满足</el-divider>
<div class="content">
<el-table
height="100%"
ref="selection"
v-if="unfit.length"
:data="unfit"
tooltip-effect="dark"
border
style="width: 100%; min-height: 300px; margin-bottom: 30px;"
style="width: 100%; min-height: 400px; margin-bottom: 30px;"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
@@ -60,19 +58,16 @@
</el-table>
<!-- <pagination :page="page" :total="total" @pageChange="pageChange"-->
<!-- @pageSizeChange="pageSizeChange"></pagination>-->
</div>
<!--满足-->
<el-divider content-position="left" v-if="fit.length">满足</el-divider>
<div class="content">
<el-table
height="100%"
ref="selection"
v-if="fit.length"
:data="fit"
tooltip-effect="dark"
border
style="width: 100%; min-height: 300px; margin-bottom: 30px;"
style="width: 100%; min-height: 400px; margin-bottom: 30px;"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
@@ -103,7 +98,6 @@
</template>
</el-table-column>
</el-table>
</div>
<!-- <pagination :page="page" :total="total" @pageChange="pageChange"-->
<!-- @pageSizeChange="pageSizeChange"></pagination>-->
<loading :loading="loading">加载中...</loading>
@@ -170,12 +164,5 @@ export default {
//width: 1200px;
//margin: 0 auto;
height: 100%;
.content{
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'50% - 30px');
overflow: auto;
}
}
</style>
@@ -22,6 +22,85 @@
style="border-top:none;position: absolute;right: 36px;">
<div class="modular-header" style="height: 50px;">
<div class="modular-header-btn">
<el-button type="warning" icon="el-icon-edit" @click="businessCommentDialog = true">企标评价</el-button>
<el-dialog title="企业标准动态评价表" :visible.sync="businessCommentDialog" width="54%" :close-on-click-modal="false">
<el-table ref="businessCommentTable" :data="businessCommentTable.filter((v) => v.code !== '3U9lb')" border style="width: 100%; flex: auto;margin-bottom: 2%"
class="comment-table"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="index"
label="序号"
width="55"
align="center"
/>
<el-table-column prop="threeIndexTitle" label="评价指标" width="300">
<!--commentTarget-->
<template slot-scope="scope">
<span>{{scope.row.threeIndexTitle}}</span>
</template>
</el-table-column>
<el-table-column prop="targetScore" label="指标分值" width="165">
<template slot-scope="scope">
<el-col :span="20">
<el-rate
v-model="scope.row.targetScore"
@change="targetScoreChange(scope.row)"
allow-half>
</el-rate>
</el-col>
<b style="margin-left: 5px;font-size: 12px;">{{ scope.row.targetScore * 2 }}</b>
</template>
</el-table-column>
<el-table-column property="reason" label="简述理由">
<template slot-scope="scope">
<el-input clearable size="mini" placeholder="请简述评分理由" @change="commentReasonChange(scope.row)" v-model="scope.row.commentReason" />
</template>
</el-table-column>
</el-table>
<el-form :model="businessCommentForm">
<el-form-item label="动态评价分值">
<el-col :span="4">
<el-rate
v-model="businessCommentForm.averageScore"
disabled
style="margin-top: 12px"
text-color="#ff9900">
</el-rate>
</el-col>
<b style="margin-top: 5px">{{ businessCommentForm.averageScore * 2 }}</b>
</el-form-item>
<el-form-item label="对标准的意见和建议,是否需要修订">
<template>
<el-radio v-model="businessCommentForm.revise" label="1"></el-radio>
<el-radio v-model="businessCommentForm.revise" label="0"></el-radio>
<el-input v-show="businessCommentForm.revise === '1'"
v-model="businessCommentForm.reviseReason"
placeholder="请填写修订理由"
type="textarea"
:rows="2"></el-input>
</template>
</el-form-item>
</el-form>
<div style="padding-left: 80%">
<el-button
type="primary"
class="common-button-primary"
size="mini"
:loading="commentSubmitLoading"
icon="el-icon-check"
@click="commentSubmit"
>提交
</el-button>
<el-button
size="mini"
icon="el-icon-close"
class="common-button-default"
@click="businessCommentDialog = false"
>取消
</el-button>
</div>
</el-dialog>
<el-button v-if="sarStandardsInfoEO.collectId" @click="collectClick(sarStandardsInfoEO.collectId)" title="取消收藏" class="collection-btn" icon="el-icon-star-on" :loading="isSubmit"></el-button>
<el-button v-else @click="collectClick()" title="收藏" class="collection-btn" icon="el-icon-star-off" :loading="isSubmit"></el-button>
<el-button class="relation-btn" icon="icon-relation" @click="relateEvent()">更新记录</el-button>
@@ -987,6 +1066,26 @@ export default {
},
data () {
return {
indexType: 'dynamic',
commentReason: '', // 评价理由
commentReason1: '', // 评价理由
commentReason2: '', // 评价理由
commentReason3: '', // 评价理由
commentReason4: '', // 评价理由
commentSubmitLoading: false,
targetScore: '', // 指标分值
targetScore1: '',
targetScore2: '',
targetScore3: '',
targetScore4: '',
businessCommentDialog: false,
businessCommentForm: {
averageScore: '', // 平均分值
revise: '',
reviseReason: '', // 修订理由
},
businessCommentTable: [],
commentTarget: '', // 评价指标
activeNames: ['基础信息','过程稿件','实施日期'],
activeState: true,
visiblePlanCheck: false,
@@ -1194,6 +1293,101 @@ export default {
watch: {
},
methods: {
targetScoreChange(row){
if (this.targetScore1 === '') {
this.targetScore1 = 0
}
if (this.targetScore2 === '') {
this.targetScore2 = 0
}
if (this.targetScore3 === '') {
this.targetScore3 = 0
}
if (this.targetScore4 === '') {
this.targetScore4 = 0
}
switch (row.threeIndexTitle){
case "企业标准内容完整、要求合理(指标、流程等。)":
this.targetScore1 = 0
this.targetScore1 = row.targetScore
break
case "企业标准便于实施应用":
this.targetScore2 = 0
this.targetScore2 = row.targetScore
break
case "标准编写规范,内容清晰易理解":
this.targetScore3 = 0
this.targetScore3 = row.targetScore
break
case "标准对我的实际工作很有帮助":
this.targetScore4 = 0
this.targetScore4 = row.targetScore
break
}
this.businessCommentForm.averageScore = (this.targetScore1 + this.targetScore2 + this.targetScore3 +this.targetScore4)/4
},
commentReasonChange(row){
if (row.threeIndexTitle === '企业标准内容完整、要求合理(指标、流程等。)'){
this.commentReason1 = row.commentReason
}
if (row.threeIndexTitle === '企业标准便于实施应用'){
this.commentReason2 = row.commentReason
}
if (row.threeIndexTitle === '标准编写规范,内容清晰易理解'){
this.commentReason3 = row.commentReason
}
if (row.threeIndexTitle === '标准对我的实际工作很有帮助'){
this.commentReason4 = row.commentReason
}
},
commentSubmit(){
//验证必填
let submitFlag = true
if (this.targetScore1 === '' || this.targetScore1 === 0 ||
this.targetScore2 === '' || this.targetScore2 === 0 ||
this.targetScore3 === '' || this.targetScore3 === 0 ||
this.targetScore4 === '' || this.targetScore4 === 0) {
submitFlag = false
this.$message.warning('请评价指标分值')
}else if (
(this.commentReason1 === '' && this.targetScore1 < 3) ||
(this.commentReason2 === '' && this.targetScore2 < 3) ||
(this.commentReason3 === '' && this.targetScore3 < 3) ||
(this.commentReason4 === '' && this.targetScore4 < 3)
) {
submitFlag = false
this.$message.warning('请简述低分理由')
} else if (this.businessCommentForm.revise === ''){
submitFlag = false
this.$message.warning('请选择是否需要修订')
}else if (this.businessCommentForm.revise === '1' && this.businessCommentForm.reviseReason === ''){
submitFlag = false
this.$message.warning('请填写修订理由')
}
if (submitFlag === true) {
this.$message.success('通过')
const allData = {
tableData: this.businessCommentTable,
formData: JSON.stringify(this.businessCommentForm),
standId: this.sarStandardsInfoEO.id,
userId: this.$store.getters.userInfo.userId
}
console.log(allData)
this.$http.postData('sarEnterpriseStandardEvaluation/quality-evaluation/submitEvaluationForm', allData, {
_this: this
}, res => {
console.log(res)
}, e => {
})
}
},
child1Func(child1){
const list = []
if(child1 && child1.length > 1){
@@ -2189,6 +2383,14 @@ export default {
// }
},
async mounted () {
this.$http.get('sarEnterpriseStandardEvaluation/evaluation-index/getEvaluationIndex', {indexType:this.indexType}, {
_this: this
}, res => {
console.log('2371',res)
this.businessCommentTable = res.data
console.log(this.businessCommentTable)
}, e => {
})
this.sarStandardsInfoEO.id = this.$route.params.id
this.getOrgTreeSource()
this.standItemEO.standId = this.$route.params.id
@@ -3,7 +3,10 @@
<div class="other-standard-details v-class" :class="{'hidden': !isMoreAwayBtn}">
<!--title 标题-->
<div class="details-header">
<span>{{ sarStandardsInfoEO.standSortShow || '' }} {{
<span v-if="sarStandardsInfoEO.standYear === null">{{ sarStandardsInfoEO.standSortShow || '' }} {{
sarStandardsInfoEO.standNumber
}} {{ sarStandardsInfoEO.standName }}</span>
<span v-else>{{ sarStandardsInfoEO.standSortShow || '' }} {{
sarStandardsInfoEO.standNumber
}}-{{ sarStandardsInfoEO.standYear }} {{ sarStandardsInfoEO.standName }}</span>
</div>
@@ -46,7 +49,7 @@
<div class="details-content-modular basic-information" style="border-top:none">
<div class="basic-information-content">
<!-- <p><label style=" margin-right: 150px;">标准类别</label><span>{{ sarStandardsInfoEO.standSort || '-' }}</span></p>-->
<p style="color: #C42626;" class="">
<p class="">
<label style=" margin-right: 164px;">标准号</label>
<span v-if="sarStandardsInfoEO.standYear">{{
sarStandardsInfoEO.standSortShow + ' ' + sarStandardsInfoEO.standNumber + '-' + sarStandardsInfoEO.standYear
@@ -106,7 +109,7 @@
<label style=" margin-right: 150px;"
title="“计划修订”、“修订中”均为现行有效版本;“已修订”标准的有效性根据实际实施情况判定。"
>文本状态</label>
<span style="color: #409EFF;">{{ textStatusMap[sarStandardsInfoEO.textStatus] || '-' }}</span>
<span>{{ textStatusMap[sarStandardsInfoEO.textStatus] || '-' }}</span>
</p>
<p class="half"><label style=" margin-right: 150px;">发布日期</label><span>{{
sarStandardsInfoEO.issueTime || '-'
@@ -3599,13 +3602,14 @@ export default {
}
& > div:not(.modular-item-more) {
/*border-bottom: 1px solid #E5E5E5;*/
//英文名称变粗
border-bottom: 1px solid #E5E5E5;
min-height: 43px;
line-height: 43px;
.modular-content-p-name {
display: inline-block;
width: 220px;
width: 213px;
height: 43px;
line-height: 43px;
font-size: 16px;
@@ -3619,10 +3623,10 @@ export default {
.modular-content-p-val {
display: inline-block;
width: calc(~'100% - 225px');
min-height: 50px;
line-height: 50px;
font-size: 16px;
color: #999999;
//min-height: 50px;
//line-height: 50px;
//font-size: 16px;
//color: #999999;
word-break: break-all;
//overflow: hidden;
//white-space: nowrap;
@@ -3636,9 +3640,10 @@ export default {
& > .files-title {
width: calc(~'100% - 120px');
min-height: 50px;
line-height: 50px;
font-size: 16px;
//报批稿撑开
//min-height: 50px;
//line-height: 50px;
//font-size: 16px;
color: #409EFF;
& > a {
@@ -3668,7 +3673,8 @@ export default {
.decomposition-btn {
position: absolute;
top: 10px;
//报批稿撑开
//top: 10px;
right: 0;
padding: 0 10px;
height: 30px;
+6 -6
View File
@@ -3,7 +3,7 @@
<div>
<div v-if="label" class="icon-style">
<span v-for="item in icons" v-if="item.label === label" :class="item.icon" style="font-size: 20px;">
<span style="padding-left: 10px; font-size: 16px">
<span style="font-size: 15px;">
{{ label }}
</span>
</span>
@@ -67,7 +67,7 @@
<style lang="less" scoped>
.wx-card {
line-height: 70px;
line-height: 50px;
text-align: center;
background: #fff;
display: flex;
@@ -79,7 +79,7 @@
& > div {
border-radius: 5px;
width: 100%;
height: 70px;
height: 50px;
color: #fff;
background-color: #4788c0;
}
@@ -91,7 +91,7 @@
}
}
.wx-card1 {
line-height: 70px;
line-height: 50px;
text-align: center;
background: #fff;
display: flex;
@@ -102,7 +102,7 @@
padding-left: 10px;
& > div {
width: 100%;
height: 70px;
height: 50px;
background: #fff;
border: 2px dashed #E4E4E4;
border-radius: 5px;
@@ -119,7 +119,7 @@
display: flex;
align-items: center;
.el-icon-circle-plus-outline {
font-size: 50px;
font-size: 40px;
color: #E4E4E4;
}
}
+219 -189
View File
@@ -1,202 +1,232 @@
<!-- 尾部链接 -->
<template>
<div class="link" id="link">
<!-- 此部分暂时这样写到后面做修改 -->
<div style="display: inline-block;width: 15%;">
<span class="title borderRight">友情链接</span>
</div>
<div style="display: inline-block;width: 80%;text-align: center">
<div>
<el-row>
<el-col :span="4">
<a style="color: #0068B7;" href="http://www.sac.gov.cn/" target="_blank">国标委</a>
</el-col>
<el-col :span="1">
<span class="borderMiddle"></span>
</el-col>
<el-col :span="4">
<a style="color: #0068B7;" href="http://www.catarc.org.cn/" target="_blank">汽标委</a>
</el-col>
<el-col :span="1">
<span class="borderMiddle"></span>
</el-col>
<el-col :span="4">
<a style="color: #0068B7;" href="http://openstd.samr.gov.cn/bzgk/gb/index" target="_blank">国标全文公开</a>
</el-col>
<el-col :span="1">
<span class="borderMiddle"></span>
</el-col>
<el-col :span="4">
<a style="color: #0068B7;" href="http://std.samr.gov.cn/" target="_blank">全国标准信息公共服务</a>
</el-col>
<el-col :span="1">
<span class="borderMiddle"></span>
</el-col>
<el-col :span="4">
<a style="color: #0068B7;" href="http://jtst.mot.gov.cn/" target="_blank">交通部标准信息</a>
</el-col>
</el-row>
</div>
<div>
<el-row>
<el-col :span="4">
<a style="color: #0068B7;" href="https://www.un.org/zh/aboutun/structure/unece/" target="_blank">欧洲经济委员会</a>
</el-col>
<el-col :span="1">
<span class="borderMiddle"></span>
</el-col>
<el-col :span="4">
<a style="color: #0068B7;" href="https://eur-lex.europa.eu" target="_blank">欧盟</a>
</el-col>
<el-col :span="1">
<span class="borderMiddle"></span>
</el-col>
<el-col :span="4">
<a style="color: #0068B7;" href="https://www.interregs.com/" target="_blank">InterRegs </a>
</el-col>
<el-col :span="1">
<span class="borderMiddle"></span>
</el-col>
<el-col :span="4">
<a style="color: #0068B7;" href="https://tbt.sist.org.cn/cslm/wtotbttb/" target="_blank">WTO/TBT通报</a>
</el-col>
<el-col :span="1">
<span class="borderMiddle"></span>
</el-col>
<el-col :span="4">
<a style="color: #0068B7;" href="https://www.iso.org/home.html" target="_blank">ISO</a>
</el-col>
</el-row>
</div>
</div>
<div style="display: inline-block;width: 15%;">
<span class="borderLeft"></span>
<span class="myLi1" @click="$router.push('linkManage')">更多链接 </span></div>
<!-- <div>
<span class="myLi1 borderRight" v-for="(link, index) in linkList" :key="index" @click="openLinkUrl(link.url)" :title="link.name" >
{{ link.name }}
</span>
<span class="myLi1" @click="$router.push('linkManage')">更多链接 </span>
</div>
<div v-show="false">
<span class="myLi1 borderRight" v-for="(link, index) in linkList" :key="index" @click="openLinkUrl(link.url)" :title="link.name" >
{{ link.name }}
</span>
<span class="myLi1" @click="$router.push('linkManage')">更多链接 </span>
</div>-->
<div class="link" id="link">
<!-- 此部分暂时这样写到后面做修改 -->
<div style="display: inline-block;width: 15%;">
<span class="title borderRight">友情链接</span>
</div>
<div style="display: inline-block;width: 80%;text-align: center">
<el-row>
<span v-for="(item, index) in linkListFirst" :key="index">
<el-col :span="4">
<img
style="height: 10px;width: 10px;margin-bottom: 3px"
:src="item.icon"
v-if="index < 5">
<a v-if="index < 5" style="color: #0068B7;" @click="openLinkUrl(item.url)" target="_blank">
<a v-if="item.name.length > 8"> {{ item.name.slice(0, 8) + '...' }}</a>
<a v-else>{{ item.name }}</a>
</a>
</el-col>
<el-col :span="1" v-if="index < 4" v-show="true">
<span class="borderMiddle"></span>
</el-col>
<el-col :span="1" v-else v-show="false">
<span class="borderMiddle"></span>
</el-col>
</span>
</el-row>
<el-row style="margin-bottom: 10px;">
<span v-for="(item, index) in linkListSecond" :key="index">
<el-col :span="4">
<img
style="height: 10px;width: 10px;margin-bottom: 3px"
:src="item.icon"
v-if="index < 5">
<a v-if="index < 5" style="color: #0068B7;" @click="openLinkUrl(item.url)" target="_blank">
<a v-if="item.name.length > 8"> {{ item.name.slice(0, 8) + '...' }}</a>
<a v-else>{{ item.name }}</a>
</a>
</el-col>
<el-col :span="1" v-if="index < 4" v-show="true">
<span class="borderMiddle"></span>
</el-col>
<el-col :span="1" v-else v-show="false">
<span class="borderMiddle"></span>
</el-col>
</span>
</el-row>
</div>
<div style="display: inline-block;width: 15%;">
<span class="borderLeft"></span>
<span class="myLi1" @click="$router.push('linkManage')">更多链接 </span>
</div>
</div>
</template>
<script>
export default {
name: 'Empennage',
components: {},
mixins: [],
data() {
return {
linkList: [],
width: ''
}
},
computed: {},
watch: {
width(val) {
console.log(val);
}
},
mounted() {
this.getLink();
this.width = document.getElementById("link").offsetWidth
let self = this
this.screenWidth = document.body.clientWidth
window.onresize = () => {
return (() => {
console.log(document.body.clientWidth);
})
}
},
methods: {
// 跳转链接
openLinkUrl (linkUri) {
let getHttp = linkUri.substring(0, 7)
let getHttps = linkUri.substring(0, 8)
if (getHttp === 'http://' || getHttps === 'https://') {
window.open(linkUri)
} else {
window.open('https://' + linkUri)
}
},
// 获取链接数据
getLink () {
var width = document.getElementById("link").offsetWidth
this.$http.get('sarUrl/tsUrl', {
}, {
_this: this,
loading: 'Loading'
}, res=> {
let b = 0
let c = 0
for (let a = 0; a < res.data.length; a++) {
b += res.data[a].name.length * 14 + 100
if (b > width) {
c = a - 1
} else {
c = a
}
}
let list
list = res.data.slice(0, c)
this.linkList = list
})
}
},
import {getImg} from '@/api/linkApi.js'
export default {
name: 'Empennage',
filters: {
snippet: function (value) {
if (value && value.length > 8) {
return value.slice(0, 8) + '...'
} else {
return value
}
}
},
components: {},
mixins: [],
data() {
return {
linkListFirst: [],
linkListSecond: [],
width: '',
verifyImg: '',
}
},
computed: {},
watch: {
width(val) {
console.log(val);
}
},
mounted() {
this.getLink();
/*this.width = document.getElementById("link").offsetWidth
let self = this
this.screenWidth = document.body.clientWidth
window.onresize = () => {
return (() => {
console.log(document.body.clientWidth);
})
}*/
},
methods: {
// 跳转链接
openLinkUrl(linkUri) {
let getHttp = linkUri.substring(0, 7)
let getHttps = linkUri.substring(0, 8)
if (getHttp === 'http://' || getHttps === 'https://') {
window.open(linkUri)
} else {
window.open('https://' + linkUri)
}
},
// 获取链接数据
getLink() {
// var width = document.getElementById("link").offsetWidth
this.$http.get('sarUrl/tsUrl', {}, {
_this: this,
loading: 'Loading'
}, res => {
/* let b = 0
let c = 0
for (let a = 0; a < res.data.length; a++) {
b += res.data[a].name.length * 14 + 100
if (b > width) {
c = a - 1
} else {
c = a
}
}*/
/*let list
list = res.data*/
res.data.forEach(item => {
if (item.type === 1) {
this.linkListFirst.push(item)
} else if (item.type === 2) {
this.linkListSecond.push(item)
}
})
this.linkListFirst.forEach(item => {
if (item.icon !== '') {
let imgId = {
id: item.id
}
// 图片转base64
getImg(imgId).then(res => {
const src =
"data:image/png;base64," +
btoa(
new Uint8Array(res).reduce(
(data, byte) => data + String.fromCharCode(byte), "")
)
item.icon = src
})
}
})
this.linkListSecond.forEach(item => {
if (item.icon !== '') {
let imgId = {
id: item.id
}
// 图片转base64
getImg(imgId).then(res => {
const src =
"data:image/png;base64," +
btoa(
new Uint8Array(res).reduce(
(data, byte) => data + String.fromCharCode(byte), "")
)
item.icon = src
})
}
})
})
},
},
}
</script>
<style lang="less" scoped>
.link {
margin-right: 10px;
display: flex;
border-radius: 3px;
height: 100%;
align-items: center;
box-shadow: 1px 1px 10px rgba(0,0,0,0.1);
.borderRight {
//padding-right: 50px;
//margin-right: 50px;
border-right: 2px dotted #aaa;
}
.borderLeft {
margin-right: 50px;
//padding-left: 50px;
//margin-left: 50px;
border-left: 2px dotted #aaa;
}
.borderMiddle {
border-left: 2px dotted #aaa;
}
.title {
padding-right: 40px;
font-weight: bold;
padding-left: 40px;
width: 80px;
}
.myLi1 {
cursor: pointer;
color: #0068B7;
}
.el-col-4 {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
word-break: break-all;
line-height: normal;
margin-top: 10px;
font-size: 5px;
}
}
.link {
background-color: #fff;
margin-right: 10px;
display: flex;
border-radius: 3px;
height: 100%;
align-items: center;
box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1);
.borderRight {
//padding-right: 50px;
//margin-right: 50px;
border-right: 2px dotted #aaa;
}
.borderLeft {
margin-right: 50px;
//padding-left: 50px;
//margin-left: 50px;
border-left: 2px dotted #aaa;
}
.borderMiddle {
border-left: 2px dotted #aaa;
}
.title {
font-size: 15px;
padding-right: 40px;
font-weight: bold;
padding-left: 40px;
width: 80px;
}
.myLi1 {
font-size: 15px;
cursor: pointer;
color: #0068B7;
}
.el-col-1 {
margin-top: 10px;
}
.el-col-4 {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
word-break: break-all;
line-height: normal;
margin-top: 10px;
font-size: 5px;
}
}
</style>
+3 -3
View File
@@ -77,7 +77,7 @@
height: 40px;
line-height: 40px;
background: #fff;
font-size: 14px;
font-size: 15px;
border-radius: 10px;
}
.menu-wrap {
@@ -92,11 +92,11 @@
margin-bottom: 0;
}
.wx-card {
height: 70px;
height: 50px;
width: 33.333333%;
}
.wx-card1 {
height: 70px;
height: 50px;
width: 33.333333%;
}
.menu-item {
+7 -1
View File
@@ -21,7 +21,7 @@
label="序号"
type="index"
align="center"
width="50">
width="55">
</el-table-column>
<el-table-column
prop="standName"
@@ -98,6 +98,12 @@ export default {
<style lang="less" scoped>
.release {
/deep/.el-table th > .cell {
font-size: 15px;
}
/deep/.el-table td > .cell{
font-size: 13px;
}
width: 100%;
.time-title {
margin: 15px;
@@ -22,8 +22,8 @@
placeholder="请输入关键词"
clearable
></el-input>
<el-button style="box-shadow:1px 1px 10px rgba(0,0,0,0.2);margin-left: 5px;" type="primary" @click="search">一般检索</el-button>
<el-button style="box-shadow:1px 1px 10px rgba(0,0,0,0.2);margin-left: 5px;" type="primary" @click="seniorSearch">高级检索</el-button>
<el-button style="box-shadow:1px 1px 10px rgba(0,0,0,0.2);margin-left: 5px;font-size: 15px;" type="primary" @click="search">一般检索</el-button>
<el-button style="box-shadow:1px 1px 10px rgba(0,0,0,0.2);margin-left: 5px;font-size: 15px;" type="primary" @click="seniorSearch">高级检索</el-button>
</div>
</div>
</template>
@@ -106,7 +106,7 @@ export default {
width: 18vm;
height: 40px;
color: #333333;
font-size: 14px;
font-size: 15px;
border: 0;
border-radius: 3px;
background-color: #FFFFFF;
@@ -21,7 +21,7 @@
label="序号"
type="index"
align="center"
width="50">
width="55">
</el-table-column>
<el-table-column
prop="cid"
@@ -91,6 +91,12 @@ export default {
<style lang="less" scoped>
.solicitopinions {
/deep/.el-table th > .cell {
font-size: 15px;
}
/deep/.el-table td > .cell{
font-size: 13px;
}
height: 100%;
width: 100%;
.time-title {
+17 -4
View File
@@ -10,7 +10,8 @@
<ul>
<li v-for="item in toDoTaskList" :key="item.id" class="time-title">
<div style="height: 30px">
<span @click="dealWith(item)" style="line-height: 30px; font-size: 12px;">{{ item.prcName }}</span>
<span @click="dealWith(item)" v-if="item.prcName.length<25" style="line-height: 30px; font-size: 13px;">{{ item.prcName }}</span>
<span @click="dealWith(item)" v-else style="line-height: 30px; font-size: 13px;">{{ item.prcName.substring(0,25)+'...' }}</span>
</div>
</li>
</ul>
@@ -614,7 +615,7 @@ export default {
break
//项目清单确认流程
case '10' :
if(row.taskInfo === '确认人确认'){
if(row.taskInfo === '产品工程经理分发清单'){
this.$router.push({
name: 'xmqdqrStep2',
query: {
@@ -625,7 +626,7 @@ export default {
prcType: row.prcType
}
})
} else if (row.taskInfo === '标准法规部经理审批') {
} else if (row.taskInfo === '确认人确认') {
this.$router.push({
name: 'xmqdqrStep3',
query: {
@@ -636,6 +637,17 @@ export default {
prcType: row.prcType
}
})
}else if(row.taskInfo === '标准法规部经理审批'){
this.$router.push({
name: 'xmqdqrStep5',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
break
case '14':
@@ -1284,9 +1296,10 @@ export default {
display: inline-block;
margin: 15px;
color: #333333;
font-size: 14px;
font-size: 15px;
}
.more {
font-size: 15px;
float: right;
color: #4788c0;
margin: 15px 15px;
+3 -5
View File
@@ -29,9 +29,7 @@
</div>
</div>
<div calss="home_footer" style="padding: 0">
<el-card class="footer">
<Empennage></Empennage>
</el-card>
</div>
</div>
</template>
@@ -142,7 +140,7 @@ export default {
}
::v-deep {
.el-tabs__item {
font-size: 14px;
font-size: 15px;
font-weight: 600;
/*color: #333333;*/
}
@@ -172,7 +170,7 @@ export default {
.right_wrapper {
display: flex;
flex-direction: column;
width: 37vw;
width: 30vw;
height: 100%;
}
.search-condition {
@@ -185,7 +183,7 @@ export default {
/deep/.el-card__body {
padding: 0;
}
.footer {
.home_footer {
height: 70px;
line-height: 33px;
//margin-top: 0.3vh;
+14 -3
View File
@@ -50,6 +50,7 @@
<el-table-column
prop="showNumber"
label="标准号/政策号"
width="150"
align="center">
<template slot-scope="scope">
<a class="table-jump"
@@ -59,6 +60,7 @@
<el-table-column
prop="standName"
label="标准名称/政策名称"
width="300"
show-overflow-tooltip
align="center">
<template slot-scope="scope">
@@ -69,6 +71,7 @@
<el-table-column
prop="fileTypeShow"
label="文本状态"
width="110"
align="center">
</el-table-column>
<el-table-column
@@ -80,6 +83,7 @@
<el-table-column
prop="splitStatus"
label="拆分状态"
width="120"
align="center">
<template slot-scope="scope">
<span v-if="scope.row.splitStatus == '0'">编辑中</span>
@@ -92,6 +96,7 @@
<el-table-column
prop="creationTime"
label="拆分时间"
width="120"
sortable
align="center">
<template slot-scope="scope">
@@ -108,15 +113,21 @@
<el-tag type="danger" size="small" v-else>失败</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="50">
<el-table-column label="操作" align="center" width="80">
<template slot-scope="scope">
<el-dropdown trigger="click" @command="handleCommand">
<el-button
v-btn-permission="'17ba4598eb411d6feed468a2e446a301'"
type="primary"
size="mini"
@click="showUser(scope.row)"
>查看</el-button>
<!-- <el-dropdown trigger="click" @command="handleCommand">
<i class="iconfont">&#xe61e;</i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="[scope.row, '查看']" v-btn-permission="'17ba4598eb411d6feed468a2e446a301'">查看</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '删除']" v-btn-permission="'10ba28487876990927f653a66e1eeb98'">删除</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-dropdown>-->
</template>
</el-table-column>
</el-table>
+43 -10
View File
@@ -153,24 +153,24 @@
<a @click="handlePreview(scope.row)">{{ scope.row.itemsName }}</a>
</template>
</el-table-column>
<el-table-column prop="putTime" label="发布日期" width="120" align="center" sortable>
<el-table-column prop="putTime" label="发布日期" width="120" align="center">
<template slot-scope="scope">
<span>{{ scope.row.putTime ? scope.row.putTime.substring(0, 10) : '' }}</span>
</template>
</el-table-column>
<el-table-column prop="ssrq" label="实施日期" width="120" align="center" sortable>
<el-table-column prop="ssrq" label="实施日期" width="120" align="center">
<template slot-scope="scope">
<span>{{ scope.row.ssrq ? scope.row.ssrq.substring(0,10) : '' }}</span>
<span>{{ scope.row.ssrq }}</span>
</template>
</el-table-column>
<el-table-column prop="xcxssrq" label="新车型实施日期" width="150" align="center" sortable>
<el-table-column prop="xcxssrq" label="新车型实施日期" width="150" align="center">
<template slot-scope="scope">
<span>{{ scope.row.xcxssrq ? scope.row.xcxssrq.substring(0,10) : '' }}</span>
<span>{{ scope.row.xcxssrq }}</span>
</template>
</el-table-column>
<el-table-column prop="zccssrq" label="在产车实施日期" width="150" align="center" sortable>
<el-table-column prop="zccssrq" label="在产车实施日期" width="150" align="center">
<template slot-scope="scope">
<span>{{ scope.row.zccssrq ? scope.row.zccssrq.substring(0,10) : '' }}</span>
<span>{{ scope.row.zccssrq }}</span>
</template>
</el-table-column>
<el-table-column prop="applyType" label="适用车型" align="center">
@@ -440,6 +440,7 @@ export default {
_this: this,
}, res => {
console.log('608',res)
// console.log('608',res.data.records[0].zccssrq.replace(' 00:00:00',''))
// 适用车型转换
for (let a = 0; a < res.data.records.length; a++) {
if (res.data.records[a].applyType !== null) {
@@ -454,6 +455,26 @@ export default {
}
}
}
for (let i = 0; i < res.data.records.length; i++) {
let putTimeReplaceTimes = res.data.records[i].putTime.length/19
let ssrqReplaceTimes = res.data.records[i].ssrq.length/19
let xcxssrqReplaceTimes = res.data.records[i].xcxssrq.length/19
let zccssrqReplaceTimes = res.data.records[i].zccssrq.length/19
for (let j = 0; j < putTimeReplaceTimes; j++) {
res.data.records[i].putTime = res.data.records[i].putTime.replace(' 00:00:00','')
}
for (let j = 0; j < ssrqReplaceTimes; j++) {
res.data.records[i].ssrq = res.data.records[i].ssrq.replace(' 00:00:00','')
}
for (let j = 0; j < xcxssrqReplaceTimes; j++) {
res.data.records[i].xcxssrq = res.data.records[i].xcxssrq.replace(' 00:00:00','')
}
for (let j = 0; j < zccssrqReplaceTimes; j++) {
res.data.records[i].zccssrq = res.data.records[i].zccssrq.replace(' 00:00:00','')
}
}
this.warningTableDatas = res.data.records
this.pageConfig.page = res.data.current
if ((this.warningTableDatas.length === 0 || this.warningTableDatas === []) && this.pageConfig.page !== 1) {
@@ -641,7 +662,20 @@ export default {
}, {
_this: this
}, res => {
console.log('805',res)
// 适用车型转换
for (let a = 0; a < res.data.records.length; a++) {
if (res.data.records[a].applyType !== null) {
let k = (res.data.records[a].applyType || "").split(",");
for (let i in this.energyKindOptions) {
for (let m = 0; m < k.length; m++) {
if (this.energyKindOptions[i].value === k[m]) {
k[m] = this.energyKindOptions[i].label;
}
res.data.records[a].applyType = k.join(",");
}
}
}
}
this.warningTableDatas = res.data.records
this.pageConfig.page = res.data.current
this.pageConfig.pageSize = res.data.size
@@ -650,9 +684,8 @@ export default {
this.warningTableLoading = false
}, e => {
});
});
this.searchBtnClick()
}
};
@@ -0,0 +1,83 @@
<!-- 流程信息公共头部 -->
<template>
<div class="prc-header-wrap">
<div class="process-header">
<span class="process-title">
<slot name="proName"></slot>
<a>(<slot name="proNode"></slot>)</a>
</span>
</div>
<el-divider></el-divider>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
name: 'ProcessHeaderPhone',
mixins: [],
props: {
toggle: {
type: Boolean,
default: false
}
},
components: {},
data () {
return {
activeName: '',
opacityStyle: {},
headerFixed: false
}
},
methods: {
handleBack() {
if (this.$store.state.detailMap !== '') {
this.$router.push({
path: this.$store.state.detailMap,
query: {
prcNum: this.$store.getters.getHandleInfo.prcNum,
tabsName: this.$store.getters.getHandleInfo.tabsName
}
})
this.$store.commit('setDetailMap', '')
} else {
this.$router.push({
name: 'ProcessCenter'
})
}
}
},
computed: {
...mapGetters(['isCollapse'])
},
watch: {},
mounted () {
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.el-divider {
margin: 10px 0 0;
}
.process-header {
position: relative;
padding-top: 10px;
}
.process-title {
margin-left: 10px;
font-size: 18px;
font-weight: bold;
display: inline-block;
height: 30px;
line-height: 30px;
a {
font-size: 14px;
margin-left: 5px;
cursor: default;
color: #888;
}
}
</style>
@@ -21,6 +21,10 @@ export default {
label: "政策入库流程",
value: "laws1"
},
{
label: "企标制修订流程及企业标准库流程",
value: "buss1"
},
{
label: "标准征求意见流程",
value: "3"
@@ -18,7 +18,7 @@
<el-form class="label-input-form" ref="rh_pageData" :model="rh_pageData" :rules="rh_rules" label-width="150px">
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="协会名称:" prop="comityName">
<el-form-item class="add-form-item" label="协会名称:" prop="comityName">
<el-select
v-model="rh_pageData.comityName"
placeholder="请选择标委会">
@@ -31,7 +31,7 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" v-if="rh_pageData.comityName !== ''" prop="comityNameOne">
<el-form-item class="add-form-item" v-if="rh_pageData.comityName !== ''" prop="comityNameOne">
<el-select
v-model="rh_pageData.comityNameOne"
placeholder="请选择分标委">
@@ -44,7 +44,7 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" prop="comityNameTwo" v-if="rh_pageData.comityName !== '' && rh_pageData.comityNameOne !== ''">
<el-form-item class="add-form-item" prop="comityNameTwo" v-if="rh_pageData.comityName !== '' && rh_pageData.comityNameOne !== ''">
<el-select
v-model="rh_pageData.comityNameTwo"
placeholder="请选择工作组">
@@ -59,7 +59,7 @@
</el-row>
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="会员角色:" prop="comityRole">
<el-form-item class="add-form-item" label="会员角色:" prop="comityRole">
<el-select
v-model="rh_pageData.comityRole"
placeholder="请选择会员角色">
@@ -67,12 +67,12 @@
v-for="item in comityRoleOptions"
:key="item.value"
:label="item.label"
:value="item.value"/>
:value="item.label"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="协会状态:" prop="comityState">
<el-form-item class="add-form-item" label="协会状态:" prop="comityState">
<el-select
v-model="rh_pageData.comityState"
placeholder="选择协会状态">
@@ -80,12 +80,12 @@
v-for="item in comityStateOptions"
:key="item.value"
:label="item.label"
:value="item.value"/>
:value="item.label"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="入会性质:" prop="comityKind">
<el-form-item class="add-form-item" label="入会性质:" prop="comityKind">
<el-select
v-model="rh_pageData.comityKind"
placeholder="请选择入会性质">
@@ -93,12 +93,12 @@
v-for="item in comityKindOptions"
:key="item.value"
:label="item.label"
:value="item.value"/>
:value="item.label"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-form-item class="add-form-item" label="信息来源:" prop="infoSources">
<el-form-item class="add-form-item" label="信息来源:" prop="infoSources">
<el-upload
style="width: 30%"
class="upload_style"
@@ -122,7 +122,7 @@
</el-button>
</el-upload>
</el-form-item>
<el-form-item class="add-form-item" label="协会构成:" prop="comityMake">
<el-form-item class="add-form-item" label="协会构成:" prop="comityMake">
<el-form
class="make_form"
ref="rh_pageData.comityMake"
@@ -130,40 +130,40 @@
label-width="auto">
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="资质:">
<el-form-item class="add-form-item" label="资质:">
<el-input
v-model="rh_pageData.comityMake.makeQualification" placeholder="请填写资质"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="成员:">
<el-form-item class="add-form-item" label="成员:">
<el-input v-model="rh_pageData.comityMake.makeRole" placeholder="请填写成员"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="费用估计:">
<el-form-item class="add-form-item" label="费用估计:">
<el-input v-model="rh_pageData.comityMake.makeCost" placeholder="请填写费用估计"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="职责:">
<el-form-item class="add-form-item" label="职责:">
<el-input v-model="rh_pageData.comityMake.makeDuties" placeholder="请填写职责"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="任期:">
<el-form-item class="add-form-item" label="任期:">
<el-input v-model="rh_pageData.comityMake.makeTime" placeholder="请填写任期"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-form-item>
<el-form-item class="add-form-item" label="工作方向:" prop="workPath">
<el-input v-model="rh_pageData.workPath" type="textarea"/>
<el-form-item class="add-form-item" label="工作方向:" prop="workPath">
<el-input v-model="rh_pageData.workPath" type="textarea" placeholder="请填写工作方向"/>
</el-form-item>
<el-form-item class="add-form-item" label="协会外部联系方式:" style="margin-bottom: 50px">
<el-form-item class="add-form-item" label="协会外部联系方式:" style="margin-bottom: 50px">
<div class="comityTel_btn">
<el-button
type="primary"
@@ -196,7 +196,7 @@
align="center"
label="联络人">
<template slot-scope="scope">
<el-input v-model="scope.row.tel_name"/>
<el-input v-model="scope.row.tel_name" placeholder="请填写联络人"/>
</template>
</el-table-column>
<el-table-column
@@ -204,7 +204,7 @@
align="center"
label="单位">
<template slot-scope="scope">
<el-input v-model="scope.row.tel_unit"/>
<el-input v-model="scope.row.tel_unit" placeholder="请填写单位"/>
</template>
</el-table-column>
<el-table-column
@@ -212,7 +212,7 @@
align="center"
label="电话">
<template slot-scope="scope">
<el-input v-model="scope.row.tel_phone"/>
<el-input v-model="scope.row.tel_phone" placeholder="请填写单位"/>
</template>
</el-table-column>
<el-table-column
@@ -220,7 +220,7 @@
align="center"
label="邮箱">
<template slot-scope="scope">
<el-input v-model="scope.row.tel_mail"/>
<el-input v-model="scope.row.tel_mail" placeholder="请填写邮箱"/>
</template>
</el-table-column>
</el-table>
@@ -228,6 +228,19 @@
</el-form>
</div>
</div>
<el-collapse accordion>
<el-collapse-item title="回执说明">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="commentText">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '2'">
<div class="block" style="padding-top: 20px;">
@@ -302,7 +315,7 @@
<h4>标准法规部主管领导</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.leaderUserId" style="display: none;"></el-input>
<el-input v-model="roleForm.leaderUser" placeholder="选择标准法规部主管领导" @click.native="choiceZRROne('leaderUser', '选择标准法规部主管领导', roleForm.leaderUser)">
<el-input v-model="roleForm.leaderUser" placeholder="选择标准法规部主管领导" @click.native="choiceZRROne('leaderUser', '选择标准法规部主管领导', roleForm.leaderUser)">
</el-input>
</div>
</el-form-item>
@@ -469,6 +482,8 @@ export default {
nodeListOne: [],
isSubmit: false,
saveLoading: false,
commentText: '',
}
},
@@ -530,6 +545,7 @@ export default {
this.fileTextList.splice(index, 1)
}
})
this.rh_pageData.infoSources = this.fileTextList
},
// 文件上传成功
handleOnsuccess(res, file, fileList) {
@@ -547,6 +563,7 @@ export default {
})
}
this.fileListData.fileText = this.newDataList
this.rh_pageData.infoSources = this.newDataList
this.$message({
showClose: true,
message: res.message,
@@ -663,7 +680,8 @@ export default {
_formData.append('prcType', '20')
_formData.append('json', JSON.stringify({
roleForm: this.roleForm,
rh_pageData: this.rh_pageData
rh_pageData: this.rh_pageData,
commentText: this.commentText
}))
saveTaskFirst(_formData).then(res => {
this.saveLoading = false
@@ -680,6 +698,7 @@ export default {
prcCreateUserName: this.$store.getters.userInfo.userName,
roleList: this.roleForm,
rh_pageData: this.rh_pageData,
commentText: this.commentText,
directorList: this.rh_pageData.comityInRoleId,
}
this.$refs['rh_pageData'].validate((valid) => {
@@ -17,68 +17,66 @@
<el-form class="label-input-form" ref="rh_pageData" :model="rh_pageData" label-width="150px" :rules="rh_rules">
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="文件编号:" prop="comityFileNum">
{{ rh_pageData.comityFileNum || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="文件名称:" prop="comityFileName">
{{ rh_pageData.comityFileName || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="协会名称:">
<el-form-item class="add-form-item" label="协会名称:">
{{ rh_pageData.comityName || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="协会状态:" prop="comityState">
<el-form-item class="add-form-item" label="协会状态:" prop="comityState">
{{ rh_pageData.comityState || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="入会性质:" prop="comityKind">
<el-form-item class="add-form-item" label="入会性质:" prop="comityKind">
{{ rh_pageData.comityKind || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="资质:">
<el-form-item class="add-form-item" label="资质:">
{{ rh_pageData.comityMake.makeQualification || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="成员:">
<el-form-item class="add-form-item" label="成员:">
{{ rh_pageData.comityMake.makeRole || '' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="费用估计:">
<el-form-item class="add-form-item" label="费用估计:">
{{ rh_pageData.comityMake.makeCost || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="职责:">
<el-form-item class="add-form-item" label="职责:">
{{ rh_pageData.comityMake.makeDuties || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="任期:">
<el-form-item class="add-form-item" label="任期:">
{{ rh_pageData.comityMake.makeTime || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-form-item class="add-form-item" label="工作方向:" prop="workPath">
<el-input v-model="rh_pageData.workPath" type="textarea" :disabled="true" style="width: 50%;height: auto"></el-input>
<el-row>
<el-col :span="24">
<el-form-item class="add-form-item" label="信息来源:" prop="infoSources">
<span v-if="infoSourcesLength === 0">{{ '-' }}</span>
<span v-for="item in rh_pageData.infoSources" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
</span>
</el-form-item>
</el-col>
</el-row>
<el-form-item class="add-form-item" label="工作方向:" prop="workPath">
<el-input v-model="rh_pageData.workPath" type="textarea" readonly style="width: 50%;height: auto"></el-input>
</el-form-item>
<el-form-item class="add-form-item" label="协会外部联系方式:">
<el-form-item class="add-form-item" label="协会外部联系方式:">
<el-table
:data="rh_pageData.comityTel"
border
@@ -97,7 +95,7 @@
<ProcessTitle>
<template slot="title">选择人员</template>
</ProcessTitle>
<el-form-item class="add-form-item" label="入会人员:">
<el-form-item class="add-form-item" label="入会人员:">
<el-input
:disabled="true"
style="width: 30%"
@@ -108,7 +106,7 @@
</div>
</div>
<el-collapse accordion>
<el-collapse-item title="回执说明">
<el-collapse-item title="审批意见">
<div style="margin: 10px 0;">
<el-input
type="textarea"
@@ -243,6 +241,15 @@ export default {
comityTel: [],
comityOpRole: '',
comityInRoleId: '',
fillPeople: '',
fillPeopleId: '',
fillUnit: '',
fillDept: '',
fillPost: '',
fillTel: '',
fillMail: '',
fillLeader: '',
fillLeaderId: '',
},
roleForm: {},
commentText: '',
@@ -257,6 +264,8 @@ export default {
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
infoSourcesLength: ''
}
},
computed: {
@@ -298,6 +307,7 @@ export default {
this.rh_pageData = JSON.parse(JSON.stringify(item)).rh_pageData
this.rh_pageData.comityOpRole = this.$store.getters.userInfo.userName
this.roleForm = JSON.parse(JSON.stringify(item)).roleList
this.infoSourcesLength = this.rh_pageData.infoSources.length
// this.rh_pageData.comityFileNum = this.fileTextList
})
},
@@ -305,31 +315,43 @@ export default {
handleTabs(name) {
this.active = name
},
/** 点击对应附件进行下载*/
previews(val) {
let attId = val
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
},
// 退回按钮
handleSubmitNo() {
let json = {
roleList: this.roleForm,
memberId: this.$store.getters.userInfo.userId,
passFlag: '0',
commentText: this.commentText,
rh_pageData: this.rh_pageData,
}
this.$refs['rh_pageData'].validate((valid) => {
if (valid) {
this.isBack = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('退回成功')
this.$router.push("/processCenter");
}
this.isBack = false
});
if (this.commentText === '') {
this.$message.warning('请输入审批意见')
} else {
let json = {
roleList: this.roleForm,
memberId: this.$store.getters.userInfo.userId,
passFlag: '0',
commentText: this.commentText,
rh_pageData: this.rh_pageData,
}
})
this.$refs['rh_pageData'].validate((valid) => {
if (valid) {
this.isBack = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('退回成功')
this.$router.push("/processCenter");
}
this.isBack = false
});
}
})
}
},
// 提交按钮
handleSubmit() {
@@ -431,12 +453,15 @@ export default {
.comityTel_btn {
text-align: right;
}
/deep/.el-input.is-disabled .el-input__inner {
background-color: #fff ;
}
/deep/.el-textarea.is-disabled .el-textarea__inner {
/deep/ .el-input.is-disabled .el-input__inner {
background-color: #fff;
}
/deep/ .el-textarea.is-disabled .el-textarea__inner {
background-color: #fff;
}
/deep/ .el-table__body-wrapper {
height: auto !important;
}
@@ -14,19 +14,7 @@
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="content_form">
<el-form class="label-input-form" ref="rh_pageData" :model="rh_pageData" label-width="150px">
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="文件编号:" prop="comityFileNum">
{{ rh_pageData.comityFileNum || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="文件名称:" prop="comityFileName">
{{ rh_pageData.comityFileName || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-form class="label-input-form" ref="rh_pageData" :model="rh_pageData" :rules="rh_rules" label-width="150px">
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="协会名称:">
@@ -75,6 +63,16 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item class="add-form-item" label="信息来源:" prop="infoSources">
<span v-if="infoSourcesLength < 1">{{ '-' }}</span>
<span v-for="item in rh_pageData.infoSources" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
</span>
</el-form-item>
</el-col>
</el-row>
<el-form-item class="add-form-item" label="协会外部联系方式:" style="margin-top: 10px">
<el-table
:data="rh_pageData.comityTel"
@@ -155,9 +153,10 @@
</el-row>
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="参与人部门领导:">
<el-form-item class="add-form-item" prop="fillLeader" label="参与人部门领导:">
<el-input
style="width: 100%"
readonly
placeholder="请填写"
v-model="rh_pageData.fillLeader"
@click.native="choiceZRR"
@@ -166,17 +165,46 @@
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="资料:">
<el-input
<el-upload
style="width: 100%"
placeholder="请填写"
v-model="rh_pageData.fillFile"
/>
class="upload_style"
:disabled="acceptShow"
multiple
ref="uploadFile"
:action="uploadPath"
name="file"
:file-list="fillFileList"
accept=".ZIP, .zip, .docx, .DOCX, .xls, .xlsx"
:before-upload="handleBeforeUpload"
:before-remove="handleBeforeRemove"
:on-success="handleOnsuccess"
>
<el-button
type="primary"
class="common-button-primary"
size="mini">
点击上传
</el-button>
</el-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
<el-collapse accordion>
<el-collapse-item title="回执说明">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="commentText">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list">
@@ -303,6 +331,7 @@ export default {
workPath: '',
comityTel: [],
fillPeople: '',
fillPeopleId: '',
fillUnit: '',
fillDept: '',
fillPost: '',
@@ -310,7 +339,14 @@ export default {
fillMail: '',
fillLeader: '',
fillLeaderId: '',
fillFile: '',
fillFile: [],
},
rh_rules: {
fillLeader: [
{required: true, message: "请选择参与人部门领导", trigger: 'blur'},
{trigger: 'change'}
]
},
roleForm: {},
unqualidiedData: [],
@@ -324,6 +360,16 @@ export default {
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
commentText: '',
infoSourcesLength: '',
/** 上传相关 */
acceptShow: false,
// 上传路径
uploadPath: 'api/att/attFile/upload',
// 上传所储存文件数组
fillFileList: [],
newDataList: [],
}
},
computed: {
@@ -360,12 +406,15 @@ export default {
this.getFormFieldList(processForm)
})
},
getFormFieldList (item) {
getFormFieldList(item) {
this.$nextTick(() => {
this.rh_pageData = JSON.parse(JSON.stringify(item)).rh_pageData
this.rh_pageData.fillLeader = ''
this.rh_pageData.fillPeople = this.$store.getters.userInfo.userName
this.rh_pageData.fillPeopleId = this.$store.getters.userInfo.userId
this.roleForm = JSON.parse(JSON.stringify(item)).roleList
// this.rh_pageData.comityFileNum = this.fileTextList
this.infoSourcesLength = this.rh_pageData.infoSources.length
// this.rh_pageData.comityFileNum = this.fillFileList
})
},
// 右上标签页面切换
@@ -379,7 +428,7 @@ export default {
this.drawerTitle = title
this.roleShowflag = true
},
drawerCheck (data) {
drawerCheck(data) {
this.unqualidiedData.forEach(item => {
item.engineer = data[0].name
item.engineerId = data[0].id
@@ -413,6 +462,7 @@ export default {
roleList: this.roleForm,
selfUser: this.$store.getters.userInfo.userId,
charge: this.rh_pageData.fillLeaderId,
commentText: this.commentText,
rh_pageData: this.rh_pageData,
}
this.$refs['rh_pageData'].validate((valid) => {
@@ -431,22 +481,92 @@ export default {
});
}
})
}
},
// 文件上传限制条件
handleBeforeUpload(file) {
var filename = file.name
var index1 = filename.lastIndexOf('.')
var index2 = filename.length
var fileSuffix = filename.substring(index1, index2)
// const fileSuffix = file.name.split('.')[1] // 后缀名
// 判断上传文件格式
if (fileSuffix === '.ZIP' || fileSuffix === '.docx' || fileSuffix === '.DOCX' || fileSuffix === '.zip' || fileSuffix === '.xls' || fileSuffix === '.xlsx') {
return true
} else {
this.spinShow = false
this.$message.error('文件' + file.name + '格式不正确,请上传ZIP/DOCX或XLS文件')
return false
}
// 判断文件上传大小
// eslint-disable-next-line no-unreachable
if (file.size / 1024 / 1024 <= 200) {
return true
} else {
this.$message.error('文件' + file.name + '大小不超过200M')
return false
}
return true
},
// 移除上传的文件
handleBeforeRemove(file, fileList) {
this.fileData = fileList
this.fillFileList.forEach((item, index) => {
if (item.name === file.name || item.id === file.id) {
this.fillFileList.splice(index, 1)
}
})
this.rh_pageData.fillFile = this.fillFileList
},
// 文件上传成功
handleOnsuccess(res, file, fileList) {
if (res.ok) {
if (this.fillFileList !== null) {
this.newDataList = this.fillFileList
this.newDataList.push({
id: res.data.attId,
name: res.data.standName
})
} else {
this.newDataList.push({
id: res.data.attId,
name: res.data.standName
})
}
this.rh_pageData.fillFile = this.newDataList
this.$message({
showClose: true,
message: res.message,
type: 'success'
})
this.fileMadel = false
}
},
/** 点击对应附件进行下载*/
previews(val) {
let attId = val
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
},
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.bzrhStep3 {
position: relative;
height: 100%;
/deep/.el-drawer__container {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.headerTabs {
height: 52px;
display: flex;
@@ -454,6 +574,7 @@ export default {
position: absolute;
top: 0;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
@@ -461,21 +582,25 @@ export default {
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
.content-center {
padding: 10px 0px 10px 10px;
}
.content {
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'100% - 103px');
overflow: auto;
.tableTitle {
margin-bottom: 10px;
height: 30px;
@@ -483,6 +608,7 @@ export default {
position: relative;
font-size: 13px;
font-weight: bold;
.tableButton {
position: absolute;
right: 0;
@@ -490,18 +616,23 @@ export default {
}
}
}
.content_form {
padding: 15px;
.comityTel_btn {
text-align: right;
}
/deep/.el-input.is-disabled .el-input__inner {
background-color: #fff ;
/deep/ .el-input.is-disabled .el-input__inner {
background-color: #fff;
}
/deep/ .el-table__body-wrapper {
height: auto !important;
}
/deep/.el-table th {
/deep/ .el-table th {
padding: 0px;
}
}
@@ -15,18 +15,6 @@
</ProcessTitle>
<div class="content_form">
<el-form class="label-input-form" ref="rh_pageData" :model="rh_pageData" label-width="150px" :rules="rh_rules">
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="文件编号:" prop="comityFileNum">
{{ rh_pageData.comityFileNum || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="文件名称:" prop="comityFileName">
{{ rh_pageData.comityFileName || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="协会名称:">
@@ -75,6 +63,16 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item class="add-form-item" label="信息来源:" prop="infoSources">
<span v-if="infoSourcesLength === 0">{{ '-' }}</span>
<span v-for="item in rh_pageData.infoSources" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
</span>
</el-form-item>
</el-col>
</el-row>
<el-form-item class="add-form-item" label="工作方向:" prop="workPath">
<el-input v-model="rh_pageData.workPath" type="textarea" :disabled="true" style="width: 50%;height: auto"></el-input>
</el-form-item>
@@ -109,14 +107,21 @@
<el-table-column prop="fillPost" align="center" label="身份"/>
<el-table-column prop="fillTel" align="center" label="电话"/>
<el-table-column prop="fillMail" align="center" label="邮箱"/>
<el-table-column prop="fillFile" align="center" label="资料"/>
<el-table-column prop="fillFile" align="center" label="资料" show-overflow-tooltip>
<template slot-scope="scope">
<span v-if="scope.row.fillFile.length === 0">{{ '-' }}</span>
<span v-for="item in scope.row.fillFile" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
</span>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-form>
</div>
</div>
<el-collapse accordion>
<el-collapse-item title="回执说明">
<el-collapse-item title="审批意见">
<div style="margin: 10px 0;">
<el-input
type="textarea"
@@ -220,6 +225,7 @@ import {
saveTaskForPub,
changeAssigneeNew
} from "@/api/process.js"
export default {
components: {
ProcessHeader,
@@ -250,6 +256,7 @@ export default {
workPath: '',
comityTel: [],
fillPeople: '',
fillPeopleId: '',
fillUnit: '',
fillDept: '',
fillPost: '',
@@ -271,6 +278,8 @@ export default {
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
infoSourcesLength: ''
}
},
computed: {
@@ -311,10 +320,12 @@ export default {
this.getFormFieldList(processForm)
})
},
getFormFieldList (item) {
getFormFieldList(item) {
this.$nextTick(() => {
this.rh_pageData = JSON.parse(JSON.stringify(item)).rh_pageData
this.infoSourcesLength = this.rh_pageData.infoSources.length
this.rh_pageData.myPartRole = [{
fillPeopleId: this.rh_pageData.fillPeopleId,
fillPeople: this.rh_pageData.fillPeople,
fillUnit: this.rh_pageData.fillUnit,
fillDept: this.rh_pageData.fillDept,
@@ -331,29 +342,34 @@ export default {
// 退回按钮
handleSubmitNo() {
let json = {
member: this.selfUser,
passFlag: '0',
roleList: this.roleForm,
commentText: this.textarea,
rh_pageData: this.rh_pageData,
}
this.$refs['rh_pageData'].validate((valid) => {
if (valid) {
this.isBack = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('退回成功')
this.$router.push("/processCenter");
}
this.isBack = false
});
if (this.textarea === '') {
this.$message.warning('请输入审批意见')
} else {
let json = {
member: this.selfUser,
passFlag: '0',
roleList: this.roleForm,
commentText: this.textarea,
rh_pageData: this.rh_pageData,
}
})
this.$refs['rh_pageData'].validate((valid) => {
if (valid) {
this.isBack = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('退回成功')
this.$router.push("/processCenter");
}
this.isBack = false
});
}
})
}
},
// 提交按钮
handleSubmit() {
@@ -381,22 +397,32 @@ export default {
});
}
})
}
},
/** 点击对应附件进行下载*/
previews(val) {
let attId = val
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
},
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.bzrhStep4 {
position: relative;
height: 100%;
/deep/.el-drawer__container {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.headerTabs {
height: 52px;
display: flex;
@@ -404,6 +430,7 @@ export default {
position: absolute;
top: 0;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
@@ -411,21 +438,25 @@ export default {
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
.content-center {
padding: 10px 0px 10px 10px;
}
.content {
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'100% - 103px');
overflow: auto;
.tableTitle {
margin-bottom: 10px;
height: 30px;
@@ -433,6 +464,7 @@ export default {
position: relative;
font-size: 13px;
font-weight: bold;
.tableButton {
position: absolute;
right: 0;
@@ -440,18 +472,23 @@ export default {
}
}
}
.content_form {
padding: 15px;
.comityTel_btn {
text-align: right;
}
/deep/.el-textarea.is-disabled .el-textarea__inner {
/deep/ .el-textarea.is-disabled .el-textarea__inner {
background-color: #fff;
}
/deep/ .el-table__body-wrapper {
height: auto !important;
}
/deep/.el-table th {
/deep/ .el-table th {
padding: 0px;
}
}
@@ -15,18 +15,6 @@
</ProcessTitle>
<div class="content_form">
<el-form class="label-input-form" ref="rh_pageData" :model="rh_pageData" label-width="150px" :rules="rh_rules">
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="文件编号:" prop="comityFileNum">
{{ rh_pageData.comityFileNum || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="文件名称:" prop="comityFileName">
{{ rh_pageData.comityFileName || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="协会名称:">
@@ -75,6 +63,16 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item class="add-form-item" label="信息来源:" prop="infoSources">
<span v-if="infoSourcesLength === 0">{{ '-' }}</span>
<span v-for="item in rh_pageData.infoSources" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
</span>
</el-form-item>
</el-col>
</el-row>
<el-form-item class="add-form-item" label="工作方向:" prop="workPath">
<el-input v-model="rh_pageData.workPath" type="textarea" style="width: 50%;height: auto"></el-input>
</el-form-item>
@@ -148,12 +146,32 @@
<el-table-column prop="fillPost" align="center" label="身份"/>
<el-table-column prop="fillTel" align="center" label="电话"/>
<el-table-column prop="fillMail" align="center" label="邮箱"/>
<el-table-column prop="fillFile" align="center" label="资料"/>
<el-table-column prop="fillFile" align="center" label="资料" show-overflow-tooltip>
<template slot-scope="scope">
<span v-if="scope.row.fillFile.length === 0">{{ '-' }}</span>
<span v-for="item in scope.row.fillFile" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
</span>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-form>
</div>
</div>
<el-collapse accordion>
<el-collapse-item title="回执说明">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="commentText">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list">
@@ -245,6 +263,7 @@ import {
saveTaskForPub,
changeAssigneeNew
} from "@/api/process.js"
export default {
components: {
ProcessHeader,
@@ -294,6 +313,10 @@ export default {
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
deleteDataList: [],
infoSourcesLength: '',
commentText: ''
}
},
computed: {
@@ -334,10 +357,11 @@ export default {
this.getFormFieldList(processForm)
})
},
getFormFieldList (item) {
getFormFieldList(item) {
this.$nextTick(() => {
this.rh_pageData = JSON.parse(JSON.stringify(item)).rh_pageData
this.roleForm = JSON.parse(JSON.stringify(item)).roleList
this.infoSourcesLength = this.rh_pageData.infoSources.length
// this.rh_pageData.comityFileNum = this.fileTextList
})
},
@@ -356,7 +380,7 @@ export default {
this.deleteDataList.map(item => {
let index;
index = this.rh_pageData.myPartRole.findIndex(items => {
return items.id === item;
return items === item;
});
if (index > -1) {
this.rh_pageData.myPartRole.splice(index, 1);
@@ -374,46 +398,74 @@ export default {
},
// 保存按钮
handleSave() {
this.saveLoading = true
let _formData = new FormData()
_formData.append('taskIds', this.taskIds)
_formData.append('json', JSON.stringify({
rh_pageData: this.rh_pageData,
roleList: this.roleForm,
commentText: this.commentText
}))
saveTaskForPub(_formData).then(res => {
this.saveLoading = false
this.$message.success('保存成功')
this.bpnId = res.result
}).catch(e => {
this.saveLoading = false
})
},
// 提交按钮
handleSubmit() {
let json = {
leader: this.roleForm.leaderUserId,
rh_pageData: this.rh_pageData,
roleList: this.roleForm,
let json = {
leader: this.roleForm.leaderUserId,
rh_pageData: this.rh_pageData,
roleList: this.roleForm,
commentText: this.commentText
}
this.$refs['rh_pageData'].validate((valid) => {
if (valid) {
this.isSubmit = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('提交成功')
this.$router.push("/processCenter");
}
this.isSubmit = false
});
}
this.$refs['rh_pageData'].validate((valid) => {
if (valid) {
this.isSubmit = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('提交成功')
this.$router.push("/processCenter");
}
this.isSubmit = false
});
}
})
}
})
},
/** 点击对应附件进行下载*/
previews(val) {
let attId = val
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
},
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.bzrhStep5 {
position: relative;
height: 100%;
/deep/.el-drawer__container {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.headerTabs {
height: 52px;
display: flex;
@@ -421,6 +473,7 @@ export default {
position: absolute;
top: 0;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
@@ -428,21 +481,25 @@ export default {
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
.content-center {
padding: 10px 0px 10px 10px;
}
.content {
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'100% - 103px');
overflow: auto;
.tableTitle {
margin-bottom: 10px;
height: 30px;
@@ -450,6 +507,7 @@ export default {
position: relative;
font-size: 13px;
font-weight: bold;
.tableButton {
position: absolute;
right: 0;
@@ -460,15 +518,19 @@ export default {
.content_form {
padding: 15px;
.comityTel_btn {
text-align: right;
}
/deep/.el-table th {
/deep/ .el-table th {
padding: 0px;
}
/deep/.el-table__body-wrapper {
height: auto!important;
/deep/ .el-table__body-wrapper {
height: auto !important;
}
.myPart_btn {
text-align: right;
}
@@ -0,0 +1,514 @@
<template>
<div class="bzrhStep6">
<ProcessHeader toggle>
<template slot="proName">外部标准化协会入会流程</template>
<template slot="proNode">批准</template>
</ProcessHeader>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="content_form">
<el-form class="label-input-form" ref="rh_pageData" :model="rh_pageData" label-width="150px" :rules="rh_rules">
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="协会名称:">
{{ rh_pageData.comityName || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="协会状态:" prop="comityState">
{{ rh_pageData.comityState || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="入会性质:" prop="comityKind">
{{ rh_pageData.comityKind || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="资质:">
{{ rh_pageData.comityMake.makeQualification || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="成员:">
{{ rh_pageData.comityMake.makeRole || '' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="费用估计:">
{{ rh_pageData.comityMake.makeCost || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="职责:">
{{ rh_pageData.comityMake.makeDuties || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="任期:">
{{ rh_pageData.comityMake.makeTime || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item class="add-form-item" label="信息来源:" prop="infoSources">
<span v-if="infoSourcesLength < 1">{{ '-' }}</span>
<span v-for="item in rh_pageData.infoSources" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';'}}
</span>
</el-form-item>
</el-col>
</el-row>
<el-form-item class="add-form-item" label="工作方向:" prop="workPath">
<el-input v-model="rh_pageData.workPath" readonly type="textarea" style="width: 50%;height: auto"></el-input>
</el-form-item>
<el-form-item class="add-form-item" label="协会外部联系方式:" style="margin-top: 10px">
<el-table
:data="rh_pageData.comityTel"
border
ref="entryTable"
height="49%"
style="width: 100%"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '20px'}">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="tel_name" align="center" label="联络人"/>
<el-table-column prop="tel_unit" align="center" label="单位"/>
<el-table-column prop="tel_phone" align="center" label="电话"/>
<el-table-column prop="tel_mail" align="center" label="邮箱"/>
</el-table>
</el-form-item>
<el-form-item class="add-form-item" label="我司参与人员:" style="margin-top: 10px">
<el-table
:data="rh_pageData.myPartRole"
border
ref="entryTable"
@selection-change="selectedDelete"
height="49%"
style="width: 100%"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '20px'}">
<el-table-column type="selection" width="55"/>
<el-table-column prop="fillPeople" align="center" label="参与人"/>
<el-table-column prop="fillUnit" align="center" label="单位"/>
<el-table-column prop="fillDept" align="center" label="部门"/>
<el-table-column prop="fillPost" align="center" label="身份"/>
<el-table-column prop="fillTel" align="center" label="电话"/>
<el-table-column prop="fillMail" align="center" label="邮箱"/>
<el-table-column prop="fillFile" align="center" label="资料" show-overflow-tooltip>
<template slot-scope="scope">
<span v-if="scope.row.fillFile.length === 0">{{ '-' }}</span>
<span v-for="item in scope.row.fillFile" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
</span>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-form>
</div>
</div>
<el-collapse accordion>
<el-collapse-item :title="textTitle">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
:placeholder="textHolder"
v-model="textarea">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list">
<el-table
height="100%"
ref="selection"
:data="detailData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
:no-data-text="listNoDataText"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="name"
label="任务步骤"
align="center"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="endTime"
label="完成时间"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="comment"
label="流程信息"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.commentText }}</span>
</template>
</el-table-column>
<el-table-column
prop="completeFlag"
label="状态"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
<loading :loading="loading">流程列表加载中</loading>
</div>
</div>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import {
completeTask,
inboundLiaisonDetail,
saveinboundTask,
saveTaskForPub,
changeAssigneeNew
} from "@/api/process.js"
export default {
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
name: "bzrhStep6-1",
data() {
return {
active: '1', // 默认显示
rh_rules: {},
rh_pageData: {
comityFileNum: '',
comityFileName: '',
comityName: '',
comityRole: '',
comityState: '',
comityKind: '',
InfoSources: '',
comityMake: {
makeQualification: '',
makeRole: '',
makeCost: '',
makeDuties: '',
makeTime: '',
},
workPath: '',
comityTel: [],
fillPeople: '',
fillUnit: '',
fillDept: '',
fillPost: '',
fillTel: '',
fillMail: '',
fillLeader: '',
fillFile: '',
myPartRole: [],
},
detailData: [],
loading: false,
roleForm: {},
textarea: '',
isSubmit: false,
isBack: false,
saveLoading: false,
taskInfo: this.$route.query.taskInfo,
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
infoSourcesLength: '',
textTitle: '审批意见',
textHolder: '请输入审批意见'
}
},
computed: {
listNoDataText() {
return this.processType === 1 ? "暂无待办流程" : "暂无已办流程";
}
},
created() {
this.processTable()
this.getData()
},
methods: {
// 右上标签页面切换
handleTabs(name) {
this.active = name
},
processTable() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum,
sortWord: this.shunxu ? this.paixu : "",
shunxu: this.shunxu
}, {
loading: "loading",
_this: this
}, res => {
this.detailData = res
}, e => {
})
},
getData() {
if (this.taskInfo === '标准法规工程师汇总修订完毕') {
this.textTitle = '回执说明'
this.textHolder = '请输入回执说明'
}
const params = {
taskIds: this.taskIds,
pId: this.pId,
}
inboundLiaisonDetail(params).then(res => {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
})
},
getFormFieldList(item) {
this.$nextTick(() => {
this.rh_pageData = JSON.parse(JSON.stringify(item)).rh_pageData
this.roleForm = JSON.parse(JSON.stringify(item)).roleList
this.infoSourcesLength = this.rh_pageData.infoSources.length
this.textarea = JSON.parse(JSON.stringify(item)).commentText
// this.rh_pageData.comityFileNum = this.fileTextList
})
},
/** 点击对应附件进行下载*/
previews(val) {
let attId = val
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
},
selectedDelete(val) {
this.deleteDataList = val
},
// 退回按钮
handleSubmitNo() {
if (this.textarea === '') {
this.$message.warning('请输入反馈意见')
} else {
let json = {
passFlag: '0',
rh_pageData: this.rh_pageData,
roleList: this.roleForm
}
if (this.taskInfo === '标准法规部主管领导审核') {
json.manageDepartmentList = this.roleForm.feeUserId
} else if (this.taskInfo === '费用管理部门会签') {
json.manageDepartment = this.$store.getters.userInfo.userId
json.president = this.roleForm.engineerUserId
} else if (this.taskInfo === '技术委员会常务副主任/总院院长审定') {
json.engineerSumDone = this.roleForm.startUser
} else {
json = {
rh_pageData: this.rh_pageData,
roleList: this.roleForm
}
}
this.$refs['rh_pageData'].validate((valid) => {
if (valid) {
this.isBack = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('提交成功')
this.$router.push("/processCenter");
}
this.isBack = false
});
}
})
}
},
// 提交按钮
handleSubmit() {
if (this.textarea === '') {
if (this.taskInfo === '标准法规工程师汇总修订完毕') {
this.$message.warning('请输入回执说明')
} else {
this.$message.warning('请输入反馈意见')
}
} else {
let json = {
passFlag: '1',
rh_pageData: this.rh_pageData,
commentText: this.textarea,
roleList: this.roleForm
}
if (this.taskInfo === '标准法规部主管领导审核') {
json.manageDepartmentList = this.roleForm.feeUserId
} else if (this.taskInfo === '费用管理部门会签') {
json.manageDepartment = this.$store.getters.userInfo.userId
json.president = this.roleForm.engineerUserId
} else if (this.taskInfo === '技术委员会常务副主任/总院院长审定') {
json.engineerSumDone = this.roleForm.startUser
} else {
json = {
rh_pageData: this.rh_pageData,
roleList: this.roleForm
}
}
this.$refs['rh_pageData'].validate((valid) => {
if (valid) {
this.isSubmit = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('提交成功')
this.$router.push("/processCenter");
}
this.isSubmit = false
});
}
})
}
}
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.bzrhStep6 {
position: relative;
height: 100%;
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.headerTabs {
height: 52px;
display: flex;
align-items: center;
position: absolute;
top: 0;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
height: 30px;
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
.content-center {
padding: 10px 0px 10px 10px;
}
.content {
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'100% - 103px');
overflow: auto;
.tableTitle {
margin-bottom: 10px;
height: 30px;
line-height: 30px;
position: relative;
font-size: 13px;
font-weight: bold;
.tableButton {
position: absolute;
right: 0;
top: 0;
}
}
}
.content_form {
padding: 15px;
.comityTel_btn {
text-align: right;
}
/deep/ .el-table th {
padding: 0px;
}
/deep/ .el-table__body-wrapper {
height: auto !important;
}
.myPart_btn {
text-align: right;
}
}
}
</style>
@@ -18,18 +18,6 @@
</ProcessTitle>
<div class="content_form">
<el-form class="label-input-form" ref="rh_pageData" :model="rh_pageData" label-width="150px" :rules="rh_rules">
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="文件编号:" prop="comityFileNum">
{{ rh_pageData.comityFileNum || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="文件名称:" prop="comityFileName">
{{ rh_pageData.comityFileName || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="协会名称:">
@@ -78,8 +66,18 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item class="add-form-item" label="信息来源:" prop="infoSources">
<span v-if="infoSourcesLength < 1">{{ '-' }}</span>
<span v-for="item in rh_pageData.infoSources" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
</span>
</el-form-item>
</el-col>
</el-row>
<el-form-item class="add-form-item" label="工作方向:" prop="workPath">
<el-input v-model="rh_pageData.workPath" type="textarea" style="width: 50%;height: auto"></el-input>
<el-input v-model="rh_pageData.workPath" readonly type="textarea" style="width: 50%;height: auto"></el-input>
</el-form-item>
<el-form-item class="add-form-item" label="协会外部联系方式:" style="margin-top: 10px">
<el-table
@@ -98,15 +96,6 @@
</el-table>
</el-form-item>
<el-form-item class="add-form-item" label="我司参与人员:" style="margin-top: 10px">
<div class="myPart_btn">
<el-button
type="danger"
size="small"
icon="el-icon-delete"
@click="del_paryForm">
批量删除
</el-button>
</div>
<el-table
:data="rh_pageData.myPartRole"
border
@@ -123,12 +112,32 @@
<el-table-column prop="fillPost" align="center" label="身份"/>
<el-table-column prop="fillTel" align="center" label="电话"/>
<el-table-column prop="fillMail" align="center" label="邮箱"/>
<el-table-column prop="fillFile" align="center" label="资料"/>
<el-table-column prop="fillFile" align="center" label="资料" show-overflow-tooltip>
<template slot-scope="scope">
<span v-if="scope.row.fillFile.length === 0">{{ '-' }}</span>
<span v-for="item in scope.row.fillFile" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
</span>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-form>
</div>
</div>
<el-collapse accordion>
<el-collapse-item :title="textTitle">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
:placeholder="textHolder"
v-model="textarea">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list">
@@ -277,6 +286,11 @@ export default {
taskInfo: this.$route.query.taskInfo,
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
infoSourcesLength: '',
textTitle: '审批意见',
textHolder: '请输入审批意见'
}
},
computed: {
@@ -308,6 +322,10 @@ export default {
},
getData() {
if (this.taskInfo === '标准法规工程师汇总修订完毕') {
this.textTitle = '回执说明'
this.textHolder = '请输入回执说明'
}
const params = {
taskIds: this.taskIds,
pId: this.pId,
@@ -321,76 +339,60 @@ export default {
this.$nextTick(() => {
this.rh_pageData = JSON.parse(JSON.stringify(item)).rh_pageData
this.roleForm = JSON.parse(JSON.stringify(item)).roleList
this.infoSourcesLength = this.rh_pageData.infoSources.length
// this.rh_pageData.comityFileNum = this.fileTextList
})
},
/** 批量删除 */
del_paryForm() {
if (this.deleteDataList.length < 1) {
this.$message.warning("请选择一条数据进行删除");
} else {
this.$confirm("您确认删除这些数据?", "提示", {
confirmButtonText: "确认",
confirmButtonClass: "common-button-primary",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
let exits = [];
this.deleteDataList.map(item => {
let index;
index = this.rh_pageData.myPartRole.findIndex(items => {
return items.id === item;
});
if (index > -1) {
this.rh_pageData.myPartRole.splice(index, 1);
}
exits.push(item);
});
this.deleteDataList = [];
}).catch(() => {
});
/** 点击对应附件进行下载*/
previews(val) {
let attId = val
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
},
selectedDelete(val) {
this.deleteDataList = val
},
// 退回按钮
handleSubmitNo() {
let json = {
passFlag: '0',
rh_pageData: this.rh_pageData,
roleList: this.roleForm
}
if (this.taskInfo === '标准法规部主管领导审核') {
json.manageDepartmentList = this.roleForm.feeUserId
} else if (this.taskInfo === '费用管理部门会签') {
json.manageDepartment = this.$store.getters.userInfo.userId
json.president = this.roleForm.engineerUserId
} else if (this.taskInfo === '技术委员会常务副主任/总院院长审定') {
json.engineerSumDone = this.roleForm.startUser
if (this.textarea === '') {
this.$message.warning('请输入反馈意见')
} else {
json = {
let json = {
passFlag: '0',
rh_pageData: this.rh_pageData,
roleList: this.roleForm
}
}
this.$refs['rh_pageData'].validate((valid) => {
if (valid) {
this.isBack = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('提交成功')
this.$router.push("/processCenter");
}
this.isBack = false
});
if (this.taskInfo === '标准法规部主管领导审核') {
json.manageDepartmentList = this.roleForm.feeUserId
} else if (this.taskInfo === '费用管理部门会签') {
json.manageDepartment = this.$store.getters.userInfo.userId
json.president = this.roleForm.engineerUserId
} else if (this.taskInfo === '技术委员会常务副主任/总院院长审定') {
json.engineerSumDone = this.roleForm.startUser
} else {
json = {
rh_pageData: this.rh_pageData,
roleList: this.roleForm
}
}
})
this.$refs['rh_pageData'].validate((valid) => {
if (valid) {
this.isBack = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('提交成功')
this.$router.push("/processCenter");
}
this.isBack = false
});
}
})
}
},
// 提交按钮
@@ -398,6 +400,7 @@ export default {
let json = {
passFlag: '1',
rh_pageData: this.rh_pageData,
commentText: this.textarea,
roleList: this.roleForm
}
if (this.taskInfo === '标准法规部主管领导审核') {
@@ -512,6 +515,7 @@ export default {
/deep/ .el-table__body-wrapper {
height: auto !important;
}
.myPart_btn {
text-align: right;
}
@@ -79,7 +79,8 @@
</el-table-column>
<el-table-column prop="material" label="资料" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="uploadTable(scope.row)">点击上传</el-button>
<el-button v-if="scope.row.material.length === 0" type="primary" size="mini" @click="uploadTable(scope.row)">点击上传</el-button>
<el-button v-else type="primary" size="mini" @click="uploadTable(scope.row)">查看附件</el-button>
</template>
</el-table-column>
</el-table>
@@ -97,7 +98,8 @@
<el-table-column label="议题" align="center" prop="meetingTheme"/>
<el-table-column label="资料" align="center" prop="meetingFile" width="200">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="uploadThemeTable(scope.row)">点击上传</el-button>
<el-button v-if="scope.row.meetingFile.length === 0" type="primary" size="mini" @click="uploadThemeTable(scope.row)">点击上传</el-button>
<el-button v-else type="primary" size="mini" @click="uploadThemeTable(scope.row)">查看附件</el-button>
</template>
</el-table-column>
</el-table>
@@ -603,7 +605,7 @@ export default {
handleSubmit() {
let json = {
hh_pageData: this.hh_pageData,
// director: this.roleForm.engineerUserId,
director: this.roleForm.engineerUserId,
}
this.$refs['hh_pageData'].validate((valid) => {
if (valid) {
@@ -102,7 +102,7 @@
</div>
</div>
<el-collapse accordion>
<el-collapse-item title="回执说明">
<el-collapse-item title="审批意见">
<div style="margin: 10px 0;">
<el-input
type="textarea"
@@ -317,7 +317,7 @@ export default {
},
/** 议题列表查看按钮 */
meetingFileBtn(val) {
this.themeFileList = val.material
this.themeFileList = val.meetingFile
this.meetingFileDialog = true
},
handleClose() {
@@ -348,27 +348,31 @@ export default {
// 退回按钮
handleSubmitNo() {
let json = {
passFlag: '0',
commentText: this.commentText,
hh_pageData: this.hh_pageData,
}
this.$refs['hh_pageData'].validate((valid) => {
if (valid) {
this.isBack = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('退回成功')
this.$router.push("/processCenter");
}
this.isBack = false
});
if (this.commentText === '') {
this.$message.warning('请输入审批意见')
} else {
let json = {
passFlag: '0',
commentText: this.commentText,
hh_pageData: this.hh_pageData,
}
})
this.$refs['hh_pageData'].validate((valid) => {
if (valid) {
this.isBack = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('退回成功')
this.$router.push("/processCenter");
}
this.isBack = false
});
}
})
}
},
// 提交按钮
handleSubmit() {
@@ -97,15 +97,16 @@
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="费用列支:">
<el-select
v-model="ch_pageData.feeKind"
placeholder="请选择费用列支">
<el-option
v-for="item in feeKindOptions"
:key="item.value"
:label="item.label"
:value="item.label"/>
</el-select>
<el-input v-model="ch_pageData.feeKind" placeholder="请输入费用列支"></el-input>
<!-- <el-select
v-model="ch_pageData.feeKind"
placeholder="请选择费用列支">
<el-option
v-for="item in feeKindOptions"
:key="item.value"
:label="item.label"
:value="item.label"/>
</el-select>-->
</el-form-item>
</el-col>
</el-row>
@@ -170,6 +171,19 @@
</el-form>
</div>
</div>
<el-collapse accordion>
<el-collapse-item title="回执说明">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="commentText">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '2'">
<div class="block" style="padding-top: 20px;">
@@ -319,7 +333,7 @@
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {startProcess, saveTaskFirst, completeTask} from '@/api/process.js'
import {startProcess, queryTaskFirst, saveTaskFirst, completeTask} from '@/api/process.js'
export default {
components: {
@@ -352,10 +366,10 @@ export default {
{value: '1', label: '标准法规技术评估流程'},
],
feeKindOptions: [
{ value: '0', label: '列支1' },
{ value: '1', label: '列支2' },
{ value: '2', label: '列支3' },
{ value: '3', label: '列支4' },
{value: '0', label: '列支1'},
{value: '1', label: '列支2'},
{value: '2', label: '列支3'},
{value: '3', label: '列支4'},
],
/** 上传相关 */
acceptShow: false,
@@ -393,6 +407,13 @@ export default {
roleShowflagOne: false,
isSubmit: false,
saveLoading: false,
commentText: ''
}
},
mounted() {
this.bpnId = this.$route.query.bpnId
if (this.bpnId !== undefined) {
this.getData()
}
},
methods: {
@@ -400,11 +421,21 @@ export default {
handleTabs(name) {
this.active = name
},
getData() {
queryTaskFirst({
bpnId: this.$route.query.bpnId
}).then(res => {
let mes = JSON.parse(res.mes)
this.ch_pageData = mes.ch_pageData
this.commentText = mes.commentText
this.roleForm = mes.roleForm
});
},
//
/* uploadFile(val) {
this.fileListData = val
},*/
/* uploadFile(val) {
this.fileListData = val
},*/
//
handleBeforeUpload(file) {
var filename = file.name
@@ -557,10 +588,12 @@ export default {
_formData.append('id', this.bpnId || '')
_formData.append('createUser', this.$store.getters.userInfo.userId)
_formData.append('createUserName', this.$store.getters.userInfo.userName)
_formData.append('prcType', '20')
_formData.append('prcType', '21')
_formData.append('json', JSON.stringify({
roleForm: this.roleForm,
ch_pageData: this.ch_pageData
ch_pageData: this.ch_pageData,
commentText: this.commentText
}))
saveTaskFirst(_formData).then(res => {
this.saveLoading = false
@@ -577,6 +610,7 @@ export default {
prcCreateUserName: this.$store.getters.userInfo.userName,
roleList: this.roleForm,
ch_pageData: this.ch_pageData,
commentText: this.commentText,
directorList: this.roleForm.dockUser,
}
this.$refs['ch_pageData'].validate((valid) => {
@@ -59,23 +59,22 @@
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<el-upload
action=""
name="file"
:disabled="acceptShow"
:file-list="ch_pageData.fileTextList"
/>
<span v-if="uploadFileLength < 1">{{ '-' }}</span>
<span v-for="item in ch_pageData.fileTextList" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
</span>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="类别:">
{{ ch_pageData.sort || '-'}}
<span v-if="ch_pageData.sort === '1'">计划内</span>
<span v-else>计划外</span>
</el-form-item>
</el-col>
</el-row>
<el-form-item class="add-form-item" >
<el-form-item class="add-form-item">
<el-table
class="meeting_table"
:data="ch_pageData.meetingTable"
@@ -104,14 +103,14 @@
</div>
</div>
<el-collapse accordion>
<el-collapse-item title="回执说明">
<el-collapse-item title="审批意见">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="textContent">
v-model="commentText">
</el-input>
</div>
</el-collapse-item>
@@ -201,7 +200,8 @@
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { startProcess, saveTaskFirst,completeTask, inboundLiaisonDetail } from '@/api/process.js'
import {startProcess, saveTaskFirst, completeTask, inboundLiaisonDetail} from '@/api/process.js'
export default {
components: {
ProcessHeader,
@@ -214,10 +214,20 @@ export default {
active: '1',
acceptShow: false,
ch_pageData: {},
ch_pageData: {
fillPeopleId: '',
fillPeople: '',
fillUnit: '',
fillDept: '',
fillPost: '',
fillTel: '',
fillMail: '',
fillLeader: '',
fillFile: '',
},
ch_rules: {},
nodeList: [],
textContent: '',
commentText: '',
isBack: false,
isSubmit: false,
@@ -228,6 +238,7 @@ export default {
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
uploadFileLength: ''
}
},
computed: {
@@ -269,38 +280,44 @@ export default {
this.getFormFieldList(processForm)
})
},
getFormFieldList (item) {
getFormFieldList(item) {
this.$nextTick(() => {
this.ch_pageData = JSON.parse(JSON.stringify(item)).ch_pageData
this.uploadFileLength = this.ch_pageData.fileTextList.length
this.ch_pageData.meetingInRole = this.$store.getters.userInfo.userName
this.roleForm = JSON.parse(JSON.stringify(item)).roleList
})
},
// 退
handleSubmitNo() {
let json = {
roleList: this.roleForm,
memberId: this.$store.getters.userInfo.userId,
passFlag: '0',
commentText: this.textContent,
ch_pageData: this.ch_pageData,
}
this.$refs['ch_pageData'].validate((valid) => {
if (valid) {
this.isBack = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('退回成功')
this.$router.push("/processCenter");
}
this.isBack = false
});
if (this.commentText === '') {
this.$message.warning('请输入审批意见')
} else {
let json = {
roleList: this.roleForm,
memberId: this.$store.getters.userInfo.userId,
passFlag: '0',
commentText: this.commentText,
ch_pageData: this.ch_pageData,
}
})
this.$refs['ch_pageData'].validate((valid) => {
if (valid) {
this.isBack = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('退回成功')
this.$router.push("/processCenter");
}
this.isBack = false
});
}
})
}
},
//
handleSubmit() {
@@ -308,7 +325,7 @@ export default {
roleList: this.roleForm,
memberId: this.$store.getters.userInfo.userId,
passFlag: '1',
commentText: this.textContent,
commentText: this.commentText,
ch_pageData: this.ch_pageData,
}
this.$refs['ch_pageData'].validate((valid) => {
@@ -327,22 +344,33 @@ export default {
});
}
})
}
},
/** 点击对应附件进行下载*/
previews(val) {
let attId = val
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
},
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.bzchStep2 {
position: relative;
height: 100%;
/deep/.el-drawer__container {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.headerTabs {
height: 52px;
display: flex;
@@ -350,6 +378,7 @@ export default {
position: absolute;
top: 0;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
@@ -357,21 +386,25 @@ export default {
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
.content-center {
padding: 10px 0px 10px 10px;
}
.content {
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'100% - 103px');
overflow: auto;
.tableTitle {
margin-bottom: 10px;
height: 30px;
@@ -379,6 +412,7 @@ export default {
position: relative;
font-size: 13px;
font-weight: bold;
.tableButton {
position: absolute;
right: 0;
@@ -386,41 +420,52 @@ export default {
}
}
}
.content_form {
padding-top: 15px;
padding-left: 30px;
.el-divider--horizontal {
margin-top: 0px;
}
/deep/.el-input.is-disabled .el-input__inner {
background-color: #fff ;
/deep/ .el-input.is-disabled .el-input__inner {
background-color: #fff;
}
/deep/.el-table__body-wrapper {
height: auto!important;
/deep/ .el-table__body-wrapper {
height: auto !important;
}
.meeting_table {
/deep/ .el-input__inner {
text-align: center;
}
}
/deep/.el-textarea__inner {
/deep/ .el-textarea__inner {
font-family: inherit;
}
/deep/.el-upload {
/deep/ .el-upload {
display: unset;
}
/deep/.el-upload-list__item-status-label {
/deep/ .el-upload-list__item-status-label {
font-size: 0;
}
/deep/.el-upload-list__item {
/deep/ .el-upload-list__item {
.el-icon-close {
font-size: 0;
}
.el-icon-close-tip {
font-size: 0;
}
}
/deep/.el-table th {
/deep/ .el-table th {
padding: 0px;
}
}
@@ -59,18 +59,18 @@
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<el-upload
action=""
name="file"
:file-list="ch_pageData.fileTextList"
/>
<span v-if="uploadFileLength < 1">{{ '-' }}</span>
<span v-for="item in ch_pageData.fileTextList" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
</span>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="类别:">
{{ ch_pageData.sort || '-' }}
<span v-if="ch_pageData.sort === '1'">计划内</span>
<span v-else>计划外</span>
</el-form-item>
</el-col>
</el-row>
@@ -123,10 +123,11 @@
</el-row>
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="参与人部门领导:">
<el-form-item class="add-form-item" prop="fillLeader" label="参与人部门领导:">
<el-input
style="width: 100%"
placeholder="请选择"
readonly
placeholder="请选择参与人部门领导"
v-model="ch_pageData.fillLeader"
@click.native="choiceZRR"
/>
@@ -154,6 +155,19 @@
</el-form>
</div>
</div>
<el-collapse accordion>
<el-collapse-item title="回执说明">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="commentText">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list">
@@ -245,7 +259,7 @@
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import {startProcess, saveTaskFirst, saveTaskForPub, completeTask, inboundLiaisonDetail } from '@/api/process.js'
import {startProcess, saveTaskFirst, saveTaskForPub, completeTask, inboundLiaisonDetail} from '@/api/process.js'
export default {
components: {
@@ -269,7 +283,12 @@ export default {
fillLeader: '',
fillFile: '',
},
ch_rules: {},
ch_rules: {
fillLeader: [
{required: true, message: "请选择参与人部门领导", trigger: 'blur'},
{trigger: 'change'}
]
},
detailData: [],
loading: false,
@@ -284,6 +303,9 @@ export default {
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
uploadFileLength: '',
commentText: ''
}
},
computed: {
@@ -324,9 +346,10 @@ export default {
this.getFormFieldList(processForm)
})
},
getFormFieldList (item) {
getFormFieldList(item) {
this.$nextTick(() => {
this.ch_pageData = JSON.parse(JSON.stringify(item)).ch_pageData
this.uploadFileLength = this.ch_pageData.fileTextList.length
this.ch_pageData.fillPeopleId = this.$store.getters.userInfo.userId
this.ch_pageData.fillPeople = this.$store.getters.userInfo.userName
this.roleForm = JSON.parse(JSON.stringify(item)).roleList
@@ -340,7 +363,7 @@ export default {
this.drawerTitle = title
this.roleShowflag = true
},
drawerCheck (data) {
drawerCheck(data) {
this.unqualidiedData.forEach(item => {
item.engineer = data[0].name
item.engineerId = data[0].id
@@ -356,6 +379,7 @@ export default {
_formData.append('taskIds', this.taskIds)
_formData.append('json', JSON.stringify({
roleList: this.roleForm,
commentText: this.commentText,
selfUser: this.$store.getters.userInfo.userId,
charge: this.ch_pageData.fillLeaderId,
ch_pageData: this.ch_pageData,
@@ -373,6 +397,7 @@ export default {
let json = {
roleList: this.roleForm,
selfUser: this.$store.getters.userInfo.userId,
commentText: this.commentText,
charge: this.ch_pageData.fillLeaderId,
ch_pageData: this.ch_pageData,
}
@@ -392,7 +417,15 @@ export default {
});
}
})
}
},
/** 点击对应附件进行下载*/
previews(val) {
let attId = val
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
},
}
}
</script>
@@ -465,9 +498,10 @@ export default {
padding-left: 30px;
padding-top: 15px;
/deep/.el-input.is-disabled .el-input__inner {
background-color: #fff ;
/deep/ .el-input.is-disabled .el-input__inner {
background-color: #fff;
}
.el-divider--horizontal {
margin-top: 0px;
}
@@ -477,6 +511,7 @@ export default {
text-align: center;
}
}
/deep/ .el-table__body-wrapper {
height: auto !important;
}
@@ -485,13 +520,15 @@ export default {
font-family: inherit;
}
/deep/.el-upload {
/deep/ .el-upload {
display: unset;
}
/deep/.el-upload-list__item-status-label {
/deep/ .el-upload-list__item-status-label {
font-size: 0;
}
/deep/.el-upload-list__item {
/deep/ .el-upload-list__item {
.el-icon-close {
font-size: 0;
}
@@ -500,6 +537,7 @@ export default {
font-size: 0;
}
}
/deep/ .el-table th {
padding: 0px;
}
@@ -17,64 +17,64 @@
<el-form class="label-input-form" ref="ch_pageData" :model="ch_pageData" :rules="ch_rules" label-width="120px">
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="会议名称:">
<el-form-item class="add-form-item" label="会议名称:">
{{ ch_pageData.meetingName || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="主办单位:">
<el-form-item class="add-form-item" label="主办单位:">
{{ ch_pageData.primaryUnit || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="协会名称:">
<el-form-item class="add-form-item" label="协会名称:">
{{ ch_pageData.associaName || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="会议时间:">
<el-form-item class="add-form-item" label="会议时间:">
{{ ch_pageData.meetingStartTime || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="会议地点:">
<el-form-item class="add-form-item" label="会议地点:">
{{ ch_pageData.meetingPlace || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="费用标准:">
<el-form-item class="add-form-item" label="费用标准:">
{{ ch_pageData.feeStand || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="费用列支:">
<el-form-item class="add-form-item" label="费用列支:">
{{ ch_pageData.feeKind || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<el-upload
action=""
name="file"
:file-list="ch_pageData.fileTextList"
/>
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<span v-if="uploadFileLength < 1">{{ '-' }}</span>
<span v-for="item in ch_pageData.fileTextList" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
</span>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="类别:">
{{ ch_pageData.sort || '-' }}
<el-form-item class="add-form-item" label="类别:">
<span v-if="ch_pageData.sort === '1'">计划内</span>
<span v-else>计划外</span>
</el-form-item>
</el-col>
</el-row>
<el-form-item class="add-form-item" label="议题:">
<el-form-item class="add-form-item" label="议题:">
<el-table
class="meeting_table"
:data="ch_pageData.meetingTable"
@@ -88,7 +88,7 @@
<el-table-column label="议题" align="center" prop="meetingTheme"/>
</el-table>
</el-form-item>
<el-form-item class="add-form-item" label="入会人员:">
<el-form-item class="add-form-item" label="入会人员:">
<el-table
:data="ch_pageData.myPartRole"
border
@@ -109,7 +109,7 @@
</div>
</div>
<el-collapse accordion>
<el-collapse-item title="回执说明">
<el-collapse-item title="审批意见">
<div style="margin: 10px 0;">
<el-input
type="textarea"
@@ -205,7 +205,8 @@
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { startProcess, saveTaskFirst,completeTask, inboundLiaisonDetail } from '@/api/process.js'
import {startProcess, saveTaskFirst, completeTask, inboundLiaisonDetail} from '@/api/process.js'
export default {
components: {
ProcessHeader,
@@ -232,6 +233,7 @@ export default {
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
uploadFileLength: ''
}
},
computed: {
@@ -272,9 +274,10 @@ export default {
this.getFormFieldList(processForm)
})
},
getFormFieldList (item) {
getFormFieldList(item) {
this.$nextTick(() => {
this.ch_pageData = JSON.parse(JSON.stringify(item)).ch_pageData
this.uploadFileLength = this.ch_pageData.fileTextList.length
this.ch_pageData.myPartRole = [{
fillPeopleId: this.ch_pageData.fillPeopleId,
fillPeople: this.ch_pageData.fillPeople,
@@ -292,29 +295,33 @@ export default {
},
// 退
handleSubmitNo() {
let json = {
member: this.selfUser,
passFlag: '0',
roleList: this.roleForm,
commentText: this.textarea,
ch_pageData: this.ch_pageData,
}
this.$refs['ch_pageData'].validate((valid) => {
if (valid) {
this.isBack = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('退回成功')
this.$router.push("/processCenter");
}
this.isBack = false
});
if (this.textarea === '') {
this.$message.warning('请输入审批意见')
} else {
let json = {
member: this.selfUser,
passFlag: '0',
roleList: this.roleForm,
commentText: this.textarea,
ch_pageData: this.ch_pageData,
}
})
this.$refs['ch_pageData'].validate((valid) => {
if (valid) {
this.isBack = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('退回成功')
this.$router.push("/processCenter");
}
this.isBack = false
});
}
})
}
},
//
handleSubmit() {
@@ -342,22 +349,32 @@ export default {
});
}
})
}
},
/** 点击对应附件进行下载*/
previews(val) {
let attId = val
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
},
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.bzchStep4 {
position: relative;
height: 100%;
/deep/.el-drawer__container {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.headerTabs {
height: 52px;
display: flex;
@@ -365,6 +382,7 @@ export default {
position: absolute;
top: 0;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
@@ -372,21 +390,25 @@ export default {
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
.content-center {
padding: 10px 0px 10px 10px;
}
.content {
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'100% - 103px');
overflow: auto;
.tableTitle {
margin-bottom: 10px;
height: 30px;
@@ -394,6 +416,7 @@ export default {
position: relative;
font-size: 13px;
font-weight: bold;
.tableButton {
position: absolute;
right: 0;
@@ -401,30 +424,38 @@ export default {
}
}
}
.content_form {
padding-top: 15px;
padding-left: 30px;
.el-divider--horizontal {
margin-top: 0px;
}
.meeting_table {
/deep/ .el-input__inner {
text-align: center;
}
}
/deep/.el-table__body-wrapper {
height: auto!important;
/deep/ .el-table__body-wrapper {
height: auto !important;
}
/deep/.el-textarea__inner {
/deep/ .el-textarea__inner {
font-family: inherit;
}
/deep/.el-upload {
/deep/ .el-upload {
display: unset;
}
/deep/.el-upload-list__item-status-label {
/deep/ .el-upload-list__item-status-label {
font-size: 0;
}
/deep/.el-upload-list__item {
/deep/ .el-upload-list__item {
.el-icon-close {
font-size: 0;
}
@@ -433,7 +464,8 @@ export default {
font-size: 0;
}
}
/deep/.el-table th {
/deep/ .el-table th {
padding: 0px;
}
}
@@ -17,64 +17,64 @@
<el-form class="label-input-form" ref="ch_pageData" :model="ch_pageData" :rules="ch_rules" label-width="120px">
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="会议名称:">
<el-form-item class="add-form-item" label="会议名称:">
{{ ch_pageData.meetingName || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="主办单位:">
<el-form-item class="add-form-item" label="主办单位:">
{{ ch_pageData.primaryUnit || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="协会名称:">
<el-form-item class="add-form-item" label="协会名称:">
{{ ch_pageData.associaName || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="会议时间:">
<el-form-item class="add-form-item" label="会议时间:">
{{ ch_pageData.meetingStartTime || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="会议地点:">
<el-form-item class="add-form-item" label="会议地点:">
{{ ch_pageData.meetingPlace || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="费用标准:">
<el-form-item class="add-form-item" label="费用标准:">
{{ ch_pageData.feeStand || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="费用列支:">
<el-form-item class="add-form-item" label="费用列支:">
{{ ch_pageData.feeKind || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<el-upload
action=""
name="file"
:file-list="ch_pageData.fileTextList"
/>
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<span v-if="uploadFileLength < 1">{{ '-' }}</span>
<span v-for="item in ch_pageData.fileTextList" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
</span>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="类别:">
{{ ch_pageData.sort || '-' }}
<el-form-item class="add-form-item" label="类别:">
<span v-if="ch_pageData.sort === '1'">计划内</span>
<span v-else>计划外</span>
</el-form-item>
</el-col>
</el-row>
<el-form-item class="add-form-item" label="议题:">
<el-form-item class="add-form-item" label="议题:">
<el-table
class="meeting_table"
:data="ch_pageData.meetingTable"
@@ -95,7 +95,7 @@
</el-table-column>
</el-table>
</el-form-item>
<el-form-item class="add-form-item" label="入会人员:">
<el-form-item class="add-form-item" label="入会人员:">
<div class="myPart_btn">
<el-button
type="danger"
@@ -126,6 +126,19 @@
</el-form>
</div>
</div>
<el-collapse accordion>
<el-collapse-item title="回执说明">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="commentText">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list">
@@ -210,7 +223,8 @@
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { startProcess, saveTaskFirst,completeTask, inboundLiaisonDetail } from '@/api/process.js'
import {startProcess, saveTaskForPub, completeTask, inboundLiaisonDetail} from '@/api/process.js'
export default {
components: {
ProcessHeader,
@@ -237,6 +251,9 @@ export default {
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
uploadFileLength: '',
commentText: ''
}
},
computed: {
@@ -277,9 +294,10 @@ export default {
this.getFormFieldList(processForm)
})
},
getFormFieldList (item) {
getFormFieldList(item) {
this.$nextTick(() => {
this.ch_pageData = JSON.parse(JSON.stringify(item)).ch_pageData
this.uploadFileLength = this.ch_pageData.fileTextList.length
this.roleForm = JSON.parse(JSON.stringify(item)).roleList
// this.ch_pageData.comityFileNum = this.fileTextList
})
@@ -300,7 +318,7 @@ export default {
this.deleteDataList.map(item => {
let index;
index = this.ch_pageData.myPartRole.findIndex(items => {
return items.id === item;
return items === item;
});
if (index > -1) {
this.ch_pageData.myPartRole.splice(index, 1);
@@ -318,12 +336,28 @@ export default {
},
//
handleSave() {
this.saveLoading = true
let _formData = new FormData()
_formData.append('taskIds', this.taskIds)
_formData.append('json', JSON.stringify({
ch_pageData: this.ch_pageData,
roleList: this.roleForm,
commentText: this.commentText
}))
saveTaskForPub(_formData).then(res => {
this.saveLoading = false
this.$message.success('保存成功')
this.bpnId = res.result
}).catch(e => {
this.saveLoading = false
})
},
//
handleSubmit() {
let json = {
leader: this.roleForm.leaderUserId,
ch_pageData: this.ch_pageData,
commentText: this.commentText,
roleList: this.roleForm,
}
this.$refs['ch_pageData'].validate((valid) => {
@@ -342,22 +376,33 @@ export default {
});
}
})
}
},
/** 点击对应附件进行下载*/
previews(val) {
let attId = val
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
},
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.bzchStep5 {
position: relative;
height: 100%;
/deep/.el-drawer__container {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.headerTabs {
height: 52px;
display: flex;
@@ -365,6 +410,7 @@ export default {
position: absolute;
top: 0;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
@@ -372,21 +418,25 @@ export default {
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
.content-center {
padding: 10px 0px 10px 10px;
}
.content {
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'100% - 103px');
overflow: auto;
.tableTitle {
margin-bottom: 10px;
height: 30px;
@@ -394,6 +444,7 @@ export default {
position: relative;
font-size: 13px;
font-weight: bold;
.tableButton {
position: absolute;
right: 0;
@@ -401,38 +452,48 @@ export default {
}
}
}
.content_form {
padding-top: 15px;
padding-left: 30px;
.el-divider--horizontal {
margin-top: 0px;
}
.meeting_table {
/deep/ .el-input__inner {
text-align: center;
}
}
/deep/.el-table__body-wrapper {
height: auto!important;
/deep/ .el-table__body-wrapper {
height: auto !important;
}
/deep/.el-textarea__inner {
/deep/ .el-textarea__inner {
font-family: inherit;
}
.meeting_table {
/deep/ .el-input__inner {
text-align: center;
}
}
/deep/.el-table th {
/deep/ .el-table th {
padding: 0px;
}
/deep/.el-upload {
/deep/ .el-upload {
display: unset;
}
/deep/.el-upload-list__item-status-label {
/deep/ .el-upload-list__item-status-label {
font-size: 0;
}
/deep/.el-upload-list__item {
/deep/ .el-upload-list__item {
.el-icon-close {
font-size: 0;
}
@@ -441,6 +502,7 @@ export default {
font-size: 0;
}
}
.myPart_btn {
text-align: right;
}
@@ -0,0 +1,377 @@
<template>
<div class="bzchStep6">
<ProcessHeader toggle>
<template slot="proName">外部标准化协会参会流程</template>
<template slot="proNode">批准</template>
</ProcessHeader>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="content_form">
<el-form class="label-input-form" ref="ch_pageData" :model="ch_pageData" :rules="ch_rules" label-width="120px">
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="会议名称:">
{{ ch_pageData.meetingName || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="主办单位:">
{{ ch_pageData.primaryUnit || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="协会名称:">
{{ ch_pageData.associaName || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="会议时间:">
{{ ch_pageData.meetingStartTime || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="会议地点:">
{{ ch_pageData.meetingPlace || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="费用标准:">
{{ ch_pageData.feeStand || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="费用列支:">
{{ ch_pageData.feeKind || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<span v-if="uploadFileLength < 1">{{ '-' }}</span>
<span v-for="item in ch_pageData.fileTextList" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';'}}
</span>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="类别:">
<span v-if="ch_pageData.sort === '1'">计划内</span>
<span v-else>计划外</span>
</el-form-item>
</el-col>
</el-row>
<el-form-item class="add-form-item" label="议题:">
<el-table
class="meeting_table"
:data="ch_pageData.meetingTable"
border
ref="entryTable"
height="49%"
style="width: 100%"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '20px'}">
<el-table-column type="index" width="50" align="center"/>
<el-table-column label="议题" align="center" prop="meetingTheme"/>
</el-table>
</el-form-item>
<el-form-item class="add-form-item" label="入会人员:">
<el-table
:data="ch_pageData.myPartRole"
border
ref="entryTable"
height="49%"
style="width: 100%"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '20px'}">
<el-table-column type="index" width="50" align="center"/>
<el-table-column prop="fillPeople" align="center" label="人员"/>
<el-table-column prop="fillUnit" align="center" label="单位"/>
<el-table-column prop="fillDept" align="center" label="部门"/>
<el-table-column prop="fillTel" align="center" label="电话"/>
<el-table-column prop="fillMail" align="center" label="邮箱"/>
</el-table>
</el-form-item>
</el-form>
</div>
</div>
<el-collapse accordion>
<el-collapse-item :title="passTitle">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
:placeholder="passHolder"
v-model="textarea">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list">
<el-table
height="100%"
ref="selection"
:data="detailData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
:no-data-text="listNoDataText"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="name"
label="任务步骤"
align="center"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="endTime"
label="完成时间"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="comment"
label="流程信息"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.commentText }}</span>
</template>
</el-table-column>
<el-table-column
prop="completeFlag"
label="状态"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
<loading :loading="loading">流程列表加载中</loading>
</div>
</div>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { startProcess, saveTaskFirst,completeTask, inboundLiaisonDetail } from '@/api/process.js'
export default {
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
name: "bzchStep6-1",
data() {
return {
active: '1',
ch_pageData: {
myPartRole: [],
},
ch_rules: {},
textarea: '',
isBack: false,
isSubmit: false,
saveLoading: false,
deleteDataList: [],
detailData: [],
loading: false,
taskInfo: this.$route.query.taskInfo,
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
uploadFileLength: '',
passTitle: '回执说明',
passHolder: '请输入回执说明'
}
},
computed: {
listNoDataText() {
return this.processType === 1 ? "暂无待办流程" : "暂无已办流程";
}
},
created() {
this.processTable()
this.getData()
},
methods: {
//
handleTabs(name) {
this.active = name
},
processTable() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum,
sortWord: this.shunxu ? this.paixu : "",
shunxu: this.shunxu
}, {
loading: "loading",
_this: this
}, res => {
this.detailData = res
}, e => {
})
},
getData() {
const params = {
taskIds: this.taskIds,
pId: this.pId,
}
inboundLiaisonDetail(params).then(res => {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
})
},
getFormFieldList (item) {
this.$nextTick(() => {
this.ch_pageData = JSON.parse(JSON.stringify(item)).ch_pageData
this.uploadFileLength = this.ch_pageData.fileTextList.length
this.textarea = JSON.parse(JSON.stringify(item)).commentText
this.roleForm = JSON.parse(JSON.stringify(item)).roleList
// this.ch_pageData.comityFileNum = this.fileTextList
})
},
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.bzchStep6 {
position: relative;
height: 100%;
/deep/.el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.headerTabs {
height: 52px;
display: flex;
align-items: center;
position: absolute;
top: 0;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
height: 30px;
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
.content-center {
padding: 10px 0px 10px 10px;
}
.content {
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'100% - 103px');
overflow: auto;
.tableTitle {
margin-bottom: 10px;
height: 30px;
line-height: 30px;
position: relative;
font-size: 13px;
font-weight: bold;
.tableButton {
position: absolute;
right: 0;
top: 0;
}
}
}
.content_form {
padding-top: 15px;
padding-left: 30px;
.el-divider--horizontal {
margin-top: 0px;
}
/deep/.el-table__body-wrapper {
height: auto!important;
}
/deep/.el-textarea__inner {
font-family: inherit;
}
.meeting_table {
/deep/ .el-input__inner {
text-align: center;
}
}
/deep/.el-upload {
display: unset;
}
/deep/.el-upload-list__item-status-label {
font-size: 0;
}
/deep/.el-upload-list__item {
.el-icon-close {
font-size: 0;
}
.el-icon-close-tip {
font-size: 0;
}
}
/deep/.el-table th {
padding: 0px;
}
}
}
</style>
@@ -20,64 +20,64 @@
<el-form class="label-input-form" ref="ch_pageData" :model="ch_pageData" :rules="ch_rules" label-width="120px">
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="会议名称:">
<el-form-item class="add-form-item" label="会议名称:">
{{ ch_pageData.meetingName || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="主办单位:">
<el-form-item class="add-form-item" label="主办单位:">
{{ ch_pageData.primaryUnit || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="协会名称:">
<el-form-item class="add-form-item" label="协会名称:">
{{ ch_pageData.associaName || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="会议时间:">
<el-form-item class="add-form-item" label="会议时间:">
{{ ch_pageData.meetingStartTime || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="会议地点:">
<el-form-item class="add-form-item" label="会议地点:">
{{ ch_pageData.meetingPlace || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="费用标准:">
<el-form-item class="add-form-item" label="费用标准:">
{{ ch_pageData.feeStand || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="费用列支:">
<el-form-item class="add-form-item" label="费用列支:">
{{ ch_pageData.feeKind || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<el-upload
action=""
name="file"
:file-list="ch_pageData.fileTextList"
/>
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<span v-if="uploadFileLength < 1">{{ '-' }}</span>
<span v-for="item in ch_pageData.fileTextList" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
</span>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="类别:">
{{ ch_pageData.sort || '-' }}
<el-form-item class="add-form-item" label="类别:">
<span v-if="ch_pageData.sort === '1'">计划内</span>
<span v-else>计划外</span>
</el-form-item>
</el-col>
</el-row>
<el-form-item class="add-form-item" label="议题:">
<el-form-item class="add-form-item" label="议题:">
<el-table
class="meeting_table"
:data="ch_pageData.meetingTable"
@@ -91,7 +91,7 @@
<el-table-column label="议题" align="center" prop="meetingTheme"/>
</el-table>
</el-form-item>
<el-form-item class="add-form-item" label="入会人员:">
<el-form-item class="add-form-item" label="入会人员:">
<el-table
:data="ch_pageData.myPartRole"
border
@@ -111,6 +111,19 @@
</el-form>
</div>
</div>
<el-collapse accordion>
<el-collapse-item :title="passTitle">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
:placeholder="passHolder"
v-model="textarea">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list">
@@ -201,7 +214,8 @@
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { startProcess, saveTaskFirst,completeTask, inboundLiaisonDetail } from '@/api/process.js'
import {startProcess, saveTaskFirst, completeTask, inboundLiaisonDetail} from '@/api/process.js'
export default {
components: {
ProcessHeader,
@@ -230,6 +244,10 @@ export default {
taskInfo: this.$route.query.taskInfo,
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
uploadFileLength: '',
passTitle: '审批意见',
passHolder: '请输入审批意见'
}
},
computed: {
@@ -261,6 +279,10 @@ export default {
},
getData() {
if (this.taskInfo === '标准法规工程师修订完毕') {
this.passTitle = '回执说明',
this.passHolder = '请输入回执说明'
}
const params = {
taskIds: this.taskIds,
pId: this.pId,
@@ -270,9 +292,10 @@ export default {
this.getFormFieldList(processForm)
})
},
getFormFieldList (item) {
getFormFieldList(item) {
this.$nextTick(() => {
this.ch_pageData = JSON.parse(JSON.stringify(item)).ch_pageData
this.uploadFileLength = this.ch_pageData.fileTextList.length
this.roleForm = JSON.parse(JSON.stringify(item)).roleList
// this.ch_pageData.comityFileNum = this.fileTextList
})
@@ -293,7 +316,7 @@ export default {
this.deleteDataList.map(item => {
let index;
index = this.ch_pageData.myPartRole.findIndex(items => {
return items.id === item;
return items === item;
});
if (index > -1) {
this.ch_pageData.myPartRole.splice(index, 1);
@@ -311,46 +334,53 @@ export default {
},
// 退
handleSubmitNo() {
let json = {
passFlag: '0',
ch_pageData: this.ch_pageData,
roleList: this.roleForm
}
if (this.taskInfo === '技术管理中心主任审批') {
json.manageDepartmentList = this.roleForm.feeUserId
} else if (this.taskInfo === '费用管理部门会签') {
json.manageDepartment = this.$store.getters.userInfo.userId
json.president = this.roleForm.engineerUserId
} else if (this.taskInfo === '技术委员会常务副主任/总院院长审定') {
json.engineerSumDone = this.roleForm.startUser
if (this.textarea === '') {
this.$message.warning('请输入审批意见')
} else {
json = {
let json = {
passFlag: '0',
ch_pageData: this.ch_pageData,
commentText: this.textarea,
roleList: this.roleForm
}
}
this.$refs['ch_pageData'].validate((valid) => {
if (valid) {
this.isBack = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('提交成功')
this.$router.push("/processCenter");
}
this.isBack = false
});
if (this.taskInfo === '技术管理中心主任审批') {
json.manageDepartmentList = this.roleForm.feeUserId
} else if (this.taskInfo === '费用管理部门会签') {
json.manageDepartment = this.$store.getters.userInfo.userId
json.president = this.roleForm.engineerUserId
} else if (this.taskInfo === '技术委员会常务副主任/总院院长审定') {
json.engineerSumDone = this.roleForm.startUser
} else {
json = {
ch_pageData: this.ch_pageData,
commentText: this.textarea,
roleList: this.roleForm
}
}
})
this.$refs['ch_pageData'].validate((valid) => {
if (valid) {
this.isBack = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('提交成功')
this.$router.push("/processCenter");
}
this.isBack = false
});
}
})
}
},
//
handleSubmit() {
let json = {
passFlag: '1',
ch_pageData: this.ch_pageData,
commentText: this.textarea,
roleList: this.roleForm
}
if (this.taskInfo === '技术管理中心主任审批') {
@@ -363,6 +393,7 @@ export default {
} else {
json = {
ch_pageData: this.ch_pageData,
commentText: this.textarea,
roleList: this.roleForm
}
}
@@ -382,22 +413,33 @@ export default {
});
}
})
}
},
/** 点击对应附件进行下载*/
previews(val) {
let attId = val
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
},
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.bzchStep6 {
position: relative;
height: 100%;
/deep/.el-drawer__container {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.headerTabs {
height: 52px;
display: flex;
@@ -405,6 +447,7 @@ export default {
position: absolute;
top: 0;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
@@ -412,21 +455,25 @@ export default {
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
.content-center {
padding: 10px 0px 10px 10px;
}
.content {
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'100% - 103px');
overflow: auto;
.tableTitle {
margin-bottom: 10px;
height: 30px;
@@ -434,6 +481,7 @@ export default {
position: relative;
font-size: 13px;
font-weight: bold;
.tableButton {
position: absolute;
right: 0;
@@ -441,30 +489,38 @@ export default {
}
}
}
.content_form {
padding-top: 15px;
padding-left: 30px;
.el-divider--horizontal {
margin-top: 0px;
}
/deep/.el-table__body-wrapper {
height: auto!important;
/deep/ .el-table__body-wrapper {
height: auto !important;
}
/deep/.el-textarea__inner {
/deep/ .el-textarea__inner {
font-family: inherit;
}
.meeting_table {
/deep/ .el-input__inner {
text-align: center;
}
}
/deep/.el-upload {
/deep/ .el-upload {
display: unset;
}
/deep/.el-upload-list__item-status-label {
/deep/ .el-upload-list__item-status-label {
font-size: 0;
}
/deep/.el-upload-list__item {
/deep/ .el-upload-list__item {
.el-icon-close {
font-size: 0;
}
@@ -473,7 +529,8 @@ export default {
font-size: 0;
}
}
/deep/.el-table th {
/deep/ .el-table th {
padding: 0px;
}
}
@@ -325,12 +325,6 @@
submitBTNText="同意"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
<el-dialog
title="查看条款内容"
:visible.sync="itermsConditionsFlag"
@@ -385,6 +379,9 @@
ProcessTitle
},
methods: {
phoneClick () {
this.$router.push('/phoneBzjdStep4')
},
handleTransfer() {
this.drawerModal = true
},
@@ -29,7 +29,7 @@
<el-radio label="1">海外标准入库</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="标准类别" prop="standSort" class="add-form-item form-item-disabled" v-show="form.standInData === '0'">
<el-form-item label="标准类别" prop="standSort" class="add-form-item form-item-disabled">
<el-select :popper-append-to-body="false" filterable v-model="form.standSort" placeholder="请选择标准类别">
<el-option
v-for="item in standSortOptions"
@@ -264,7 +264,7 @@
></el-input>
<div style="display: flex;justify-content: space-between">
<div style="width: 80%;">
<div v-for="(item,index) in xgdFileList" :key="index" class="fileClass">{{ item.name }}</div>
<div v-for="(item,index) in xgdFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
</div>
<div style="width: 20%;">
<el-button
@@ -287,7 +287,7 @@
></el-input>
<div style="display: flex;justify-content: space-between">
<div style="width: 80%;">
<div v-for="(item,index) in FBGBJBDFileList" :key="index" class="fileClass">{{ item.name }}</div>
<div v-for="(item,index) in FBGBJBDFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
</div>
<div style="width: 20%;">
<el-button
@@ -310,7 +310,7 @@
></el-input>
<div style="display: flex;justify-content: space-between">
<div style="width: 80%;">
<div v-for="(item,index) in ssgFileList" :key="index" class="fileClass">{{ item.name }}</div>
<div v-for="(item,index) in ssgFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
</div>
<div style="width: 20%;">
<el-button
@@ -333,7 +333,7 @@
></el-input>
<div style="display: flex;justify-content: space-between">
<div style="width: 80%;">
<div v-for="(item,index) in caFileList" :key="index" class="fileClass">{{ item.name }}</div>
<div v-for="(item,index) in caFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
</div>
<div style="width: 20%;">
<el-button
@@ -356,7 +356,7 @@
></el-input>
<div style="display: flex;justify-content: space-between">
<div style="width: 80%;">
<div v-for="(item,index) in zbjbdFileList" :key="index" class="fileClass">{{ item.name }}</div>
<div v-for="(item,index) in zbjbdFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
</div>
<div style="width: 20%;">
<el-button
@@ -381,7 +381,7 @@
></el-input>
<div style="display: flex;justify-content: space-between">
<div style="width: 80%;">
<div v-for="(item,index) in kwjFileList" :key="index" class="fileClass">{{ item.name }}</div>
<div v-for="(item,index) in kwjFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
</div>
<div style="width: 20%;">
<el-button
@@ -406,7 +406,7 @@
></el-input>
<div style="display: flex;justify-content: space-between">
<div style="width: 80%;">
<div v-for="(item,index) in jdwjFileList" :key="index" class="fileClass">{{ item.name }}</div>
<div v-for="(item,index) in jdwjFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
</div>
<div style="width: 20%;">
<el-button
@@ -429,7 +429,7 @@
></el-input>
<div style="display: flex;justify-content: space-between">
<div style="width: 80%;">
<div v-for="(item,index) in bpgFileList" :key="index" class="fileClass">{{ item.name }}</div>
<div v-for="(item,index) in bpgFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
</div>
<div style="width: 20%;">
<el-button
@@ -452,7 +452,7 @@
></el-input>
<div style="display: flex;justify-content: space-between">
<div style="width: 80%;">
<div v-for="(item,index) in zqyjgFileList" :key="index" class="fileClass">{{ item.name }}</div>
<div v-for="(item,index) in zqyjgFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
</div>
<div style="width: 20%;">
<el-button
@@ -710,7 +710,7 @@
></el-input>
<div style="display: flex;justify-content: space-between">
<div style="width: 80%;">
<div v-for="(item,index) in glwjFileList" :key="index" class="fileClass">{{ item.name }}</div>
<div v-for="(item,index) in glwjFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
</div>
<div style="width: 20%;">
<el-button
@@ -1047,7 +1047,7 @@
<el-drawer
ref="standard"
title="查询结果"
size="1300px"
size="800px"
:visible.sync="standardDrawer"
direction="rtl"
:before-close="handleReviseDrawerClose">
@@ -1055,7 +1055,8 @@
<div class="content">
<div class="standard-table-search">
<el-form :model="standardSearchForm" inline class="label-input-form search-area">
<el-formItem label="标准来源" style="margin-right:-20px" prop="standType" class="search-item" >
<el-row>
<el-formItem label="标准来源" prop="standType" class="search-item" >
<el-select
:popper-append-to-body="false"
v-model="standardSearchForm.standType"
@@ -1064,7 +1065,7 @@
<el-option value="FOREIGN" label="海外标准库"></el-option>
</el-select>
</el-formItem>
<el-form-item label="标准类别" style="margin-right:-20px" prop="standSort" class="search-item" >
<el-form-item label="标准类别" prop="standSort" class="search-item" >
<el-select :popper-append-to-body="false" v-model="standardSearchForm.standSort" placeholder="请选择标准类别" filterable clearable>
<el-option
v-for="item in standSortOptions"
@@ -1074,20 +1075,21 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="标准编号" style="margin-right:-20px" prop="standNumber" class="search-item" >
<el-form-item label="标准编号" prop="standNumber" class="search-item" >
<el-input
v-model="standardSearchForm.standNumber"
placeholder="请输入标准编号"
clearable
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="中文名称" style="margin-right:-20px" prop="standName" class="search-item" >
</el-row>
<el-form-item label="中文名称" prop="standName" class="search-item" >
<el-input v-model="standardSearchForm.standName"
placeholder="请输入标准名称"
clearable
:maxlength="500"></el-input>
</el-form-item>
<el-form-item label="英文名称" style="margin-right:-20px" prop="standEnName" class="search-item">
<el-form-item label="英文名称" prop="standEnName" class="search-item">
<el-input
v-model="standardSearchForm.standEnName"
maxlength="1000"
@@ -1137,6 +1139,7 @@
<el-table-column
label="标准号"
align="center"
min-width="40"
>
<template slot-scope="scope">
<a v-if="scope.row.standYear" @click="handlePreview(scope.row)">
@@ -1152,21 +1155,22 @@
<el-table-column
prop="textStatus"
label="文本状态"
align="center">
align="center"
min-width="30">
<template slot-scope="scope">
<span>{{ textStatusMap[scope.row.textStatus] }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="80">
<template slot-scope="scope">
<el-button
class="opera-btn"
size="mini"
type="primary"
@click="handlePreview(scope.row)">查看
</el-button>
</template>
</el-table-column>
<!-- <el-table-column label="操作" align="center" width="80">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- class="opera-btn"-->
<!-- size="mini"-->
<!-- type="primary"-->
<!-- @click="handlePreview(scope.row)">查看-->
<!-- </el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
</div>
<pagination
@@ -1204,7 +1208,7 @@
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {saveTaskFirst, queryTaskFirst} from "api/process";
import {saveTaskFirst, queryTaskFirst, getBusStandFileByAttId} from "api/process";
import TreeSelect from '@/components/treeSelect/treeSelect.vue';
import TreeSelectNew from '@/components/treeSelect/treeSelectNew.vue';
import TreeSelectModule from "@/components/treeSelect/treeSelectModule.vue";
@@ -1675,6 +1679,56 @@
},
},
methods: {
getBusStandFileByAttId(attId) {
return new Promise((resolve, reject) => {
getBusStandFileByAttId({
attId
}).then(res => {
if (res.ok) {
resolve(res.data)
} else {
reject()
}
}).catch(e => {
reject(e)
})
})
},
//
filePreview(item) {
const attId = item.response.data.id
this.getBusStandFileByAttId(attId)
.then(res => {
console.log(res)
if(res){
const editFileInfo = res
console.log(editFileInfo)
if(editFileInfo.fileSuffix === 'pdg' || editFileInfo.fileSuffix === 'PDG'){
window.open('book://ssreader/e0?url='+editFileInfo.downLoadUrl)
}else {
const nowTime = new Date().getTime()
// window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(Base64.encode(editFileInfo.downLoadUrl)));
window.open('/static/onlyOffice/onlinePreview.html?oldFileName=' + editFileInfo.oldFileName + '&fileType=' + editFileInfo.fileSuffix + '&attId=' + editFileInfo.id + '&fileUrl=' + editFileInfo.downLoadUrl + '&key=' + editFileInfo.id + nowTime+'&filePath='+editFileInfo.filePath+'&fileName='+editFileInfo.fileName)
}
// window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + editFileInfo.id))
}
// switch (res.convertState) {
// case 'ERROR':
// this.$message.warning('')
// break
// case 'LODING':
// this.$message.info('')
// break
// case 'SUCCESS':
// const { convertFileInfo } = res
// window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + convertFileInfo.id))
// break
// }
}).catch(e => {
console.log(e)
this.$message.warning('文件不存在,预览失败')
})
},
// choiceZRRS () {
// if (this.userType === 'zrUserId') {
// this.roleForm.zrUserId = this.zrUserIds.map(item => item.id).join(",")
@@ -1732,6 +1786,34 @@
this.getFormFieldList(mes.form)
})
},
/**
* @description: 动态表单读取
*/
getFormFieldList (item) {
this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item))
this.defaultCheckedKeys = [this.form.standSystem]
this.defaultCheckedKeys1 = [this.form.cycvppsbm]
this.defaultCheckedKeys2 = [this.form.kccvppsbm]
this.defaultCheckedKeys3 = [this.form.dybxh]
this.form.standType = this.form.standInData === '0' ? 'INLAND' : 'FOREIGN'
this.form.standYear = this.form.standYear ? parseInt(this.form.standYear) : ''
if( this.form.country !== undefined && this.form.country !== null && this.form.country !== ''){
this.form.country=this.form.country.split(",");
}
this.form.prcNum = this.prcNum
this.form.prcName = this.prcName
this.form['id'] = item.id
//
for(const p in this.form) {
if (typeof (this.form[p ]) != "function") {
this.initializeFileList(p,this.form[p]);
}
}
})
},
// idname
setMap(data){
data.forEach(item => {
@@ -1822,7 +1904,7 @@
this.verifySarStandard = true
this.clearFormData(this.form)
break
//
//
case 2:
if (this.standardCheckedList.length === 1) {
this.$http.get('sarStandardsInfo/sar-standards-info/getStandInfoUpdateById', {id: this.standardCheckedList[0].id}, {
@@ -1853,7 +1935,10 @@
this.key3++
this.form.standType = this.form.standInData === '0' ? 'INLAND' : 'FOREIGN'
this.form.standYear = bringData.standYear ? parseInt(bringData.standYear) : ''
this.form.ssrq = this.$moment(this.form.ssrq).format("YYYY-MM-DD")
console.log(this.form)
this.form.ssrq = this.form.ssrq?this.$moment(this.form.ssrq).format("YYYY-MM-DD"):null
this.form.zccssrq = this.form.zccssrq?this.$moment(this.form.zccssrq).format("YYYY-MM-DD"):null
this.form.xcxssrq = this.form.xcxssrq?this.$moment(this.form.xcxssrq).format("YYYY-MM-DD"):null
this.form.prcNum = this.prcNum
this.form.prcName = this.prcName
this.form['id'] = bringData.id
@@ -2787,6 +2872,11 @@
<style lang="less" scoped>
@import '~@/assets/styles/style';
.bzrkStep1 {
/deep/ .search-area {
display: contents;
flex-wrap: wrap;
justify-content: space-around;
}
/deep/ .el-upload-dragger {
background-color: #fff;
border: 1px dashed #d9d9d9;
@@ -375,27 +375,20 @@
v-model="form.xgdName"
clearable
></el-input>
<div v-if="xgdFileList.length>0">
<!-- {{ form.xgdName }}-->
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('xgd')">
<i class="el-icon-upload el-icon--right"></i>
查看已上传的文件
</el-button>
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('xgd')">
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
<div style="display: flex;justify-content: space-between">
<div style="width: 80%;">
<div v-for="(item,index) in xgdFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
</div>
<div style="width: 20%;">
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px; margin-top: 11px; float: right;"
@click="fileUpload('xgd')">
<i class="el-icon-upload el-icon--right"></i>
</el-button>
</div>
</div>
</el-form-item>
<el-form-item label="发布稿" prop="fbgbjbdName" class="add-form-item form-item-disabled">
@@ -405,27 +398,20 @@
v-model="form.fbgbjbdName"
clearable
></el-input>
<div v-if="FBGBJBDFileList.length>0">
<!-- {{ form.fbgbjbdName }}-->
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('fbgbjbd')">
<i class="el-icon-upload el-icon--right"></i>
查看已上传的文件
</el-button>
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('fbgbjbd')">
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
<div style="display: flex;justify-content: space-between">
<div style="width: 80%;">
<div v-for="(item,index) in FBGBJBDFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
</div>
<div style="width: 20%;">
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px; margin-top: 11px; float: right;"
@click="fileUpload('fbgbjbd')">
<i class="el-icon-upload el-icon--right"></i>
</el-button>
</div>
</div>
</el-form-item>
<el-form-item v-show="form.standInData === '0'" label="送审稿" prop="ssg" class="add-form-item form-item-disabled">
@@ -435,27 +421,20 @@
v-model="form.ssgName"
clearable
></el-input>
<div v-if="ssgFileList.length>0">
<!-- {{ form.ssgName }}-->
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('ssg')">
<i class="el-icon-upload el-icon--right"></i>
查看已上传的文件
</el-button>
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('ssg')">
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
<div style="display: flex;justify-content: space-between">
<div style="width: 80%;">
<div v-for="(item,index) in ssgFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
</div>
<div style="width: 20%;">
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px; margin-top: 11px; float: right;"
@click="fileUpload('ssg')">
<i class="el-icon-upload el-icon--right"></i>
</el-button>
</div>
</div>
</el-form-item>
<el-form-item label="草案" prop="ca" class="add-form-item form-item-disabled">
@@ -465,27 +444,20 @@
v-model="form.caName"
clearable
></el-input>
<div v-if="caFileList.length>0">
<!-- {{ form.caName }}-->
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('ca')">
<i class="el-icon-upload el-icon--right"></i>
查看已上传的文件
</el-button>
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('ca')">
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
<div style="display: flex;justify-content: space-between">
<div style="width: 80%;">
<div v-for="(item,index) in caFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
</div>
<div style="width: 20%;">
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px; margin-top: 11px; float: right;"
@click="fileUpload('ca')">
<i class="el-icon-upload el-icon--right"></i>
</el-button>
</div>
</div>
</el-form-item>
<el-form-item v-show="form.standInData === '1'" label="增补件" prop="zbjbd" class="add-form-item form-item-disabled">
@@ -495,27 +467,20 @@
v-model="form.zbjbdName"
clearable
></el-input>
<div v-if="zbjbdFileList.length>0">
<!-- {{ form.zbjbdName }}-->
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('zbjbd')">
<i class="el-icon-upload el-icon--right"></i>
查看已上传的文件
</el-button>
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('zbjbd')">
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
<div style="display: flex;justify-content: space-between">
<div style="width: 80%;">
<div v-for="(item,index) in zbjbdFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
</div>
<div style="width: 20%;">
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px; margin-top: 11px; float: right;"
@click="fileUpload('zbjbd')">
<i class="el-icon-upload el-icon--right"></i>
</el-button>
</div>
</div>
</el-form-item>
</el-col>
@@ -643,27 +608,20 @@
v-model="form.kwjName"
clearable
></el-input>
<div v-if="kwjFileList.length>0">
<!-- {{ form.kwjName }}-->
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('kwj')">
<i class="el-icon-upload el-icon--right"></i>
查看已上传的文件
</el-button>
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('kwj')">
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
<div style="display: flex;justify-content: space-between">
<div style="width: 80%;">
<div v-for="(item,index) in kwjFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
</div>
<div style="width: 20%;">
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px; margin-top: 11px; float: right;"
@click="fileUpload('kwj')">
<i class="el-icon-upload el-icon--right"></i>
</el-button>
</div>
</div>
</el-form-item>
<!-- ************************************* 2021/11/9 "解读文件"改为"相关文件"*************************************-->
@@ -675,27 +633,20 @@
v-model="form.jdwjName"
clearable
></el-input>
<div v-if="jdwjFileList.length>0">
<!-- {{ form.jdwjName }}-->
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('jdwj')">
<i class="el-icon-upload el-icon--right"></i>
查看已上传的文件
</el-button>
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('jdwj')">
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
<div style="display: flex;justify-content: space-between">
<div style="width: 80%;">
<div v-for="(item,index) in jdwjFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
</div>
<div style="width: 20%;">
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px; margin-top: 11px; float: right;"
@click="fileUpload('jdwj')">
<i class="el-icon-upload el-icon--right"></i>
</el-button>
</div>
</div>
</el-form-item>
<el-form-item v-show="form.standInData === '0'" label="报批稿" prop="bpg" class="add-form-item form-item-disabled">
@@ -705,27 +656,20 @@
v-model="form.bpgName"
clearable
></el-input>
<div v-if="bpgFileList.length>0">
<!-- {{ form.bpgName }}-->
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('bpg')">
<i class="el-icon-upload el-icon--right"></i>
查看已上传的文件
</el-button>
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('bpg')">
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
<div style="display: flex;justify-content: space-between">
<div style="width: 80%;">
<div v-for="(item,index) in bpgFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
</div>
<div style="width: 20%;">
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px; margin-top: 11px; float: right;"
@click="fileUpload('bpg')">
<i class="el-icon-upload el-icon--right"></i>
</el-button>
</div>
</div>
</el-form-item>
<el-form-item v-show="form.standInData === '0'" label="征求意见稿" prop="zqyjg" class="add-form-item form-item-disabled">
@@ -735,27 +679,20 @@
v-model="form.zqyjgName"
clearable
></el-input>
<div v-if="zqyjgFileList.length>0">
<!-- {{ form.zqyjgName }}-->
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('zqyjg')">
<i class="el-icon-upload el-icon--right"></i>
查看已上传的文件
</el-button>
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('zqyjg')">
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
<div style="display: flex;justify-content: space-between">
<div style="width: 80%;">
<div v-for="(item,index) in zqyjgFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
</div>
<div style="width: 20%;">
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px; margin-top: 11px; float: right;"
@click="fileUpload('zqyjg')">
<i class="el-icon-upload el-icon--right"></i>
</el-button>
</div>
</div>
</el-form-item>
</el-col>
@@ -999,26 +936,20 @@
v-model="form.glwjName"
clearable
></el-input>
<div v-if="glwjFileList.length>0">
<!-- {{ form.fbgbjbdName }}-->
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('glwj')">
<i class="el-icon-upload el-icon--right"></i>
查看已上传的文件
</el-button>
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('glwj')">
点击上传
</el-button>
<div style="display: flex;justify-content: space-between">
<div style="width: 80%;">
<div v-for="(item,index) in glwjFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
</div>
<div style="width: 20%;">
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px; margin-top: 11px; float: right;"
@click="fileUpload('glwj')">
<i class="el-icon-upload el-icon--right"></i>
</el-button>
</div>
</div>
</el-form-item>
</el-col>
@@ -1251,7 +1182,7 @@
:on-remove="removeOneFile"
:show-file-list="true"
>
<div style="padding: 20px 0">
<div>
<i class="el-icon-upload" style="color: #3399ff"></i>
<p>点击或拖拽上传文件</p>
</div>
@@ -1386,7 +1317,7 @@ import {
changeAssigneeNew,
saveTaskForPub,
queryTaskFirst,
saveTaskFirst
saveTaskFirst, getBusStandFileByAttId
} from 'api/process'
import TreeSelect from '@/components/treeSelect/treeSelect.vue';
import TreeSelectNew from '@/components/treeSelect/treeSelectNew.vue';
@@ -1649,6 +1580,56 @@ export default {
},
},
methods: {
getBusStandFileByAttId(attId) {
return new Promise((resolve, reject) => {
getBusStandFileByAttId({
attId
}).then(res => {
if (res.ok) {
resolve(res.data)
} else {
reject()
}
}).catch(e => {
reject(e)
})
})
},
//
filePreview(item) {
const attId = item.response.data.id
this.getBusStandFileByAttId(attId)
.then(res => {
console.log(res)
if(res){
const editFileInfo = res
console.log(editFileInfo)
if(editFileInfo.fileSuffix === 'pdg' || editFileInfo.fileSuffix === 'PDG'){
window.open('book://ssreader/e0?url='+editFileInfo.downLoadUrl)
}else {
const nowTime = new Date().getTime()
// window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(Base64.encode(editFileInfo.downLoadUrl)));
window.open('/static/onlyOffice/onlinePreview.html?oldFileName=' + editFileInfo.oldFileName + '&fileType=' + editFileInfo.fileSuffix + '&attId=' + editFileInfo.id + '&fileUrl=' + editFileInfo.downLoadUrl + '&key=' + editFileInfo.id + nowTime+'&filePath='+editFileInfo.filePath+'&fileName='+editFileInfo.fileName)
}
// window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + editFileInfo.id))
}
// switch (res.convertState) {
// case 'ERROR':
// this.$message.warning('')
// break
// case 'LODING':
// this.$message.info('')
// break
// case 'SUCCESS':
// const { convertFileInfo } = res
// window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + convertFileInfo.id))
// break
// }
}).catch(e => {
console.log(e)
this.$message.warning('文件不存在,预览失败')
})
},
checkedRole (data) {
this.assigneeNewLoading = true
changeAssigneeNew({
@@ -2560,6 +2541,29 @@ export default {
<style lang="less" scoped>
@import '~@/assets/styles/style';
.bzrkStep4 {
/deep/ .el-upload-list__item-name {
white-space: inherit;
}
/deep/ .el-upload-dragger {
background-color: #fff;
border: 1px dashed #d9d9d9;
border-radius: 6px;
box-sizing: border-box;
width: 360px;
height: 90px;
text-align: center;
position: relative;
overflow: hidden;
}
/deep/ .el-dialog__body {
padding: 0 20px 10px;
color: #606266;
font-size: 14px;
word-break: break-all;
}
/deep/ .el-upload-dragger .el-icon-upload {
margin: 10px 0 0 0;
}
/deep/.el-drawer__container {
.prc-content-border {
border: none;
@@ -423,7 +423,7 @@ export default {
} else {
id = item.oriAttId
}
window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
window.open('/static/pdf/phone/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
},
addfjList() {
this.$http.get('lawss/sarStandFile/queryFileInfo', {
@@ -275,7 +275,7 @@ export default {
} else {
id = item.oriAttId
}
window.open('/static/pdf/web/bzzqyjViewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
window.open('/static/pdf/phone/bzzqyjViewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
},
getHistoryData () {
this.$http.get('lawss/activiti/get_list_by_instance', {
@@ -422,7 +422,7 @@ export default {
} else {
id = item.oriAttId
}
window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
window.open('/static/pdf/phone/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
},
addfjList() {
this.$http.get('lawss/sarStandFile/queryFileInfo', {
@@ -249,7 +249,7 @@ export default {
} else {
id = item.oriAttId
}
window.open('/static/pdf/web/bzzqyjViewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
window.open('/static/pdf/phone/bzzqyjViewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
@@ -340,7 +340,7 @@ export default {
} else {
id = item.oriAttId
}
window.open('/static/pdf/web/bzzqyjViewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
window.open('/static/pdf/phone/bzzqyjViewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
},
getHistoryData() {
this.$http.get('lawss/activiti/get_list_by_instance', {
@@ -313,7 +313,7 @@ export default {
} else {
id = item.oriAttId
}
window.open('/static/pdf/web/bzzqyjViewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
window.open('/static/pdf/phone/bzzqyjViewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
},
getHistoryData() {
this.$http.get('lawss/activiti/get_list_by_instance', {
@@ -353,7 +353,7 @@ export default {
} else {
id = item.oriAttId
}
window.open('/static/pdf/web/bzzqyjViewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
window.open('/static/pdf/phone/bzzqyjViewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
@@ -337,7 +337,7 @@ export default {
} else {
id = item.oriAttId
}
window.open('/static/pdf/web/bzzqyjViewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
window.open('/static/pdf/phone/bzzqyjViewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
@@ -334,7 +334,7 @@ export default {
} else {
id = item.oriAttId
}
window.open('/static/pdf/web/bzzqyjViewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
window.open('/static/pdf/phone/bzzqyjViewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
},
getHistoryData() {
this.$http.get('lawss/activiti/get_list_by_instance', {
@@ -334,7 +334,7 @@ export default {
} else {
id = item.oriAttId
}
window.open('/static/pdf/web/bzzqyjViewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
window.open('/static/pdf/phone/bzzqyjViewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
},
getHistoryData() {
this.$http.get('lawss/activiti/get_list_by_instance', {
@@ -334,7 +334,7 @@ export default {
} else {
id = item.oriAttId
}
window.open('/static/pdf/web/bzzqyjViewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
window.open('/static/pdf/phone/bzzqyjViewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + id))
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -37,10 +37,10 @@
<el-option label="未制定" value="未制定"></el-option>
</el-select>
</el-form-item>
<el-form-item label="评审责任人" prop="resPerson" class="add-form-item form-item-disabled">
<el-form-item label="评审责任人" prop="resPersonName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="qbfsForm.resPerson"
v-model="qbfsForm.resPersonName"
placeholder="请输入评审责任人"
clearable
></el-input>
@@ -70,18 +70,18 @@
<el-option label="完成" value="完成"></el-option>
</el-select>
</el-form-item>
<el-form-item label="起草人" prop="drafter" class="add-form-item form-item-disabled">
<el-form-item label="起草人" prop="drafterName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="qbfsForm.drafter"
v-model="qbfsForm.drafterName"
placeholder="请输入起草人"
clearable
></el-input>
</el-form-item>
<el-form-item label="工作组组长" prop="wgLeader" class="add-form-item form-item-disabled">
<el-form-item label="工作组组长" prop="wgLeaderName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="qbfsForm.wgLeader"
v-model="qbfsForm.wgLeaderName"
placeholder="请输入工作组组长"
clearable
></el-input>
@@ -181,17 +181,17 @@
label="制修订状态">
</el-table-column>
<el-table-column
prop="drafter"
prop="drafterName"
align="center"
label="起草人">
</el-table-column>
<el-table-column
prop="resPerson"
prop="resPersonName"
align="center"
label="评审责任人">
</el-table-column>
<el-table-column
prop="wgLeader"
prop="wgLeaderName"
align="center"
label="工作组组长">
</el-table-column>
@@ -305,7 +305,7 @@ export default {
//
getStandDataBtn(){
this.$http.post('esRevisePlan/es-revise-plan/queryAllPlans',{
reviseStatus: this.standardSearch.reviseStatus,
reviseStatus: this.standardSearch.reviseStatus || '',
esName: this.standardSearch.standName,
page: this.page,
pageSize: this.pageSize,
@@ -336,15 +336,16 @@ export default {
}else if(this.selectList.length < 1){
this.$message.warning('请至少选择一条数据进行带入')
}else{
this.qbfsForm.esId = this.selectList[0].id
this.qbfsForm.esName = this.selectList[0].esName
this.qbfsForm.draftTime = this.selectList[0].draftTime
this.qbfsForm.drafter = this.selectList[0].drafter
this.qbfsForm.drafterName = this.selectList[0].drafterName
this.qbfsForm.planStatus = this.selectList[0].planStatus
this.qbfsForm.releaseTime = this.selectList[0].releaseTime
this.qbfsForm.resPerson = this.selectList[0].resPerson
this.qbfsForm.resPersonName = this.selectList[0].resPersonName
this.qbfsForm.reviseStatus = this.selectList[0].reviseStatus
this.qbfsForm.unit = this.selectList[0].unit
this.qbfsForm.wgLeader = this.selectList[0].wgLeader
this.qbfsForm.wgLeaderName = this.selectList[0].wgLeaderName
this.ListModel = false
}
},
@@ -37,10 +37,10 @@
<el-option label="未制定" value="未制定"></el-option>
</el-select>
</el-form-item>
<el-form-item label="评审责任人" prop="resPerson" class="add-form-item form-item-disabled">
<el-form-item label="评审责任人" prop="resPersonName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="qbfsForm.resPerson"
v-model="qbfsForm.resPersonName"
placeholder="请输入评审责任人"
clearable
></el-input>
@@ -78,18 +78,18 @@
<el-option label="完成" value="完成"></el-option>
</el-select>
</el-form-item>
<el-form-item label="起草人" prop="drafter" class="add-form-item form-item-disabled">
<el-form-item label="起草人" prop="drafterName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="qbfsForm.drafter"
v-model="qbfsForm.drafterName"
placeholder="请输入起草人"
clearable
></el-input>
</el-form-item>
<el-form-item label="工作组组长" prop="wgLeader" class="add-form-item form-item-disabled">
<el-form-item label="工作组组长" prop="wgLeaderName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="qbfsForm.wgLeader"
v-model="qbfsForm.wgLeaderName"
placeholder="请输入工作组组长"
clearable
></el-input>
@@ -197,17 +197,17 @@
label="制修订状态">
</el-table-column>
<el-table-column
prop="drafter"
prop="drafterName"
align="center"
label="起草人">
</el-table-column>
<el-table-column
prop="resPerson"
prop="resPersonName"
align="center"
label="评审责任人">
</el-table-column>
<el-table-column
prop="wgLeader"
prop="wgLeaderName"
align="center"
label="工作组组长">
</el-table-column>
@@ -327,7 +327,7 @@ export default {
//
getStandDataBtn(){
this.$http.post('esRevisePlan/es-revise-plan/queryAllPlans',{
reviseStatus: this.standardSearch.reviseStatus,
reviseStatus: this.standardSearch.reviseStatus || '',
esName: this.standardSearch.standName,
page: this.page,
pageSize: this.pageSize,
@@ -358,15 +358,16 @@ export default {
}else if(this.selectList.length < 1){
this.$message.warning('请至少选择一条数据进行带入')
}else{
this.qbfsForm.esId = this.selectList[0].id
this.qbfsForm.esName = this.selectList[0].esName
this.qbfsForm.draftTime = this.selectList[0].draftTime
this.qbfsForm.drafter = this.selectList[0].drafter
this.qbfsForm.drafterName = this.selectList[0].drafterName
this.qbfsForm.planStatus = this.selectList[0].planStatus
this.qbfsForm.releaseTime = this.selectList[0].releaseTime
this.qbfsForm.resPerson = this.selectList[0].resPerson
this.qbfsForm.resPersonName = this.selectList[0].resPersonName
this.qbfsForm.reviseStatus = this.selectList[0].reviseStatus
this.qbfsForm.unit = this.selectList[0].unit
this.qbfsForm.wgLeader = this.selectList[0].wgLeader
this.qbfsForm.wgLeaderName = this.selectList[0].wgLeaderName
this.ListModel = false
}
},
@@ -1,91 +1,146 @@
<template>
<div>
<process-title>
<template slot="title">立项信息</template>
</process-title>
<el-form :model="qbfsForm" class="label-input-form prc-content-border"
label-width="150px" :rules="qbfsFormRules" ref="qbfsForm">
<el-form-item v-if="false" label="" prop="type" class="add-form-item form-item-disabled">
<el-input
v-model="qbfsForm.type"
clearable
></el-input>
</el-form-item>
<el-form-item prop="esName" label="企标名称" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
<el-input
v-model="qbfsForm.esName"
placeholder="请输入企标名称"
:maxlength="500"/>
</el-form-item>
<el-form-item prop="planStatus" label="计划状态" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
<el-select v-model="qbfsForm.planStatus" placeholder="请选择计划状态">
<el-option label="制定" value="制定"></el-option>
<el-option label="修订" value="修订"></el-option>
<el-option label="完成" value="完成"></el-option>
<div>
<process-title>
<template slot="title">立项信息</template>
</process-title>
<el-form :model="qbfsForm" class="label-input-form prc-content-border"
label-width="150px" :rules="qbfsFormRules" ref="qbfsForm">
<el-form-item v-if="false" label="" prop="type" class="add-form-item form-item-disabled">
<el-input
v-model="qbfsForm.type"
clearable
></el-input>
</el-form-item>
<el-form-item prop="esName" label="企标名称" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
<el-input
v-model="qbfsForm.esName"
placeholder="请输入企标名称"
:maxlength="500"/>
</el-form-item>
<el-form-item prop="planStatus" label="计划状态" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
<el-select v-model="qbfsForm.planStatus" placeholder="请选择计划状态">
<el-option label="制定" value="制定"></el-option>
<el-option label="修订" value="修订"></el-option>
<el-option label="完成" value="完成"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="reviseStatus" label="制修订状态" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
<el-select v-model="qbfsForm.reviseStatus" placeholder="请选择制修订状态">
<el-option label="制定完成" value="制定完成"></el-option>
<el-option label="制定中" value="制定中"></el-option>
<el-option label="未制定" value="未制定"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="drafterName" label="起草人" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
<el-input v-model="qbfsForm.drafter" style="display: none;"></el-input>
<el-input v-model="qbfsForm.drafterName" placeholder="请选择起草人"
@click.native="choiceZRRS('1')">
</el-input>
</el-form-item>
<el-form-item prop="resPersonName" label="评审责任人" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
<el-input v-model="qbfsForm.resPerson" style="display: none;"></el-input>
<el-input v-model="qbfsForm.resPersonName" placeholder="请选择评审责任人"
@click.native="choiceZRRS('2')">
</el-input>
</el-form-item>
<el-form-item prop="wgLeaderName" label="工作组组长" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
<el-input v-model="qbfsForm.wgLeader" style="display: none;"></el-input>
<el-input v-model="qbfsForm.wgLeaderName" placeholder="请选择工作组组长"
@click.native="choiceZRR"></el-input>
</el-form-item>
<el-form-item label="计划标准初稿完成时间" style="width: 100%; margin-right:10px" prop="draftTime" class="add-form-item form-item-disabled">
<el-date-picker
v-model="qbfsForm.draftTime"
value-format="yyyy-MM-dd"
type="date"
placeholder="请选择计划标准初稿完成时间">
</el-date-picker>
</el-form-item>
<el-form-item label="计划标准发布时间" style="width: 100%; margin-right:10px" prop="releaseTime" class="add-form-item form-item-disabled">
<el-date-picker
v-model="qbfsForm.releaseTime"
value-format="yyyy-MM-dd"
type="date"
placeholder="请选择计划标准发布时间">
</el-date-picker>
</el-form-item>
<el-form-item label="起草责任单位" style="width: 100%; margin-right:10px" class="add-form-item" prop="unit" >
<div style="display: flex;justify-content: space-between;align-items: center;">
<el-input
clearable
v-model="qbfsForm.unit"
placeholder="选择或输入起草单位">
</el-input>
<div>
<el-button
size="mini"
type="primary"
@click="QCDWClick"
class="common-button-primary">手动查找</el-button>
</div>
</div>
</el-form-item>
<!-- <el-form-item label="起草责任单位" style="width: 100%; margin-right:10px" prop="unit" class="add-form-item form-item-disabled">-->
<!-- <el-select v-model="qbfsForm.unit" filterable multiple clearable>-->
<!-- <el-option-->
<!-- v-for="item in qcdwOptions"-->
<!-- placeholder="请选择起草责任单位"-->
<!-- :key="item.value"-->
<!-- :value="item.label"-->
<!-- :label="item.label"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="新增原因" style="width: 100%; margin-right:10px" prop="newReason" class="add-form-item form-item-disabled">
<el-input
type="textarea"
v-model="qbfsForm.newReason"
placeholder="请输入新增原因"
:maxlength="500"/>
</el-form-item>
<!-- <el-form-item label="备注" style="width: 100%; margin-right:10px" class="add-form-item" prop="remarks">-->
<!-- <el-input-->
<!-- v-model="qbfsForm.remarks"-->
<!-- placeholder="请输入备注"-->
<!-- :maxlength="500"/>-->
<!-- </el-form-item>-->
</el-form>
<!-- 多选择责任人-->
<Role-tree
:is-title="drawerTitle2"
:is-visible.sync="modalshowflag2"
@checkedRole="checkedRole2"
:nodeList="nodeList2"
></Role-tree>
<Role-tree
check-box
:is-title="drawerTitle"
:is-visible.sync="modalshowflag"
@checkedRole="checkedRole"
:nodeList="nodeList"
></Role-tree>
<el-dialog
:visible.sync="QCDWmodal"
width="500px"
title="选择起草部门"
destroy-on-close
:close-on-click-modal="false"
@closed="QCDWmodal = false">
<el-select v-model="QCDWValue" multiple filterable placeholder="请选择" style="width: 100%;">
<el-option
v-for="item in qcdwOptions"
:key="item.value"
:label="item.label"
:value="item.label">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="reviseStatus" label="制修订状态" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
<el-select v-model="qbfsForm.reviseStatus" placeholder="请选择制修订状态">
<el-option label="制定完成" value="制定完成"></el-option>
<el-option label="制定中" value="制定中"></el-option>
<el-option label="未制定" value="未制定"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="drafter" label="起草人" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
<el-input
v-model="qbfsForm.drafter"
placeholder="请输入起草人"
:maxlength="500"/>
</el-form-item>
<el-form-item prop="resPerson" label="评审责任人" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
<el-input
v-model="qbfsForm.resPerson"
placeholder="请输入评审责任人"
:maxlength="500"/>
</el-form-item>
<el-form-item prop="wgLeader" label="工作组组长" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
<el-input
v-model="qbfsForm.wgLeader"
placeholder="请输入工作组组长"
:maxlength="500"/>
</el-form-item>
<el-form-item label="计划标准初稿完成时间" style="width: 100%; margin-right:10px" prop="draftTime" class="add-form-item form-item-disabled">
<el-date-picker
v-model="qbfsForm.draftTime"
value-format="yyyy-MM-dd"
type="date"
placeholder="请选择计划标准初稿完成时间">
</el-date-picker>
</el-form-item>
<el-form-item label="计划标准发布时间" style="width: 100%; margin-right:10px" prop="releaseTime" class="add-form-item form-item-disabled">
<el-date-picker
v-model="qbfsForm.releaseTime"
value-format="yyyy-MM-dd"
type="date"
placeholder="请选择计划标准发布时间">
</el-date-picker>
</el-form-item>
<el-form-item label="起草责任单位" style="width: 100%; margin-right:10px" prop="unit" class="add-form-item form-item-disabled">
<el-input
v-model="qbfsForm.unit"
placeholder="请输入起草责任单位"
:maxlength="500"/>
</el-form-item>
<el-form-item label="新增原因" style="width: 100%; margin-right:10px" prop="newReason" class="add-form-item form-item-disabled">
<el-input
type="textarea"
v-model="qbfsForm.newReason"
placeholder="请输入新增原因"
:maxlength="500"/>
</el-form-item>
<!-- <el-form-item label="备注" style="width: 100%; margin-right:10px" class="add-form-item" prop="remarks">-->
<!-- <el-input-->
<!-- v-model="qbfsForm.remarks"-->
<!-- placeholder="请输入备注"-->
<!-- :maxlength="500"/>-->
<!-- </el-form-item>-->
</el-form>
</div>
<div slot="footer" class="demo-drawer-footer">
<el-button size="mini" type="primary" class="common-button-default" icon="el-icon-check"
@click="QCDWOK">确认
</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
@@ -100,6 +155,17 @@ export default {
props: ['message'],
data(){
return {
QCDWmodal: false,
QCDWValue: [],
QCDWList: [],
drawerTitle2: '',
drawerTitle: '',
roleType: '',
modalshowflag2: false,
modalshowflag: false,
nodeList2: [],
nodeList: [],
qcdwOptions: [],
qbfsForm: {
type: '5',
unit: '', //
@@ -107,10 +173,13 @@ export default {
planStatus: '', //
reviseStatus: '', //
resPerson: '', //
resPersonName: '',
wgLeader: '', //
wgLeaderName: '',
draftTime: '', // 稿
releaseTime: '', //
drafter: '', //
drafterName: '',
newReason: '', //
// remarks: '', //
},
@@ -127,10 +196,10 @@ export default {
reviseStatus: [
{required: true, message: '请选择制修订状态', trigger: 'change'},
],
resPerson: [
resPersonName: [
{required: true, message: '请输入评审责任人', trigger: 'blur'},
],
wgLeader: [
wgLeaderName: [
{required: true, message: '请输入工作组组长', trigger: 'blur'},
],
draftTime: [
@@ -139,7 +208,7 @@ export default {
releaseTime: [
{required: true, message: '请输入计划标准发布时间', trigger: 'blur'},
],
drafter: [
drafterName: [
{required: true, message: '请输入起草人', trigger: 'blur'},
],
newReason: [
@@ -158,7 +227,76 @@ export default {
}
}
},
mounted(){
//
this.$http.get('sys/dictype/getDicTypeListCode', '',{
_this: this
}, res => {
console.log(res);
this.qcdwOptions = res.data.QCDW //
})
},
methods: {
QCDWOK () {
let arr1 = []
if (this.qbfsForm.unit.length > 0) {
let str = this.qbfsForm.unit.replace(//g, ',')
arr1 = str.split(',')
}
let arr2 = arr1.concat(this.QCDWValue)
this.qbfsForm.unit = Array.from(new Set(arr2)).join(',')
this.QCDWmodal = false
},
QCDWClick () {
this.QCDWValue = []
this.QCDWmodal = true
},
choiceZRR() {
this.nodeList = [];
this.drawerTitle = '请选择工作组组长';
this.modalshowflag = true;
},
checkedRole(data) {
this.qbfsForm.wgLeader = data[0].id;
this.qbfsForm.wgLeaderName = data[0].name;
this.modalshowflag = false;
},
choiceZRRS(type) {
this.roleType = type
if(type === '1' ){
this.drawerTitle2 = '请选择起草人'
this.nodeList2 = [];
if (this.qbfsForm.drafter !== undefined) {
this.nodeList2 = this.qbfsForm.drafter.split(",");
}
}else if(type === '2'){
this.drawerTitle2 = '请选择评审责任人'
this.nodeList2 = [];
if (this.qbfsForm.resPerson !== undefined) {
this.nodeList2 = this.qbfsForm.resPerson.split(",");
}
}
this.modalshowflag2 = true;
},
checkedRole2(data) {
var idList = "";
var nameList = "";
data.forEach(item => {
if (nameList.length > 0) {
nameList += ",";
idList += ",";
}
idList += item.id;
nameList += item.name;
});
if(this.roleType === '1'){
this.qbfsForm.drafter = idList;
this.qbfsForm.drafterName = nameList;
}else if(this.roleType === '2'){
this.qbfsForm.resPerson = idList;
this.qbfsForm.resPersonName = nameList;
}
},
validateForm () {
let flag = null
this.$refs['qbfsForm'].validate((valid) => {
@@ -170,7 +308,7 @@ export default {
})
return flag
}
}
},
};
</script>
@@ -3,86 +3,48 @@
<process-title>
<template slot="title">合并企标信息</template>
</process-title>
<el-form
ref="qbzxdForm"
:model="qbzxdForm"
:rules="formRules"
class="label-input-form prc-content-border"
label-width="150px"
>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="选择合并标准1" prop="orgName" class="add-form-item form-item-disabled">
<el-button size="mini" type="primary" style="margin-left: 10px;" @click="choiceShow">根据企标编号名称查询</el-button>
</el-form-item>
<el-form-item label="企标名称" prop="esName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="qbzxdForm.esName"
placeholder="请输入企标名称"
clearable
></el-input>
</el-form-item>
<el-form-item label="计划状态" prop="planStatus" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="qbzxdForm.planStatus"
placeholder="请输入计划状态"
clearable
></el-input>
</el-form-item>
<el-form-item v-show="standShow" label="制修订状态" prop="reviseStatus" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="qbzxdForm.reviseStatus"
placeholder="请输入制修订状态"
clearable
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="选择合并标准2" prop="orgName" class="add-form-item form-item-disabled">
<el-button size="mini" type="primary" style="margin-left: 10px;" @click="choiceShow2">根据企标编号名称类别查询</el-button>
</el-form-item>
<el-form-item label="企标名称" prop="esName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="qbzxdForm2.esName"
placeholder="请输入企标名称"
clearable
></el-input>
</el-form-item>
<el-form-item label="计划状态" prop="planStatus" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="qbzxdForm2.planStatus"
placeholder="请输入计划状态"
clearable
></el-input>
</el-form-item>
<el-form-item v-show="standShow2" label="制修订状态" prop="reviseStatus" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="qbzxdForm2.reviseStatus"
placeholder="请输入制修订状态"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<process-title>
<template slot="title">合并后企标信息</template>
</process-title>
<el-form
ref="qbfsForm"
:model="qbfsForm"
:rules="formRules"
:rules="qbfsFormRules"
class="label-input-form prc-content-border"
label-width="150px"
>
<div v-if="foldFormFlag">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="选择合并标准1" prop="orgName" class="add-form-item form-item-disabled">
<el-button size="mini" type="primary" style="margin-left: 10px;" @click="choiceShow">根据企标编号名称查询</el-button>
</el-form-item>
<el-form-item label="企标名称" prop="esName1" class="add-form-item form-item-disabled">
<el-input readonly v-model="qbfsForm.esName1" placeholder="请输入企标名称" clearable></el-input>
</el-form-item>
<el-form-item label="计划状态" prop="planStatus1" class="add-form-item form-item-disabled">
<el-input readonly v-model="qbfsForm.planStatus1" placeholder="请输入计划状态" clearable></el-input>
</el-form-item>
<el-form-item v-show="standShow" label="制修订状态" prop="reviseStatus1" class="add-form-item form-item-disabled">
<el-input readonly v-model="qbfsForm.reviseStatus1" placeholder="请输入制修订状态" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="选择合并标准2" prop="orgName" class="add-form-item form-item-disabled">
<el-button size="mini" type="primary" style="margin-left: 10px;" @click="choiceShow2">根据企标编号名称类别查询</el-button>
</el-form-item>
<el-form-item label="企标名称" prop="esName2" class="add-form-item form-item-disabled">
<el-input readonly v-model="qbfsForm.esName2" placeholder="请输入企标名称" clearable></el-input>
</el-form-item>
<el-form-item label="计划状态" prop="planStatus2" class="add-form-item form-item-disabled">
<el-input readonly v-model="qbfsForm.planStatus2" placeholder="请输入计划状态" clearable></el-input>
</el-form-item>
<el-form-item v-show="standShow2" label="制修订状态" prop="reviseStatus2" class="add-form-item form-item-disabled">
<el-input readonly v-model="qbfsForm.reviseStatus2" placeholder="请输入制修订状态" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<process-title>
<template slot="title">合并后企标信息</template>
</process-title>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item v-if="false" label="" prop="type" class="add-form-item form-item-disabled">
@@ -105,12 +67,11 @@
<el-option label="未制定" value="未制定"></el-option>
</el-select>
</el-form-item>
<el-form-item label="评审责任人" prop="resPerson" class="add-form-item form-item-disabled">
<el-input
v-model="qbfsForm.resPerson"
placeholder="请输入评审责任人"
clearable
></el-input>
<el-form-item label="评审责任人" prop="resPersonName" class="add-form-item form-item-disabled">
<el-input v-model="qbfsForm.resPerson" style="display: none;"></el-input>
<el-input v-model="qbfsForm.resPersonName" placeholder="请选择评审责任人"
@click.native="choiceZRRS('2')">
</el-input>
</el-form-item>
<el-form-item label="初稿完成时间" prop="draftTime" class="add-form-item form-item-disabled">
<el-date-picker
@@ -120,12 +81,21 @@
placeholder="请选择初稿完成时间">
</el-date-picker>
</el-form-item>
<el-form-item label="起草责任单位" prop="unit" class="add-form-item form-item-disabled">
<el-input
v-model="qbfsForm.unit"
placeholder="请输入起草责任单位"
clearable
></el-input>
<el-form-item label="起草责任单位" style="width: 100%; margin-right:10px" class="add-form-item" prop="unit" >
<div style="display: flex;justify-content: space-between;align-items: center;">
<el-input
clearable
v-model="qbfsForm.unit"
placeholder="选择或输入起草单位">
</el-input>
<div>
<el-button
size="mini"
type="primary"
@click="QCDWClick"
class="common-button-primary">手动查找</el-button>
</div>
</div>
</el-form-item>
</el-col>
<el-col :span="12">
@@ -136,19 +106,16 @@
<el-option label="完成" value="完成"></el-option>
</el-select>
</el-form-item>
<el-form-item label="起草人" prop="drafter" class="add-form-item form-item-disabled">
<el-input
v-model="qbfsForm.drafter"
placeholder="请输入起草人"
clearable
></el-input>
<el-form-item label="起草人" prop="drafterName" class="add-form-item form-item-disabled">
<el-input v-model="qbfsForm.drafter" style="display: none;"></el-input>
<el-input v-model="qbfsForm.drafterName" placeholder="请选择起草人"
@click.native="choiceZRRS('1')">
</el-input>
</el-form-item>
<el-form-item label="工作组组长" prop="wgLeader" class="add-form-item form-item-disabled">
<el-input
v-model="qbfsForm.wgLeader"
placeholder="请输入工作组组长"
clearable
></el-input>
<el-form-item label="工作组组长" prop="wgLeaderName" class="add-form-item form-item-disabled">
<el-input v-model="qbfsForm.wgLeader" style="display: none;"></el-input>
<el-input v-model="qbfsForm.wgLeaderName" placeholder="请选择工作组组长"
@click.native="choiceZRR"></el-input>
</el-form-item>
<el-form-item label="标准发布时间" prop="releaseTime" class="add-form-item form-item-disabled">
<el-date-picker
@@ -245,17 +212,17 @@
label="制修订状态">
</el-table-column>
<el-table-column
prop="drafter"
prop="drafterName"
align="center"
label="起草人">
</el-table-column>
<el-table-column
prop="resPerson"
prop="resPersonName"
align="center"
label="评审责任人">
</el-table-column>
<el-table-column
prop="wgLeader"
prop="wgLeaderName"
align="center"
label="工作组组长">
</el-table-column>
@@ -296,6 +263,41 @@
<el-button type="primary" size="mini" @click="OkDrawer">带入</el-button>
</div>
</el-drawer>
<!-- 多选择责任人-->
<Role-tree
:is-title="drawerTitle2"
:is-visible.sync="modalshowflag2"
@checkedRole="checkedRole2"
:nodeList="nodeList2"
></Role-tree>
<Role-tree
check-box
:is-title="drawerTitle"
:is-visible.sync="modalshowflag"
@checkedRole="checkedRole"
:nodeList="nodeList"
></Role-tree>
<el-dialog
:visible.sync="QCDWmodal"
width="500px"
title="选择起草部门"
destroy-on-close
:close-on-click-modal="false"
@closed="QCDWmodal = false">
<el-select v-model="QCDWValue" multiple filterable placeholder="请选择" style="width: 100%;">
<el-option
v-for="item in qcdwOptions"
:key="item.value"
:label="item.label"
:value="item.label">
</el-option>
</el-select>
<div slot="footer" class="demo-drawer-footer">
<el-button size="mini" type="primary" class="common-button-default" icon="el-icon-check"
@click="QCDWOK">确认
</el-button>
</div>
</el-dialog>
</div>
</template>
@@ -310,6 +312,17 @@ export default {
props: ['message'],
data(){
return {
QCDWmodal: false,
QCDWValue: [],
QCDWList: [],
drawerTitle2: '',
drawerTitle: '',
type: '',
modalshowflag2: false,
modalshowflag: false,
nodeList2: [],
nodeList: [],
qcdwOptions: [],
standShow: false,
standShow2: false,
ListModel: false,
@@ -319,7 +332,44 @@ export default {
total: 0,
pageSize: this.$store.getters.userInfo.configContent,
selectList: [],
formRules: {},
qbfsFormRules: {
esName1: [
{required: true, message: '请选择合并计划企标名称', trigger: 'blur'},
],
esName2: [
{required: true, message: '请选择合并计划企标名称', trigger: 'blur'},
],
unit: [
{required: true, message: '请输入单位', trigger: 'blur'},
],
esName: [
{required: true, message: '请输入企标名称', trigger: 'blur'},
],
planStatus: [
{required: true, message: '请选择计划状态', trigger: 'change'},
],
reviseStatus: [
{required: true, message: '请选择制修订状态', trigger: 'change'},
],
resPersonName: [
{required: true, message: '请输入评审责任人', trigger: 'blur'},
],
wgLeaderName: [
{required: true, message: '请输入工作组组长', trigger: 'blur'},
],
draftTime: [
{required: true, message: '请输入计划标准初稿完成时间', trigger: 'blur'},
],
releaseTime: [
{required: true, message: '请输入计划标准发布时间', trigger: 'blur'},
],
drafterName: [
{required: true, message: '请输入起草人', trigger: 'blur'},
],
mergeReason: [
{required: true, message: '请输入合并原因', trigger: 'blur'},
],
},
standinfoList: [],
standardSearch: {
reviseStatus: "",
@@ -334,6 +384,9 @@ export default {
isSubTime: "",
mergeReason: "",
company: "",
resPersonName: '',
drafterName: '',
wgLeaderName:'',
groupLeader: "",
drafterPeople: "",
formulateStatus: "",
@@ -357,21 +410,16 @@ export default {
reviewDate: '',
abolishCause:'',
},
qbzxdForm2: {
standCode: "",
standName: "",
enName: '',
entCategory: '',
replaceNumber: '',
replacedNumber: '',
releaseDate: '',
implementDate: '',
reviewDate: '',
abolishCause:'',
},
}
},
mounted() {
//
this.$http.get('sys/dictype/getDicTypeListCode', '',{
_this: this
}, res => {
console.log(res);
this.qcdwOptions = res.data.QCDW //
})
this.getStandDataBtn()
},
@@ -385,6 +433,66 @@ export default {
}
},
methods: {
QCDWOK () {
let arr1 = []
if (this.qbfsForm.unit !== undefined) {
let str = this.qbfsForm.unit.replace(//g, ',')
arr1 = str.split(',')
}
let arr2 = arr1.concat(this.QCDWValue)
this.qbfsForm.unit = Array.from(new Set(arr2)).join(',')
this.QCDWmodal = false
},
QCDWClick () {
this.QCDWValue = []
this.QCDWmodal = true
},
choiceZRR() {
this.nodeList = [];
this.drawerTitle = '请选择工作组组长';
this.modalshowflag = true;
},
checkedRole(data) {
this.qbfsForm.wgLeader = data[0].id;
this.qbfsForm.wgLeaderName = data[0].name;
this.modalshowflag = false;
},
choiceZRRS(type) {
this.type = type
if(type === '1' ){
this.drawerTitle2 = '请选择起草人'
this.nodeList2 = [];
if (this.qbfsForm.drafter !== undefined) {
this.nodeList2 = this.qbfsForm.drafter.split(",");
}
}else if(type === '2'){
this.drawerTitle2 = '请选择评审责任人'
this.nodeList2 = [];
if (this.qbfsForm.resPerson !== undefined) {
this.nodeList2 = this.qbfsForm.resPerson.split(",");
}
}
this.modalshowflag2 = true;
},
checkedRole2(data) {
var idList = "";
var nameList = "";
data.forEach(item => {
if (nameList.length > 0) {
nameList += ",";
idList += ",";
}
idList += item.id;
nameList += item.name;
});
if(this.type === '1'){
this.qbfsForm.drafter = idList;
this.qbfsForm.drafterName = nameList;
}else if(this.type === '2'){
this.qbfsForm.resPerson = idList;
this.qbfsForm.resPersonName = nameList;
}
},
validateForm () {
let flag = null
this.$refs['qbfsForm'].validate((valid) => {
@@ -418,14 +526,16 @@ export default {
this.$message.warning('请至少选择一条数据进行带入')
}else{
if(this.showType === 'one'){
this.qbzxdForm.esName = this.selectList[0].esName || '--'
this.qbzxdForm.planStatus = this.selectList[0].planStatus || '--'
this.qbzxdForm.reviseStatus = this.selectList[0].reviseStatus || '--'
this.qbfsForm.esId1 = this.selectList[0].id || '--'
this.qbfsForm.esName1 = this.selectList[0].esName || '--'
this.qbfsForm.planStatus1 = this.selectList[0].planStatus || '--'
this.qbfsForm.reviseStatus1 = this.selectList[0].reviseStatus || '--'
this.standShow = true
}else{
this.qbzxdForm2.esName = this.selectList[0].esName || '--'
this.qbzxdForm2.planStatus = this.selectList[0].planStatus || '--'
this.qbzxdForm2.reviseStatus = this.selectList[0].reviseStatus || '--'
this.qbfsForm.esId2 = this.selectList[0].id || '--'
this.qbfsForm.esName2 = this.selectList[0].esName || '--'
this.qbfsForm.planStatus2 = this.selectList[0].planStatus || '--'
this.qbfsForm.reviseStatus2= this.selectList[0].reviseStatus || '--'
this.standShow2 = true
}
this.ListModel = false
@@ -434,7 +544,7 @@ export default {
//
getStandDataBtn(){
this.$http.post('esRevisePlan/es-revise-plan/queryAllPlans',{
reviseStatus: this.standardSearch.reviseStatus,
reviseStatus: this.standardSearch.reviseStatus || '',
esName: this.standardSearch.standName,
page: this.page,
pageSize: this.pageSize,
@@ -37,10 +37,10 @@
<el-option label="未制定" value="未制定"></el-option>
</el-select>
</el-form-item>
<el-form-item label="评审责任人" prop="resPerson" class="add-form-item form-item-disabled">
<el-form-item label="评审责任人" prop="resPersonName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="qbfsForm.resPerson"
v-model="qbfsForm.resPersonName"
placeholder="请输入评审责任人"
clearable
></el-input>
@@ -69,18 +69,18 @@
<el-option label="完成" value="完成"></el-option>
</el-select>
</el-form-item>
<el-form-item label="起草人" prop="drafter" class="add-form-item form-item-disabled">
<el-form-item label="起草人" prop="drafterName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="qbfsForm.drafter"
v-model="qbfsForm.drafterName"
placeholder="请输入起草人"
clearable
></el-input>
</el-form-item>
<el-form-item label="工作组组长" prop="wgLeader" class="add-form-item form-item-disabled">
<el-form-item label="工作组组长" prop="wgLeaderName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="qbfsForm.wgLeader"
v-model="qbfsForm.wgLeaderName"
placeholder="请输入工作组组长"
clearable
></el-input>
@@ -188,17 +188,17 @@
label="制修订状态">
</el-table-column>
<el-table-column
prop="drafter"
prop="drafterName"
align="center"
label="起草人">
</el-table-column>
<el-table-column
prop="resPerson"
prop="resPersonName"
align="center"
label="评审责任人">
</el-table-column>
<el-table-column
prop="wgLeader"
prop="wgLeaderName"
align="center"
label="工作组组长">
</el-table-column>
@@ -315,7 +315,7 @@ export default {
//
getStandDataBtn(){
this.$http.post('esRevisePlan/es-revise-plan/queryAllPlans',{
reviseStatus: this.standardSearch.reviseStatus,
reviseStatus: this.standardSearch.reviseStatus || '',
esName: this.standardSearch.standName,
page: this.page,
pageSize: this.pageSize,
@@ -346,15 +346,16 @@ export default {
}else if(this.selectList.length < 1){
this.$message.warning('请至少选择一条数据进行带入')
}else{
this.qbfsForm.esId = this.selectList[0].id
this.qbfsForm.esName = this.selectList[0].esName
this.qbfsForm.draftTime = this.selectList[0].draftTime
this.qbfsForm.drafter = this.selectList[0].drafter
this.qbfsForm.drafterName = this.selectList[0].drafterName
this.qbfsForm.planStatus = this.selectList[0].planStatus
this.qbfsForm.releaseTime = this.selectList[0].releaseTime
this.qbfsForm.resPerson = this.selectList[0].resPerson
this.qbfsForm.resPersonName = this.selectList[0].resPersonName
this.qbfsForm.reviseStatus = this.selectList[0].reviseStatus
this.qbfsForm.unit = this.selectList[0].unit
this.qbfsForm.wgLeader = this.selectList[0].wgLeader
this.qbfsForm.wgLeaderName = this.selectList[0].wgLeaderName
this.ListModel = false
}
},
@@ -268,6 +268,7 @@ export default {
},
data() {
return {
comFlag: 0,
active: "1",
commentText: "",
comName: "merge",
@@ -380,7 +381,7 @@ export default {
toggleComName(name) {
this.comName = name;
if(this.comName === 'merge'){
this.$refs["childForm"].qbfsForm = '1'
this.$refs["childForm"].qbfsForm.type = '1'
}else if(this.comName === 'delay'){
this.$refs["childForm"].qbfsForm.type = '2'
}else if(this.comName === 'cancel'){
@@ -390,7 +391,6 @@ export default {
}else if(this.comName === 'establish'){
this.$refs["childForm"].qbfsForm.type = '5'
}
},
//
handleSave() {
@@ -414,22 +414,74 @@ export default {
this.saveLoading = false
})
},
repeatName(){
let qbzxdFrom = this.$refs["childForm"].qbfsForm;
this.$http.get('esRevisePlan/es-revise-plan/getDataByName', {esName: qbzxdFrom.esName, id : qbzxdFrom.esId}, {
_this: this
}, res => {
let dataList = res.data
dataList.forEach(item => {
if(item.esName === qbzxdFrom.esName1 || item.esName === qbzxdFrom.esName2){
this.comFlag++
}else{
this.comFlag = 0
}
})
})
},
//
handleSubmit() {
if (this.$route.query.prcNum === undefined) {
let flag = this.$refs["childForm"].validateForm();
let qbzxdFrom = this.$refs["childForm"].qbfsForm;
if (flag) {
this.$refs["roleForm"].validate((valid) => {
if (valid) {
this.isSubmit = true;
var json = Object.assign(qbzxdFrom, this.roleForm);
this.$http.get("lawss/activiti/startProcess", { type: "25" }, {
_this: this
}, res => {
if (res.ok) {
if(this.$refs["childForm"].qbfsForm.type === undefined){
this.$refs["childForm"].qbfsForm.type = '1'
}
this.repeatName()
if(this.comFlag === '0'){
this.$message.warning('请更改企标名称')
}else {
if (this.$route.query.prcNum === undefined) {
let flag = this.$refs["childForm"].validateForm();
let qbzxdFrom = this.$refs["childForm"].qbfsForm;
if (flag) {
this.$refs["roleForm"].validate((valid) => {
if (valid) {
this.isSubmit = true;
var json = Object.assign(qbzxdFrom, this.roleForm);
this.$http.get("lawss/activiti/startProcess", { type: "25" }, {
_this: this
}, res => {
if (res.ok) {
this.$http.post("lawss/activiti/completeTask", {
taskIds: res.data,
userId: this.$store.getters.userInfo.userId,
json: JSON.stringify(json)
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message);
this.isSubmit = false;
this.$router.push({ path: "/processCenter?tabsName=ProcessCenter" });
}
});
}
});
} else {
this.$message.warning("请完善人员信息");
}
});
} else {
this.$message.warning("请完善基础信息");
}
} else {
let flag = this.$refs["childForm"].validateForm();
let qbzxdFrom = this.$refs["childForm"].qbfsForm;
if (flag) {
this.$refs["roleForm"].validate((valid) => {
if (valid) {
this.isSubmit = true;
var json = Object.assign(qbzxdFrom, this.roleForm);
this.$http.post("lawss/activiti/completeTask", {
taskIds: res.data,
taskIds: this.$route.query.taskIds,
userId: this.$store.getters.userInfo.userId,
json: JSON.stringify(json)
}, {
@@ -441,46 +493,15 @@ export default {
this.$router.push({ path: "/processCenter?tabsName=ProcessCenter" });
}
});
} else {
this.$message.warning("请完善人员信息");
}
});
} else {
this.$message.warning("请完善人员信息");
this.$message.warning("请完善基础信息");
}
});
} else {
this.$message.warning("请完善基础信息");
}
}
} else {
let flag = this.$refs["childForm"].validateForm();
let qbzxdFrom = this.$refs["childForm"].qbfsForm;
if (flag) {
this.$refs["roleForm"].validate((valid) => {
if (valid) {
this.isSubmit = true;
var json = Object.assign(qbzxdFrom, this.roleForm);
this.$http.post("lawss/activiti/completeTask", {
taskIds: this.$route.query.taskIds,
userId: this.$store.getters.userInfo.userId,
json: JSON.stringify(json)
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message);
this.isSubmit = false;
this.$router.push({ path: "/processCenter?tabsName=ProcessCenter" });
}
});
} else {
this.$message.warning("请完善人员信息");
}
});
} else {
this.$message.warning("请完善基础信息");
}
}
},
//
choiceZRR(type, title, id) {
@@ -36,21 +36,21 @@
<el-option label="未制定" value="未制定"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="drafter" label="起草人" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
<el-form-item prop="drafterName" label="起草人" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="qbfsForm.drafter"
placeholder="请输入起草人"
:maxlength="500"/>
</el-form-item>
<el-form-item prop="resPerson" label="评审责任人" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
<el-form-item prop="resPersonName" label="评审责任人" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="qbfsForm.resPerson"
placeholder="请输入评审责任人"
:maxlength="500"/>
</el-form-item>
<el-form-item prop="wgLeader" label="工作组组长" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
<el-form-item prop="wgLeaderName" label="工作组组长" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="qbfsForm.wgLeader"
@@ -148,7 +148,7 @@
</div>
<div>
<el-collapse accordion>
<el-collapse-item title="回执说明">
<el-collapse-item title="审批意见">
<div style="margin: 10px 0;">
<el-input
type="textarea"
@@ -391,26 +391,29 @@ export default {
});
},
beforeBack(){
this.isSubmit = true
this.qbfsForm.passFlag = '1'
this.qbfsForm.commentText = this.commentText
let json = JSON.stringify(this.qbfsForm);
this.$http.post('lawss/activiti/completeTask', {
taskIds: this.$route.query.taskIds,
userId: this.$store.getters.userInfo.userId,
json: json,
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message)
this.$router.push('/processCenter')
}
this.isSubmit = false
}, e => {
});
if(!this.commentText){
this.$message.warning('请填写审批意见')
}else{
this.isSubmit = true
this.qbfsForm.passFlag = '1'
this.qbfsForm.commentText = this.commentText
let json = JSON.stringify(this.qbfsForm);
this.$http.post('lawss/activiti/completeTask', {
taskIds: this.$route.query.taskIds,
userId: this.$store.getters.userInfo.userId,
json: json,
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message)
this.$router.push('/processCenter')
}
this.isSubmit = false
}, e => {
});
}
},
},
};
</script>
@@ -148,7 +148,7 @@
</div>
<div>
<el-collapse accordion>
<el-collapse-item title="回执说明">
<el-collapse-item title="审批意见">
<div style="margin: 10px 0;">
<el-input
type="textarea"
@@ -391,26 +391,29 @@ export default {
});
},
beforeBack(){
this.isSubmit = true
this.qbfsForm.deptCenterFlag = '1'
this.qbfsForm.commentText = this.commentText
let json = JSON.stringify(this.qbfsForm);
this.$http.post('lawss/activiti/completeTask', {
taskIds: this.$route.query.taskIds,
userId: this.$store.getters.userInfo.userId,
json: json,
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message)
this.$router.push('/processCenter')
}
this.isSubmit = false
}, e => {
});
if(!this.commentText){
this.$message.warning('请填写审批意见')
}else{
this.isSubmit = true
this.qbfsForm.deptCenterFlag = '1'
this.qbfsForm.commentText = this.commentText
let json = JSON.stringify(this.qbfsForm);
this.$http.post('lawss/activiti/completeTask', {
taskIds: this.$route.query.taskIds,
userId: this.$store.getters.userInfo.userId,
json: json,
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message)
this.$router.push('/processCenter')
}
this.isSubmit = false
}, e => {
});
}
},
},
};
</script>
@@ -148,7 +148,7 @@
</div>
<div>
<el-collapse accordion>
<el-collapse-item title="回执说明">
<el-collapse-item title="审批意见">
<div style="margin: 10px 0;">
<el-input
type="textarea"
@@ -391,24 +391,28 @@ export default {
});
},
beforeBack(){
this.isSubmit = true
this.qbfsForm.bzFlag = '1'
this.qbfsForm.commentText = this.commentText
let json = JSON.stringify(this.qbfsForm);
this.$http.post('lawss/activiti/completeTask', {
taskIds: this.$route.query.taskIds,
userId: this.$store.getters.userInfo.userId,
json: json,
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message)
this.$router.push('/processCenter')
}
this.isSubmit = false
}, e => {
});
if(!this.commentText){
this.$message.warning('请填写审批意见')
}else{
this.isSubmit = true
this.qbfsForm.bzFlag = '1'
this.qbfsForm.commentText = this.commentText
let json = JSON.stringify(this.qbfsForm);
this.$http.post('lawss/activiti/completeTask', {
taskIds: this.$route.query.taskIds,
userId: this.$store.getters.userInfo.userId,
json: json,
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message)
this.$router.push('/processCenter')
}
this.isSubmit = false
}, e => {
});
}
},
},
@@ -148,7 +148,7 @@
</div>
<div>
<el-collapse accordion>
<el-collapse-item title="回执说明">
<el-collapse-item title="审批意见">
<div style="margin: 10px 0;">
<el-input
type="textarea"
@@ -391,24 +391,28 @@ export default {
});
},
beforeBack(){
this.isSubmit = true
this.qbfsForm.bzfgbzFlag = '1'
this.qbfsForm.commentText = this.commentText
let json = JSON.stringify(this.qbfsForm);
this.$http.post('lawss/activiti/completeTask', {
taskIds: this.$route.query.taskIds,
userId: this.$store.getters.userInfo.userId,
json: json,
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message)
this.$router.push('/processCenter')
}
this.isSubmit = false
}, e => {
});
if(!this.commentText){
this.$message.warning('请填写审批意见')
}else{
this.isSubmit = true
this.qbfsForm.bzfgbzFlag = '1'
this.qbfsForm.commentText = this.commentText
let json = JSON.stringify(this.qbfsForm);
this.$http.post('lawss/activiti/completeTask', {
taskIds: this.$route.query.taskIds,
userId: this.$store.getters.userInfo.userId,
json: json,
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message)
this.$router.push('/processCenter')
}
this.isSubmit = false
}, e => {
});
}
},
},
@@ -239,7 +239,7 @@
@pageSizeChange="pageSizeChange"/>
<div class="demo-drawer-footer">
<el-button size="mini" @click="closeDrawer">取消</el-button>
<el-button type="primary" size="mini" @click="OkDrawer">带入</el-button>
<el-button type="primary" size="mini" @click="OkDrawer">确认</el-button>
</div>
</el-drawer>
<ProcessFooter
@@ -13,72 +13,6 @@
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<!-- <el-form :modal="nonSearch" inline class="label-input-form">
<el-form-item label="标准号/标准名称" class="search-item">
<el-input
size="small"
v-model="nonSearch.standId"
placeholder="请输入"
clearable
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="项目名称" class="search-item">
<el-input
size="small"
v-model="nonSearch.productName"
placeholder="请输入"
clearable
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="责任部门" class="search-item">
<el-input v-model="nonSearch.responsibleUnit" v-show="false" />
<el-popover
placement="bottom"
popper-class="user-dept-popper"
trigger="click"
:value="false"
>
<el-input
size="small"
slot="reference"
v-model="nonSearch.responseUnitShow"
placeholder="根据责任部门查找"
readonly
clearable
id="searchResp"
/>
<div class="api">
<laws-tree
:zNodes="zNodesSItem"
treeDivId="zNodesSItemSearch"
deptSelect
showRMenu
@treeDblClick="(treeId, treeNode) => treeClickSearch(treeId, treeNode)"
class="ztree" style="width: 200px;height: 400px;overflow: auto">
</laws-tree>
</div>
</el-popover>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
type="primary"
class="common-button-primary"
size="mini"
v-btn-permission="'b3aaea6d18f5871b68825d3783eb736a'"
@click="getTableByPage(nonSearch)">
查询
</el-button>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
class="common-button-default"
size="mini"
v-btn-permission="'5905d0743c3504799aee83ac9697f8c5'"
@click="clearAllSearch">
清空
</el-button>
</el-form-item>
</el-form>-->
<div class="content-center">
<el-button
style="text-align: end"
@@ -301,6 +235,9 @@ export default {
}
},
methods: {
phoneClick () {
this.$router.push('/phoneWfhxStep4')
},
processTable() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum,
@@ -326,14 +263,15 @@ export default {
},
getFormFieldList (item) {
this.$nextTick(() => {
if (item.passInfo !== undefined) {
if (item.passInfo !== 0) {
this.passInfo = JSON.parse(JSON.stringify(item)).passInfo
}
let fileData = JSON.parse(JSON.stringify(item)).dockUserList
for (let i = 0; i<fileData.length; i++) {
if (fileData[i].name === this.$store.getters.userInfo.userName) {
this.dataList = fileData[i].standardInfoList
this.standardInfoList = this.dataList
} else {
let fileData = JSON.parse(JSON.stringify(item)).dockUserList
for (let i = 0; i<fileData.length; i++) {
if (fileData[i].name.slice(0,fileData[i].name.indexOf('(')) === this.$store.getters.userInfo.userName) {
this.dataList = fileData[i].standardInfoList
this.standardInfoList = this.dataList
}
}
}
})
@@ -13,72 +13,6 @@
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<!-- <el-form :modal="nonSearch" inline class="label-input-form">
<el-form-item label="标准号/标准名称" class="search-item">
<el-input
size="small"
v-model="nonSearch.standId"
placeholder="请输入"
clearable
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="项目名称" class="search-item">
<el-input
size="small"
v-model="nonSearch.productName"
placeholder="请输入"
clearable
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="责任部门" class="search-item">
<el-input v-model="nonSearch.responsibleUnit" v-show="false" />
<el-popover
placement="bottom"
popper-class="user-dept-popper"
trigger="click"
:value="false"
>
<el-input
size="small"
slot="reference"
v-model="nonSearch.responseUnitShow"
placeholder="根据责任部门查找"
readonly
clearable
id="searchResp"
/>
<div class="api">
<laws-tree
:zNodes="zNodesSItem"
treeDivId="zNodesSItemSearch"
deptSelect
showRMenu
@treeDblClick="(treeId, treeNode) => treeClickSearch(treeId, treeNode)"
class="ztree" style="width: 200px;height: 400px;overflow: auto">
</laws-tree>
</div>
</el-popover>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
type="primary"
class="common-button-primary"
size="mini"
v-btn-permission="'b3aaea6d18f5871b68825d3783eb736a'"
@click="getTableByPage(nonSearch)">
查询
</el-button>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
class="common-button-default"
size="mini"
v-btn-permission="'5905d0743c3504799aee83ac9697f8c5'"
@click="clearAllSearch">
清空
</el-button>
</el-form-item>
</el-form>-->
<el-table
:data="dataList"
border
@@ -310,7 +310,7 @@
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="commentText">
v-model.trim="commentText">
</el-input>
</div>
</el-collapse-item>
@@ -96,15 +96,15 @@
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="选择确认人" placement="top"
<el-timeline-item timestamp="选择产品工程经理" placement="top"
:color="roleForm.confirmId ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="confirmName" style="margin-bottom: 0">
<h4>确认人</h4>
<h4>产品工程经理</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.confirmId" style="display: none;"></el-input>
<el-input v-model="roleForm.confirmName" placeholder="选择确认人"
@click.native="choiceZRR('confirmId', '选择确认人', roleForm.confirmId)"></el-input>
<el-input v-model="roleForm.confirmName" placeholder="选择产品工程经理"
@click.native="choiceZRR('confirmId', '选择产品工程经理', roleForm.confirmId)"></el-input>
</div>
</el-form-item>
</el-card>
@@ -449,7 +449,7 @@ export default {
//
roleFormRules: {
confirmName: [
{ required: true, message: "请选择确认人", trigger: "change" }
{ required: true, message: "请选择产品工程经理", trigger: "change" }
]
}
};
@@ -691,7 +691,7 @@ export default {
_formData.append("createUserName", this.$store.getters.userInfo.userName);
_formData.append("prcType", "10");
_formData.append("json", JSON.stringify({
taskInfo: "确认人确认",
taskInfo: "产品经理分发",
form: this.qdform,
roleForm: this.roleForm,
commentText: this.commentText
@@ -80,7 +80,7 @@
prop="standName"
align="center"
label="中文名称"
width="180px"
min-width="300"
>
<template slot-scope="scope">
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
@@ -90,7 +90,7 @@
prop="standEnName"
label="英文名称"
align="center"
width="180px"
min-width="300"
>
<template slot-scope="scope">
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standEnName }}</a>
@@ -133,30 +133,16 @@
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="kccvppsbm"
width="180px"
prop="involve"
width="160px"
align="center"
label="卡车VPPS编码">
label="标准是否涉及">
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="kccvppscn"
width="180px"
prop="remarks"
align="center"
label="卡车vpps中文名称">
</el-table-column>
<el-table-column
prop="cycvppsbm"
width="180px"
align="center"
label="乘用车VPPS编码">
</el-table-column>
<el-table-column
prop="cycvppscn"
width="180px"
align="center"
label="乘用车vpps中文名称">
width="180"
label="备注">
</el-table-column>
</el-table>
</div>
@@ -356,8 +342,13 @@ export default {
this.qdform.prcName = this.prcName;
this.qdform["id"] = item.id;
this.dataList = item.dataList
this.projectId = item.projectId
// this.getStandData();
this.dataList.forEach(item => {
if(item.involve === 'involve'){
item.involve = '涉及'
}else if(item.involve === 'noInvolve'){
item.involve = '不涉及'
}
})
}else{
this.qdform = item.form
this.dataList =item.form.dataList
@@ -103,15 +103,15 @@
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="选择确认人" placement="top"
<el-timeline-item timestamp="选择产品工程经理" placement="top"
:color="roleForm.confirmId ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="confirmName" style="margin-bottom: 0">
<h4>确认人</h4>
<h4>产品工程经理</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.confirmId" style="display: none;"></el-input>
<el-input v-model="roleForm.confirmName" placeholder="选择确认人"
@click.native="choiceZRR('confirmId', '选择确认人', roleForm.confirmId)"></el-input>
<el-input v-model="roleForm.confirmName" placeholder="选择产品工程经理"
@click.native="choiceZRR('confirmId', '选择产品工程经理', roleForm.confirmId)"></el-input>
</div>
</el-form-item>
</el-card>
@@ -430,6 +430,7 @@ export default {
},
qdform: {
projectId:"",
projectNumber: "",
projectName: "",
detailedListName: "",
@@ -461,7 +462,7 @@ export default {
//
roleFormRules: {
confirmName: [
{ required: true, message: "请选择确认人", trigger: "change" }
{ required: true, message: "请选择产品工程经理", trigger: "change" }
],
approveName: [
{ required: true, message: "请选择审批人", trigger: "change" }
@@ -695,7 +696,7 @@ export default {
_formData.append("createUserName", this.$store.getters.userInfo.userName);
_formData.append("prcType", "10");
_formData.append("json", JSON.stringify({
taskInfo: "确认人确认",
taskInfo: "产品经理分发",
form: this.qdform,
roleForm: this.roleForm,
commentText: this.commentText
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,709 @@
<template>
<div class="xmqdqr-step2">
<ProcessHeader toggle>
<template slot="proName">项目清单确认流程</template>
<template slot="proNode">法规部经理审批</template>
</ProcessHeader>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto">
<process-title>
<template slot="title">基础信息</template>
</process-title>
<el-form
:model="qdform"
class="label-input-form prc-content-border"
label-width="150px"
>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="项目编号" prop="projectNumber" class="add-form-item form-item-disabled">
<el-input
v-model="qdform.projectNumber"
placeholder="请输入项目编号"
disabled
clearable
></el-input>
</el-form-item>
<el-form-item label="项目名称" prop="projectName" class="add-form-item form-item-disabled">
<el-input
v-model="qdform.projectName"
placeholder="请输入项目名称"
disabled
clearable
></el-input>
</el-form-item>
<el-form-item label="清单名称" prop="detailedListName" class="add-form-item form-item-disabled">
<el-input
v-model="qdform.detailedListName"
placeholder="请输入清单名称"
disabled
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<process-title style="margin-top:5px; margin-bottom: 5px">
<template slot="title">填写信息</template>
</process-title>
<el-table
:data="dataList"
border
ref="selection"
height="65%"
@selection-change="selectStandChange"
style="width: 100%; border:1px solid #ccc"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
align="center"
width="200px"
label="标准号"
>
<template slot-scope="scope">
<a v-if="scope.row.standYear" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standSort
}} {{ scope.row.standNumber }}-{{ scope.row.standYear }}</a>
<a v-else @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standSort }}
{{ scope.row.standNumber }}</a>
</template>
</el-table-column>
<el-table-column
prop="standName"
align="center"
min-width="300"
label="中文名称"
>
<template slot-scope="scope">
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
</template>
</el-table-column>
<el-table-column
prop="standEnName"
label="英文名称"
min-width="300"
align="center"
>
<template slot-scope="scope">
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standEnName }}</a>
</template>
</el-table-column>
<el-table-column
prop="ssrq"
width="190px"
align="center"
label="标准实施日期">
<template slot-scope="scope">
<span>{{ scope.row.ssrq ? scope.row.ssrq.substring(0, 10) : '-' }}</span>
</template>
</el-table-column>
<el-table-column
prop="xcxssrq"
width="190px"
align="center"
label="新车型实施日期">
<template slot-scope="scope">
<span>{{ scope.row.xcxssrq ? scope.row.xcxssrq.substring(0, 10) : '-' }}</span>
</template>
</el-table-column>
<el-table-column
prop="zccssrq"
align="center"
width="190px"
label="在产车实施日期">
<template slot-scope="scope">
<span>{{ scope.row.zccssrq ? scope.row.zccssrq.substring(0, 10) : '-' }}</span>
</template>
</el-table-column>
<el-table-column
prop="zrbm"
label="责任部门"
align="center"
width="180px"
>
</el-table-column>
<el-table-column
prop="involve"
width="160px"
align="center"
label="标准是否涉及">
</el-table-column>
<el-table-column
prop="remarks"
align="center"
width="180"
label="备注">
</el-table-column>
</el-table>
</div>
<div>
<el-collapse accordion>
<el-collapse-item title="回执说明">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="commentText">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list" style="height: 100%">
<el-table
height="100%"
ref="selection"
:data="detailData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
:no-data-text="listNoDataText"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="name"
label="任务步骤"
align="center"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="endTime"
label="完成时间"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="comment"
label="流程信息"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.commentText }}</span>
</template>
</el-table-column>
<el-table-column
prop="completeFlag"
label="状态"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
<loading :loading="loading">流程列表加载中</loading>
</div>
</div>
<ProcessFooter
show-back
show-transfer
show-submit
:submitLoading="isSubmit"
:transfer-loading="isTransfer"
:saveLoading="saveLoading"
:approval="true"
@back="beforeBack"
@transfer="handleTransfer"
@submit="handleSubmit"
>
</ProcessFooter>
<!-- 福田全公司选人解决方案 -->
<Role-tree
check-box
:is-title="drawerTitle"
:is-visible.sync="drawerModal"
@checkedRole="checkedTransferRole"
:nodeList="nodeList"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { inboundLiaisonDetail, queryDetail, saveTaskForPub ,changeAssigneeNew, execTask} from "api/process";
export default {
name: "xmqdqrStep5",
components: {
ProcessTitle,
ProcessHeader,
ProcessFooter
},
data() {
return {
lawInfoTableLoading: true,
lawInfoTable:[],
isTransfer: false,
//
drawerModal: false,
drawerTitle:'',
active: "1",
nodeList: [],
nodeList2: [],
loading: false,
// (1/2)
processType: 1,
isSubmit: false,
saveLoading: false,
submitShow: false,
acceptShow: false,
todoId: '',
projectId: "",
detailedId: "",
standSortOptions: [],
standList: [],
projectStand:[],
standardData: [],
handleSelectTableList: [], //
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
total: 0,
//
standCommonlySearch: {
standSort: "",
standNumber: "",
standType: "",
page: 1,
Size: this.$store.getters.userInfo.configContent
},
//
qdform: {
BZFlag: " ", //1
projectNumber: "", //
projectName: "", //
dataList: [], //
breakdownList: [] //
},
dataList: [], //
commentText: "", //
detailData: [],//
userId: this.$store.getters.userInfo.userId,
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
standMap: new Map(),
textStatusMap: {},// idname
};
},
mounted() {
this.processTable();
this.getData();
//
this.$http.get("sys/dictype/getDicTypeListCode", {}, {
_this: this,
loading: "loading"
}, res => {
this.energyKindOptions = res.data.ENERGYTYPES; //
this.standSortOptions = res.data.STANDCLASSIFY; //
this.setMap(res.data.WBZTCLASS);//
this.setMap(this.zrbmMap, res.data.ZRBMCLASS);
this.showLocalProductData(this.getLocalPro);
}, e => {
});
},
methods: {
formatIssueDate(str) {
const momentDate = this.$moment(str)
if (momentDate.isValid()) {
return this.$moment(str).format('YYYY-MM-DD')
} else {
return str
}
},
//
checkedTransferRole (data) {
this.assigneeNewLoading = true
changeAssigneeNew({
taskId: this.$route.query.taskIds, // id
assignee: data[0].id, //
userId: this.$store.getters.userInfo.userId, //
pId: this.$route.query.prcId //
}).then(res => {
this.isTransfer = false
if (res.success) {
this.drawerModal = false
this.$message.success('调整成功')
this.$router.push("/processCenter");
this.processNum()
} else {
this.$message.warning(res.message)
}
})
},
//
processNum (row) {
axios.request({
url: '/api/lawss/activiti/getImg?_t=' + new Date().getTime(),
responseType: 'blob',
method: 'get',
params: {
prcNum: this.$route.query.prcNum
}
}).then(res => {
// let blob = new Blob([res.data], {type: 'image/jpg'})
// let url = window.URL.createObjectURL(res.data)
this.processStep = window.URL.createObjectURL(res.data)
})
},
//
handleTransfer(){
this.drawerModal = true
this.drawerTitle = '转办处理人'
this.selectPeople = row
},
// idname
setMap(data) {
data.forEach(item => {
this.$set(this.textStatusMap, item.value, item.label)
})
},
processTable() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum,
sortWord: this.shunxu ? this.paixu : "",
shunxu: this.shunxu
}, {
loading: "loading",
_this: this
}, res => {
this.detailData = res;
}, e => {
});
},
//tab
handleTabs(type) {
this.active = type;
},
//
handlePreview(item) {
let routeUrl = this.$router.resolve({
name: "OtherStandardDetails",
params: {
id: item.id,
pageType: "INLAND_STAND"
}
});
window.open(routeUrl.href, "_blank");
},
//
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg);
let commitStatus = res.commitStatus
if(commitStatus && commitStatus > 0){
this.acceptShow = true
this.submitShow = false
}else {
this.acceptShow = false
this.submitShow = true
}
this.todoId = res.id
this.getFormFieldList(processForm);
}
}).catch(e => {
});
});
},
//
getFormFieldList(item) {
this.$nextTick(() => {
if(item.form === undefined){
this.qdform = JSON.parse(JSON.stringify(item));
this.qdform.prcNum = this.prcNum;
this.qdform.prcName = this.prcName;
this.qdform["id"] = item.id;
this.dataList = item.dataList
this.dataList.forEach(item => {
if(item.involve === 'involve'){
item.involve = '涉及'
}else if(item.involve === 'noInvolve'){
item.involve = '不涉及'
}
})
// this.projectId = item.projectId;
// //id
// this.detailedId = item.detailedListId;
// this.getStandData();
}else{
this.qdform = item.form
this.dataList =item.form.dataList
this.detailedId = item.form.detailedListId;
}
});
},
//
getStandData() {
this.$http.get("sarStandProjectLibrary/queryStandInfo", { id: this.projectId, cars: '1', }, {
_this: this
}, res => {
this.dataList = res.data.records;
this.dataList.forEach(item => {
//
if (item.zrbm !== null || item.zrbm !== "" ) {
let k = (item.zrbm || "").split(",");
for (let i in this.zrbmOptions) {
for (let m = 0; m < k.length; m++) {
if (this.zrbmOptions[i].value === k[m]) {
k[m] = this.zrbmOptions[i].label;
}
item.zrbm = k.join(",");
}
}
}
});
this.dataList.map(item => {
if(item.zrbm === '[]'){
item.zrbm = ''
}
})
});
},
//
handleAccept(){
this.isSubmit = true
execTask({
todoId: this.todoId // ID
}).then(res => {
if (res.sign && res.sign === '0') {
this.$message.success('接收成功')
this.$router.push('/processCenter')
}
this.isSubmit = false
})
},
//
handleSave() {
this.saveLoading = true;
let _formData = new FormData();
this.qdform.dataList = this.dataList
_formData.append("id", this.bpnId || "");
_formData.append("prcType", "10");
_formData.append('taskIds', this.taskIds)
_formData.append("json", JSON.stringify({
form: this.qdform,
commentText: this.commentText
}));
saveTaskForPub(_formData).then(res => {
this.saveLoading = false;
this.$message.success("保存成功");
this.bpnId = res.result;
}).catch(e => {
this.saveLoading = false;
});
},
handleRemark(){
this.dataList.map(item => {
if(item.involve === 'noInvolve'){
comFlag
}
})
},
//
beforeBack() {
if (this.commentText === null || this.commentText === undefined || this.commentText === "") {
this.$message.warning("请填写审批意见");
} else {
this.qdform.passFlag = "1";
this.qdform.commentText = this.commentText;
const json = JSON.stringify(this.qdform);
this.$http.post("lawss/activiti/completeTask", {
taskIds: this.taskIds,
userId: this.userId,
json: json
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message);
this.$router.push("/processCenter");
}
}, e => {
});
}
},
//
handleSubmit() {
this.isSubmit = true;
this.qdform.passFlag = "0";
this.qdform.commentText = this.commentText;
this.qdform.dataList = this.dataList
const json = JSON.stringify(this.qdform);
this.$http.post("lawss/activiti/completeTask", {
taskIds: this.taskIds,
userId: this.userId,
json: json
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message);
this.$router.push("/processCenter");
}
this.isSubmit = false;
}, e => {
});
},
//
handleSelectTableChange (data) {
this.handleSelectTableList = data
console.log(this.handleSelectTableList);
},
selectStandChange(data){
this.projectStand = data
},
cancelStand() {
this.standModel = false;
},
//
okStand() {
if(this.standList.length < 1){
this.$message.warning('请至少选择一条数据进行添加')
}else{
this.standList.forEach(item =>{
if(item.ssrq === "-"){
item.ssrq = ''
}
if(item.zrbm === '[]'){
item.zrbm =''
}
})
this.standList.map(item => {
let addIndex
addIndex = this.dataList.findIndex(items =>{
return items.id === item.id
})
if(addIndex > -1){
this.$message.warning('请勿重复添加数据')
}else{
this.dataList.push(item)
}
})
this.standModel = false
}
},
},
computed: {
listNoDataText() {
return this.processType === 1 ? "暂无待办流程" : "暂无已办流程";
}
},
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.xmqdqr-step2 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.choiceBtn {
.el-button--primary {
width: 150px;
}
}
position: relative;
height: 100%;
.headerTabs {
height: 52px;
display: flex;
align-items: center;
position: absolute;
top: 0;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
height: 30px;
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
.content {
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'100% - 103px');
overflow: auto;
.tableTitle {
margin-bottom: 10px;
height: 30px;
line-height: 30px;
position: relative;
font-size: 13px;
font-weight: bold;
.tableButton {
position: absolute;
right: 0;
top: 0;
}
.accessStandardsAndRegulations {
height: 100%;
}
}
}
.demo-drawer-content {
margin-top: 10px;
}
}
</style>
@@ -1092,7 +1092,6 @@
_this: this
}, res => {
if (res.success) {
debugger
if(this.formTongGuo.approvalOpinion === '1'){
this.$message.warning("驳回成功")
this.isSubmit = false
@@ -127,7 +127,7 @@
</div>
</el-card>
</el-col>
<el-col :span="size ? 6 : 8" v-btn-permission="'14f54ef4475d9210b1ee7872ab69eca8'">
<el-col :span="size ? 6 : 8" v-btn-permission="''">
<el-card shadow="hover">
<div class="card-box" @click="handleCreateProcess('11')">
<div class="card-top">
@@ -298,6 +298,21 @@
</div>
</el-card>
</el-col>
<el-col :span="size ? 6 : 8" v-btn-permission="">
<el-card shadow="hover">
<div class="card-box" @click="handleCreateProcess('buss1')">
<div class="card-top">
<div class="card-top-left">
<img :src="getImg(Math.floor(Math.random() * 6))">
</div>
<div class="card-top-right">
<div class="card-top-right-text">企标制修订流程及企业标准库流程</div>
<div class="card-top-right-line"></div>
</div>
</div>
</div>
</el-card>
</el-col>
<el-col :span="size ? 6 : 8" v-btn-permission="">
<el-card shadow="hover">
<div class="card-box" @click="handleCreateProcess('23')">
@@ -379,6 +394,12 @@ export default {
this.$store.commit('setDetailMap', this.$route.path)
this.$store.commit('setHandleInfo')
switch (prcType) {
case 'buss1':
//
this.$router.push({
name: 'bussLibrary1'
})
break
case '2':
//
this.$router.push({
@@ -0,0 +1,462 @@
<template>
<div class="phoneBzchStep2 phoneBox">
<ProcessHeaderPhone toggle>
<template slot="proName">标准解读流程</template>
<template slot="proNode">参会人员确认</template>
</ProcessHeaderPhone>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="content_form">
<el-form class="label-input-form" ref="ch_pageData" :model="ch_pageData" :rules="ch_rules" label-width="120px">
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="会议名称:">
{{ ch_pageData.meetingName || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="主办单位:">
{{ ch_pageData.primaryUnit || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="协会名称:">
{{ ch_pageData.associaName || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="会议时间:">
{{ ch_pageData.meetingStartTime || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="会议地点:">
{{ ch_pageData.meetingPlace || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="费用标准:">
{{ ch_pageData.feeStand || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="费用列支:">
{{ ch_pageData.feeKind || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<span v-if="uploadFileLength < 1">{{ '-' }}</span>
<span v-for="item in ch_pageData.fileTextList" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
</span>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="类别:">
<span v-if="ch_pageData.sort === '1'">计划内</span>
<span v-else>计划外</span>
</el-form-item>
</el-col>
</el-row>
<el-form-item class="add-form-item">
<el-table
class="meeting_table"
:data="ch_pageData.meetingTable"
border
ref="entryTable"
height="49%"
style="width: 100%"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '20px'}">
<el-table-column type="index" width="50" align="center"/>
<el-table-column label="议题" align="center" prop="meetingTheme"/>
</el-table>
</el-form-item>
<ProcessTitle>
<template slot="title">选择人员</template>
</ProcessTitle>
<el-form-item class="add-form-item" label="入会人员:">
<el-input
:disabled="true"
style="width: 30%"
placeholder="请选择入会人员"
v-model="ch_pageData.meetingInRole"
/>
</el-form-item>
</el-form>
</div>
</div>
<el-collapse accordion>
<el-collapse-item title="审批意见">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="commentText">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list">
<el-table
height="100%"
ref="selection"
:data="detailData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
:no-data-text="listNoDataText"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="name"
label="任务步骤"
align="center"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="endTime"
label="完成时间"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="comment"
label="流程信息"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.commentText }}</span>
</template>
</el-table-column>
<el-table-column
prop="completeFlag"
label="状态"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
<loading :loading="loading">流程列表加载中</loading>
</div>
</div>
<ProcessFooter
show-submit
show-back
backBTNTexts="不涉及"
:submitLoading="isSubmit"
:isSubmitBack="isBack"
@back="handleSubmitNo"
@submit="handleSubmit"
>
</ProcessFooter>
</div>
</template>
<script>
import ProcessHeaderPhone from '../../components/ProcessHeaderPhone'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {startProcess, saveTaskFirst, completeTask, inboundLiaisonDetail} from '@/api/process.js'
export default {
name: "phoneBzchStep2",
components: {
ProcessHeaderPhone,
ProcessFooter,
ProcessTitle
},
data() {
return {
active: '1',
acceptShow: false,
ch_pageData: {
fillPeopleId: '',
fillPeople: '',
fillUnit: '',
fillDept: '',
fillPost: '',
fillTel: '',
fillMail: '',
fillLeader: '',
fillFile: '',
},
ch_rules: {},
nodeList: [],
commentText: '',
isBack: false,
isSubmit: false,
saveLoading: false,
roleShowflag: false,
detailData: [],
loading: false,
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
uploadFileLength: ''
}
},
computed: {
listNoDataText() {
return this.processType === 1 ? "暂无待办流程" : "暂无已办流程";
}
},
created() {
this.processTable()
this.getData()
},
methods: {
//
handleTabs(name) {
this.active = name
},
processTable() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum,
sortWord: this.shunxu ? this.paixu : "",
shunxu: this.shunxu
}, {
loading: "loading",
_this: this
}, res => {
this.detailData = res
}, e => {
})
},
getData() {
const params = {
taskIds: this.taskIds,
pId: this.pId,
}
inboundLiaisonDetail(params).then(res => {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
})
},
getFormFieldList(item) {
this.$nextTick(() => {
this.ch_pageData = JSON.parse(JSON.stringify(item)).ch_pageData
this.uploadFileLength = this.ch_pageData.fileTextList.length
this.ch_pageData.meetingInRole = this.$store.getters.userInfo.userName
this.roleForm = JSON.parse(JSON.stringify(item)).roleList
})
},
// 退
handleSubmitNo() {
if (this.commentText === '') {
this.$message.warning('请输入审批意见')
} else {
let json = {
roleList: this.roleForm,
memberId: this.$store.getters.userInfo.userId,
passFlag: '0',
commentText: this.commentText,
ch_pageData: this.ch_pageData,
}
this.$refs['ch_pageData'].validate((valid) => {
if (valid) {
this.isBack = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('退回成功')
this.$router.push("/processCenter");
}
this.isBack = false
});
}
})
}
},
//
handleSubmit() {
let json = {
roleList: this.roleForm,
memberId: this.$store.getters.userInfo.userId,
passFlag: '1',
commentText: this.commentText,
ch_pageData: this.ch_pageData,
}
this.$refs['ch_pageData'].validate((valid) => {
if (valid) {
this.isSubmit = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('提交成功')
this.$router.push("/processCenter");
}
this.isSubmit = false
});
}
})
},
/** 点击对应附件进行下载*/
previews(val) {
let attId = val
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
},
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/phone';
.phoneBzchStep2 {
.prc-content-border {
overflow: auto;
}
/deep/.prc-content-border .el-form-item__content {
width: 270px;
}
.headerTabs {
height: 52px;
display: flex;
align-items: center;
position: absolute;
top: 52px;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
height: 30px;
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
.content {
border-top: 1px solid #DCDFE6;
display: flex;
flex-direction: column;
justify-content: space-between;
margin-top: 52px;
height: calc(~'100% - 155px');
overflow: auto;
.tableTitle {
margin-bottom: 10px;
height: 30px;
line-height: 30px;
position: relative;
font-size: 13px;
font-weight: bold;
.tableButton {
position: absolute;
right: 0;
top: 0;
}
}
}
.content-center {
padding: 10px 0px 10px 10px;
}
.content_form {
padding-top: 15px;
padding-left: 30px;
.el-divider--horizontal {
margin-top: 0px;
}
/deep/ .el-input.is-disabled .el-input__inner {
background-color: #fff;
}
/deep/ .el-table__body-wrapper {
height: auto !important;
}
.meeting_table {
/deep/ .el-input__inner {
text-align: center;
}
}
/deep/ .el-textarea__inner {
font-family: inherit;
}
/deep/ .el-upload {
display: unset;
}
/deep/ .el-upload-list__item-status-label {
font-size: 0;
}
/deep/ .el-upload-list__item {
.el-icon-close {
font-size: 0;
}
.el-icon-close-tip {
font-size: 0;
}
}
/deep/ .el-table th {
padding: 0px;
}
}
}
</style>
@@ -0,0 +1,466 @@
<template>
<div class="phoneBzchStep4 phoneBox">
<ProcessHeaderPhone toggle>
<template slot="proName">标准解读流程</template>
<template slot="proNode">审批</template>
</ProcessHeaderPhone>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="content_form">
<el-form class="label-input-form" ref="ch_pageData" :model="ch_pageData" :rules="ch_rules" label-width="120px">
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="会议名称:">
{{ ch_pageData.meetingName || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="主办单位:">
{{ ch_pageData.primaryUnit || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="协会名称:">
{{ ch_pageData.associaName || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="会议时间:">
{{ ch_pageData.meetingStartTime || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="会议地点:">
{{ ch_pageData.meetingPlace || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="费用标准:">
{{ ch_pageData.feeStand || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="费用列支:">
{{ ch_pageData.feeKind || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<span v-if="uploadFileLength < 1">{{ '-' }}</span>
<span v-for="item in ch_pageData.fileTextList" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
</span>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item class="add-form-item" label="类别:">
<span v-if="ch_pageData.sort === '1'">计划内</span>
<span v-else>计划外</span>
</el-form-item>
</el-col>
</el-row>
<el-form-item class="add-form-item" label="议题:">
<el-table
class="meeting_table"
:data="ch_pageData.meetingTable"
border
ref="entryTable"
height="49%"
style="width: 100%"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '20px'}">
<el-table-column type="index" width="50" align="center"/>
<el-table-column label="议题" align="center" prop="meetingTheme"/>
</el-table>
</el-form-item>
<el-form-item class="add-form-item" label="入会人员:">
<el-table
:data="ch_pageData.myPartRole"
border
ref="entryTable"
height="49%"
style="width: 100%"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '20px'}">
<el-table-column type="index" width="50" align="center"/>
<el-table-column prop="fillPeople" align="center" label="人员"/>
<el-table-column prop="fillUnit" align="center" label="单位"/>
<el-table-column prop="fillDept" align="center" label="部门"/>
<el-table-column prop="fillTel" align="center" label="电话"/>
<el-table-column prop="fillMail" align="center" label="邮箱"/>
</el-table>
</el-form-item>
</el-form>
</div>
</div>
<el-collapse accordion>
<el-collapse-item title="审批意见">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="textarea">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list">
<el-table
height="100%"
ref="selection"
:data="detailData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
:no-data-text="listNoDataText"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="name"
label="任务步骤"
align="center"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="endTime"
label="完成时间"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="comment"
label="流程信息"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.commentText }}</span>
</template>
</el-table-column>
<el-table-column
prop="completeFlag"
label="状态"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
<loading :loading="loading">流程列表加载中</loading>
</div>
</div>
<ProcessFooter
show-submit
show-back
:submitLoading="isSubmit"
:isSubmitBack="isBack"
@back="handleSubmitNo"
@submit="handleSubmit"
>
</ProcessFooter>
</div>
</template>
<script>
import ProcessHeaderPhone from '../../components/ProcessHeaderPhone'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {startProcess, saveTaskFirst, completeTask, inboundLiaisonDetail} from '@/api/process.js'
export default {
name: "phoneBzchStep4",
components: {
ProcessHeaderPhone,
ProcessFooter,
ProcessTitle
},
data() {
return {
active: '1',
ch_pageData: {
myPartRole: [],
},
ch_rules: {},
textarea: '',
isBack: false,
isSubmit: false,
saveLoading: false,
detailData: [],
loading: false,
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
uploadFileLength: ''
}
},
computed: {
listNoDataText() {
return this.processType === 1 ? "暂无待办流程" : "暂无已办流程";
}
},
created() {
this.processTable()
this.getData()
},
methods: {
//
handleTabs(name) {
this.active = name
},
processTable() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum,
sortWord: this.shunxu ? this.paixu : "",
shunxu: this.shunxu
}, {
loading: "loading",
_this: this
}, res => {
this.detailData = res
}, e => {
})
},
getData() {
const params = {
taskIds: this.taskIds,
pId: this.pId,
}
inboundLiaisonDetail(params).then(res => {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
})
},
getFormFieldList(item) {
this.$nextTick(() => {
this.ch_pageData = JSON.parse(JSON.stringify(item)).ch_pageData
this.uploadFileLength = this.ch_pageData.fileTextList.length
this.ch_pageData.myPartRole = [{
fillPeopleId: this.ch_pageData.fillPeopleId,
fillPeople: this.ch_pageData.fillPeople,
fillUnit: this.ch_pageData.fillUnit,
fillDept: this.ch_pageData.fillDept,
fillPost: this.ch_pageData.fillPost,
fillTel: this.ch_pageData.fillTel,
fillMail: this.ch_pageData.fillMail,
fillFile: this.ch_pageData.fillFile,
}]
this.selfUser = JSON.parse(JSON.stringify(item)).selfUser
this.roleForm = JSON.parse(JSON.stringify(item)).roleList
// this.ch_pageData.comityFileNum = this.fileTextList
})
},
// 退
handleSubmitNo() {
if (this.textarea === '') {
this.$message.warning('请输入审批意见')
} else {
let json = {
member: this.selfUser,
passFlag: '0',
roleList: this.roleForm,
commentText: this.textarea,
ch_pageData: this.ch_pageData,
}
this.$refs['ch_pageData'].validate((valid) => {
if (valid) {
this.isBack = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('退回成功')
this.$router.push("/processCenter");
}
this.isBack = false
});
}
})
}
},
//
handleSubmit() {
let json = {
member: this.selfUser,
passFlag: '1',
engineerSum: this.roleForm.startUser,
roleList: this.roleForm,
commentText: this.textarea,
ch_pageData: this.ch_pageData,
}
this.$refs['ch_pageData'].validate((valid) => {
if (valid) {
this.isSubmit = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('提交成功')
this.$router.push("/processCenter");
}
this.isSubmit = false
});
}
})
},
/** 点击对应附件进行下载*/
previews(val) {
let attId = val
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
},
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/phone';
.phoneBzchStep4 {
.prc-content-border {
overflow: auto;
}
/deep/.prc-content-border .el-form-item__content {
width: 270px;
}
.headerTabs {
height: 52px;
display: flex;
align-items: center;
position: absolute;
top: 52px;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
height: 30px;
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
.content {
border-top: 1px solid #DCDFE6;
display: flex;
flex-direction: column;
justify-content: space-between;
margin-top: 52px;
height: calc(~'100% - 155px');
overflow: auto;
.tableTitle {
margin-bottom: 10px;
height: 30px;
line-height: 30px;
position: relative;
font-size: 13px;
font-weight: bold;
.tableButton {
position: absolute;
right: 0;
top: 0;
}
}
}
.content-center {
padding: 10px 0px 10px 10px;
}
.content_form {
padding-top: 15px;
padding-left: 30px;
.el-divider--horizontal {
margin-top: 0px;
}
/deep/ .el-input.is-disabled .el-input__inner {
background-color: #fff;
}
/deep/ .el-table__body-wrapper {
height: auto !important;
}
.meeting_table {
/deep/ .el-input__inner {
text-align: center;
}
}
/deep/ .el-textarea__inner {
font-family: inherit;
}
/deep/ .el-upload {
display: unset;
}
/deep/ .el-upload-list__item-status-label {
font-size: 0;
}
/deep/ .el-upload-list__item {
.el-icon-close {
font-size: 0;
}
.el-icon-close-tip {
font-size: 0;
}
}
/deep/ .el-table th {
padding: 0px;
}
}
}
</style>

Some files were not shown because too many files have changed in this diff Show More