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" "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": { "commander": {
"version": "2.20.3", "version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "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", "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.22.4.tgz",
"integrity": "sha512-XLI5s0AdqMP2Lf4I4CmdmOq8kjb5DDFGR77wAuxCfpEuYSfhTRyyx6MetgZMiL6Lxa0DasjBOiOcciU3NkL3/Q==" "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": { "vue-router": {
"version": "3.4.0", "version": "3.4.0",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.4.0.tgz", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.4.0.tgz",
+6 -4
View File
@@ -1,6 +1,8 @@
<!DOCTYPE html> <!DOCTYPE html>
<html style="height: 100%"> <html style="height: 100%">
<head id="vue"> <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 http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" <meta name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui"/> 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"/> <meta name="mobile-web-app-capable" content="yes"/>
<title>在线编辑</title> <title>在线编辑</title>
<!-- 此处配置onlyOffice地址 --> <!-- 此处配置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 src="js/vue.min.js"></script>-->
<!-- <script type="text/javascript" src="http://172.20.10.5/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>-->
@@ -36,7 +38,7 @@
var filePath = GetQueryValue('filePath') var filePath = GetQueryValue('filePath')
var fileName = GetQueryValue('fileName') var fileName = GetQueryValue('fileName')
var fileUrl = GetQueryValue('fileUrl') var fileUrl = GetQueryValue('fileUrl')
var standNo = GetQueryValue('standNo') var oldFileName = GetQueryValue('oldFileName')
var key = GetQueryValue('key') var key = GetQueryValue('key')
// var attId = GetQueryValue('attId') // var attId = GetQueryValue('attId')
var fileSuffix = GetQueryValue('fileType') var fileSuffix = GetQueryValue('fileType')
@@ -100,7 +102,7 @@
"download":true,//是否可以下载 "download":true,//是否可以下载
"print":true //是否可以打印 "print":true //是否可以打印
}, },
"fileType": 'pptx', "fileType": fileSuffix,
"key": key, "key": key,
"title": oldFileName, "title": oldFileName,
"url": fileUrl "url": fileUrl
@@ -108,7 +110,7 @@
"documentType": documentType, // 文档类word-text、表格类excel-spreadsheet、ppt类-presentation "documentType": documentType, // 文档类word-text、表格类excel-spreadsheet、ppt类-presentation
"editorConfig": { "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", "mode":"edit",
"lang":"zh-CN", "lang":"zh-CN",
// "customization": { // "customization": {
+5 -4
View File
@@ -1,6 +1,7 @@
<!DOCTYPE html> <!DOCTYPE html>
<html style="height: 100%"> <html style="height: 100%">
<head id="vue"> <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 http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" <meta name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui"/> 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"/> <meta name="mobile-web-app-capable" content="yes"/>
<title>在线预览</title> <title>在线预览</title>
<!-- 此处配置onlyOffice地址 --> <!-- 此处配置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>--> <!-- <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 fileName = GetQueryValue('fileName')
var filePath = GetQueryValue('filePath') var filePath = GetQueryValue('filePath')
var fileUrl = GetQueryValue('fileUrl') var fileUrl = GetQueryValue('fileUrl')
var standNo = GetQueryValue('standNo') var oldFileName = GetQueryValue('oldFileName')
var key = GetQueryValue('key') var key = GetQueryValue('key')
// var attId = GetQueryValue('attId') // var attId = GetQueryValue('attId')
var fileSuffix = GetQueryValue('fileType') var fileSuffix = GetQueryValue('fileType')
@@ -100,13 +101,13 @@
}, },
"fileType": fileSuffix, "fileType": fileSuffix,
"key": key, "key": key,
"title": fileName, "title": oldFileName,
"url": fileUrl "url": fileUrl
}, },
"documentType": documentType, "documentType": documentType,
"editorConfig": { "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", "mode":"edit",
"lang":"zh-CN", "lang":"zh-CN",
// "customization": { // "customization": {
+45 -22
View File
@@ -6648,19 +6648,41 @@ var PDFPageView = function () {
var defaultSettings = { var defaultSettings = {
watermark_txt: msg, watermark_txt: msg,
watermark_x: 50,//水印起始位置x轴坐标 watermark_x: 50,//水印起始位置x轴坐标
watermark_y: 0,//水印起始位置Y轴坐标 watermark_y: -100,//水印起始位置Y轴坐标
watermark_rows: 7,//水印行数 watermark_rows: 13,//水印行数
watermark_cols: 5,//水印列数 watermark_cols: 7,//水印列数
watermark_x_space: 80,//水印x轴间隔 watermark_x_space: 18,//水印x轴间隔
watermark_y_space: 120,//水印y轴间隔 watermark_y_space: 20,//水印y轴间隔
watermark_color: 'rgba(192, 192, 192)',//水印字体颜色 watermark_color: 'rgba(192, 192, 192)',//水印字体颜色
watermark_alpha: 0.3,//水印透明度 watermark_alpha: 0.3,//水印透明度
watermark_fontsize: '30px',//水印字体大小 watermark_fontsize: '40px',//水印字体大小
watermark_font: '微软雅黑',//水印字体 watermark_font: '微软雅黑',//水印字体
watermark_width: 120,//水印宽度 watermark_width: 120,//水印宽度
watermark_height: 80,//水印长度 watermark_height: 80,//水印长度
watermark_angle: 40//水印倾斜度数 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(); var oTemp = document.createDocumentFragment();
//获取页面最大宽度 //获取页面最大宽度
@@ -6670,23 +6692,24 @@ var PDFPageView = function () {
//获取页面最大长度 //获取页面最大长度
var page_height = Math.max(document.body.scrollHeight, document.body.clientHeight+350); var page_height = Math.max(document.body.scrollHeight, document.body.clientHeight+350);
var pdf_page =document.getElementById("viewer"); var pdf_page =document.getElementById("viewer");
//2021/12/5 分辨率不同的情况会出现问题
//如果将水印列数设置为0,或水印列数设置过大,超过页面最大宽度,则重新计算水印列数和水印x轴间隔 //如果将水印列数设置为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)) { // 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; // 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("------------------------------------")
console.log(defaultSettings.watermark_cols) // 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)); // 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) // console.log(defaultSettings.watermark_x_space)
} // }
//如果将水印行数设置为0,或水印行数设置过大,超过页面最大长度,则重新计算水印行数和水印y轴间隔 // //如果将水印行数设置为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)) { // 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_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)); // defaultSettings.watermark_y_space = parseInt(((page_height - defaultSettings.watermark_y) - defaultSettings.watermark_height * defaultSettings.watermark_rows) / (defaultSettings.watermark_rows - 1));
console.log("------------------------------------") // console.log("------------------------------------")
console.log(defaultSettings.watermark_rows+10) // console.log(defaultSettings.watermark_rows+10)
console.log(defaultSettings.watermark_y_space) // console.log(defaultSettings.watermark_y_space)
//
} // }
var x; var x;
var y; var y;
for (var i = 0; i < defaultSettings.watermark_rows; i++) { for (var i = 0; i < defaultSettings.watermark_rows; i++) {
@@ -96,7 +96,6 @@
#upload .placeholder .webuploader-pick { #upload .placeholder .webuploader-pick {
font-size: 18px; font-size: 18px;
background: #00b7ee; background: #00b7ee;
3px;
line-height: 44px; line-height: 44px;
padding: 0 30px; padding: 0 30px;
*width: 120px; *width: 120px;
@@ -198,7 +197,6 @@
overflow: hidden; overflow: hidden;
z-index: 50; z-index: 50;
margin: 0; margin: 0;
0;
background: none; background: none;
-webkit-box-shadow: 0 0 0; -webkit-box-shadow: 0 0 0;
} }
@@ -317,7 +315,6 @@
height: 113px; height: 113px;
background: url(./images/image.png) no-repeat center 12px; background: url(./images/image.png) no-repeat center 12px;
border: 1px solid #eeeeee; border: 1px solid #eeeeee;
0;
} }
#upload .filelist li.filePickerBlock div.webuploader-pick { #upload .filelist li.filePickerBlock div.webuploader-pick {
width: 100%; width: 100%;
@@ -447,7 +444,6 @@
color: #565656; color: #565656;
padding: 0 18px; padding: 0 18px;
display: inline-block; display: inline-block;
3px;
margin-left: 10px; margin-left: 10px;
cursor: pointer; cursor: pointer;
font-size: 14px; 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 全局公共样式*/ /*liuyan 全局公共样式*/
@import './style'; @import './style';
@import './mixins'; @import './mixins';
// 移动端公共样式
@import './phone';
// 左侧菜单样式 // 左侧菜单样式
@import './navMenu'; @import './navMenu';
// tree组件父组件内样式 // 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} a,ins,s,u,del{text-decoration:none}
sup,sub{vertical-align:baseline} sup,sub{vertical-align:baseline}
html {width:100%;height: 100%;font-size: 50px;-webkit-tap-highlight-color: transparent;} 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;} hr {height: .02rem;margin: .1rem 0;border: medium none;border-top: .02rem solid #cacaca;}
a {text-decoration: none;} a {text-decoration: none;}
/*意见反馈页面富文本表格宽度*/ /*意见反馈页面富文本表格宽度*/
+6 -8
View File
@@ -38,7 +38,6 @@
class="form-upload-btn" class="form-upload-btn"
> >
<!-- {{ (value === 'null' || value === '' || value == null) && (!processModel || (processModel && !disabled)) ? '点击上传' : '查看已上传的文件' }}--> <!-- {{ (value === 'null' || value === '' || value == null) && (!processModel || (processModel && !disabled)) ? '点击上传' : '查看已上传的文件' }}-->
上传
</el-button> </el-button>
</template> </template>
<el-dialog <el-dialog
@@ -347,7 +346,12 @@ export default {
handlePreview(file) { handlePreview(file) {
const attId = file.response.data.id const attId = file.response.data.id
if (this.preview) { if (this.preview) {
if (attId) {
window.location.href = '/api/att/attFile/downloadFileForSar?fileId=' + attId
} else {
this.$message.warning('文件不存在,下载失败')
}
} else {
this.getBusStandFileByAttId(attId) this.getBusStandFileByAttId(attId)
.then(res => { .then(res => {
console.log(res) console.log(res)
@@ -381,12 +385,6 @@ export default {
console.log(e) console.log(e)
this.$message.warning('文件不存在,预览失败') this.$message.warning('文件不存在,预览失败')
}) })
} else {
if (attId) {
window.location.href = '/api/att/attFile/downloadFileForSar?fileId=' + attId
} else {
this.$message.warning('文件不存在,下载失败')
}
} }
}, },
@@ -16,6 +16,7 @@
multiple multiple
@change="handleChange" @change="handleChange"
> >
<!-- <el-option value="全选" label="全选" @click.native="clickOption"></el-option>-->
<el-option <el-option
v-for="opt in options" v-for="opt in options"
:key="opt.value" :key="opt.value"
@@ -73,6 +74,7 @@ export default {
handleChange (event) { handleChange (event) {
// const value = event.target.value // const value = event.target.value
this.$emit('input', event) this.$emit('input', event)
} }
}, },
watch: { watch: {
File diff suppressed because it is too large Load Diff
+57 -382
View File
@@ -1,393 +1,68 @@
<!-- 配置管理 - 链接管理 --> <!-- 配置管理 - 链接管理 -->
<template> <template>
<div id="post-manage"> <div class="data-link">
<!-- 头部操作按钮--> <el-tabs v-model="activeName">
<div class="action-bar"> <el-tab-pane label="第一行链接" name="firstLink">
<el-button type="primary" <first-link v-if="activeName === 'firstLink'"></first-link>
class="common-button-primary add-button" </el-tab-pane>
@click="addLink" <el-tab-pane label="第二行链接" name="secondLink">
v-btn-permission="'980cb239683de9e29ee5335cec98e5b4'" <second-link v-if="activeName === 'secondLink'"></second-link>
size="mini">新增</el-button> </el-tab-pane>
<!-- <el-button type="primary"--> </el-tabs>
<!-- class="common-button-primary add-button"--> </div>
<!-- @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>
</template> </template>
<script> <script>
import Sortable from 'sortablejs' import firstLink from "./linkType/firstLink";
export default { import secondLink from "./linkType/secondLink";
name: "linkManage", export default {
data () { name: "linkManage",
return { components: {
editId: '', firstLink,
type: '', // 1为新增 2为编辑 secondLink
dialogTitle: '', },
submitLoading: false, data() {
// 向后台传参使用 return {
data: [], activeName: 'firstLink',
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();
}
} }
},
methods: {
},
}
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@import '~@/assets/styles/mixins'; @import '~@/assets/styles/mixins';
#post-manage { .data-link{
height: 100%; height: 100%;
.content { padding: 0 10px;
height: calc(~'100% - 53px') background: #fff;
} display: flex;
.filter-tree { flex-direction: column;
height: calc(~'100% - 50px')
} /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> </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 < 1 && fit.length < 1" >暂无评估结果</el-divider>
<!-- 不满足--> <!-- 不满足-->
<el-divider content-position="left" v-if="unfit.length" >不满足</el-divider> <el-divider content-position="left" v-if="unfit.length" >不满足</el-divider>
<div class="content">
<el-table <el-table
height="100%"
ref="selection" ref="selection"
v-if="unfit.length" v-if="unfit.length"
:data="unfit" :data="unfit"
tooltip-effect="dark" tooltip-effect="dark"
border 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', :header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"> fontWeight: 'bold', height: '48px'}">
<el-table-column <el-table-column
@@ -60,19 +58,16 @@
</el-table> </el-table>
<!-- <pagination :page="page" :total="total" @pageChange="pageChange"--> <!-- <pagination :page="page" :total="total" @pageChange="pageChange"-->
<!-- @pageSizeChange="pageSizeChange"></pagination>--> <!-- @pageSizeChange="pageSizeChange"></pagination>-->
</div>
<!--满足--> <!--满足-->
<el-divider content-position="left" v-if="fit.length">满足</el-divider> <el-divider content-position="left" v-if="fit.length">满足</el-divider>
<div class="content">
<el-table <el-table
height="100%"
ref="selection" ref="selection"
v-if="fit.length" v-if="fit.length"
:data="fit" :data="fit"
tooltip-effect="dark" tooltip-effect="dark"
border 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', :header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"> fontWeight: 'bold', height: '48px'}">
<el-table-column <el-table-column
@@ -103,7 +98,6 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div>
<!-- <pagination :page="page" :total="total" @pageChange="pageChange"--> <!-- <pagination :page="page" :total="total" @pageChange="pageChange"-->
<!-- @pageSizeChange="pageSizeChange"></pagination>--> <!-- @pageSizeChange="pageSizeChange"></pagination>-->
<loading :loading="loading">加载中...</loading> <loading :loading="loading">加载中...</loading>
@@ -170,12 +164,5 @@ export default {
//width: 1200px; //width: 1200px;
//margin: 0 auto; //margin: 0 auto;
height: 100%; height: 100%;
.content{
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'50% - 30px');
overflow: auto;
}
} }
</style> </style>
@@ -22,6 +22,85 @@
style="border-top:none;position: absolute;right: 36px;"> style="border-top:none;position: absolute;right: 36px;">
<div class="modular-header" style="height: 50px;"> <div class="modular-header" style="height: 50px;">
<div class="modular-header-btn"> <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-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 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> <el-button class="relation-btn" icon="icon-relation" @click="relateEvent()">更新记录</el-button>
@@ -987,6 +1066,26 @@ export default {
}, },
data () { data () {
return { return {
indexType: 'dynamic',
commentReason: '', // 评价理由
commentReason1: '', // 评价理由
commentReason2: '', // 评价理由
commentReason3: '', // 评价理由
commentReason4: '', // 评价理由
commentSubmitLoading: false,
targetScore: '', // 指标分值
targetScore1: '',
targetScore2: '',
targetScore3: '',
targetScore4: '',
businessCommentDialog: false,
businessCommentForm: {
averageScore: '', // 平均分值
revise: '',
reviseReason: '', // 修订理由
},
businessCommentTable: [],
commentTarget: '', // 评价指标
activeNames: ['基础信息','过程稿件','实施日期'], activeNames: ['基础信息','过程稿件','实施日期'],
activeState: true, activeState: true,
visiblePlanCheck: false, visiblePlanCheck: false,
@@ -1194,6 +1293,101 @@ export default {
watch: { watch: {
}, },
methods: { 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){ child1Func(child1){
const list = [] const list = []
if(child1 && child1.length > 1){ if(child1 && child1.length > 1){
@@ -2189,6 +2383,14 @@ export default {
// } // }
}, },
async mounted () { 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.sarStandardsInfoEO.id = this.$route.params.id
this.getOrgTreeSource() this.getOrgTreeSource()
this.standItemEO.standId = this.$route.params.id this.standItemEO.standId = this.$route.params.id
@@ -3,7 +3,10 @@
<div class="other-standard-details v-class" :class="{'hidden': !isMoreAwayBtn}"> <div class="other-standard-details v-class" :class="{'hidden': !isMoreAwayBtn}">
<!--title 标题--> <!--title 标题-->
<div class="details-header"> <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.standNumber
}}-{{ sarStandardsInfoEO.standYear }} {{ sarStandardsInfoEO.standName }}</span> }}-{{ sarStandardsInfoEO.standYear }} {{ sarStandardsInfoEO.standName }}</span>
</div> </div>
@@ -46,7 +49,7 @@
<div class="details-content-modular basic-information" style="border-top:none"> <div class="details-content-modular basic-information" style="border-top:none">
<div class="basic-information-content"> <div class="basic-information-content">
<!-- <p><label style=" margin-right: 150px;">标准类别</label><span>{{ sarStandardsInfoEO.standSort || '-' }}</span></p>--> <!-- <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> <label style=" margin-right: 164px;">标准号</label>
<span v-if="sarStandardsInfoEO.standYear">{{ <span v-if="sarStandardsInfoEO.standYear">{{
sarStandardsInfoEO.standSortShow + ' ' + sarStandardsInfoEO.standNumber + '-' + sarStandardsInfoEO.standYear sarStandardsInfoEO.standSortShow + ' ' + sarStandardsInfoEO.standNumber + '-' + sarStandardsInfoEO.standYear
@@ -106,7 +109,7 @@
<label style=" margin-right: 150px;" <label style=" margin-right: 150px;"
title="“计划修订”、“修订中”均为现行有效版本;“已修订”标准的有效性根据实际实施情况判定。" title="“计划修订”、“修订中”均为现行有效版本;“已修订”标准的有效性根据实际实施情况判定。"
>文本状态</label> >文本状态</label>
<span style="color: #409EFF;">{{ textStatusMap[sarStandardsInfoEO.textStatus] || '-' }}</span> <span>{{ textStatusMap[sarStandardsInfoEO.textStatus] || '-' }}</span>
</p> </p>
<p class="half"><label style=" margin-right: 150px;">发布日期</label><span>{{ <p class="half"><label style=" margin-right: 150px;">发布日期</label><span>{{
sarStandardsInfoEO.issueTime || '-' sarStandardsInfoEO.issueTime || '-'
@@ -3599,13 +3602,14 @@ export default {
} }
& > div:not(.modular-item-more) { & > div:not(.modular-item-more) {
/*border-bottom: 1px solid #E5E5E5;*/ //英文名称变粗
border-bottom: 1px solid #E5E5E5;
min-height: 43px; min-height: 43px;
line-height: 43px; line-height: 43px;
.modular-content-p-name { .modular-content-p-name {
display: inline-block; display: inline-block;
width: 220px; width: 213px;
height: 43px; height: 43px;
line-height: 43px; line-height: 43px;
font-size: 16px; font-size: 16px;
@@ -3619,10 +3623,10 @@ export default {
.modular-content-p-val { .modular-content-p-val {
display: inline-block; display: inline-block;
width: calc(~'100% - 225px'); width: calc(~'100% - 225px');
min-height: 50px; //min-height: 50px;
line-height: 50px; //line-height: 50px;
font-size: 16px; //font-size: 16px;
color: #999999; //color: #999999;
word-break: break-all; word-break: break-all;
//overflow: hidden; //overflow: hidden;
//white-space: nowrap; //white-space: nowrap;
@@ -3636,9 +3640,10 @@ export default {
& > .files-title { & > .files-title {
width: calc(~'100% - 120px'); width: calc(~'100% - 120px');
min-height: 50px; //报批稿撑开
line-height: 50px; //min-height: 50px;
font-size: 16px; //line-height: 50px;
//font-size: 16px;
color: #409EFF; color: #409EFF;
& > a { & > a {
@@ -3668,7 +3673,8 @@ export default {
.decomposition-btn { .decomposition-btn {
position: absolute; position: absolute;
top: 10px; //报批稿撑开
//top: 10px;
right: 0; right: 0;
padding: 0 10px; padding: 0 10px;
height: 30px; height: 30px;
+6 -6
View File
@@ -3,7 +3,7 @@
<div> <div>
<div v-if="label" class="icon-style"> <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 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 }} {{ label }}
</span> </span>
</span> </span>
@@ -67,7 +67,7 @@
<style lang="less" scoped> <style lang="less" scoped>
.wx-card { .wx-card {
line-height: 70px; line-height: 50px;
text-align: center; text-align: center;
background: #fff; background: #fff;
display: flex; display: flex;
@@ -79,7 +79,7 @@
& > div { & > div {
border-radius: 5px; border-radius: 5px;
width: 100%; width: 100%;
height: 70px; height: 50px;
color: #fff; color: #fff;
background-color: #4788c0; background-color: #4788c0;
} }
@@ -91,7 +91,7 @@
} }
} }
.wx-card1 { .wx-card1 {
line-height: 70px; line-height: 50px;
text-align: center; text-align: center;
background: #fff; background: #fff;
display: flex; display: flex;
@@ -102,7 +102,7 @@
padding-left: 10px; padding-left: 10px;
& > div { & > div {
width: 100%; width: 100%;
height: 70px; height: 50px;
background: #fff; background: #fff;
border: 2px dashed #E4E4E4; border: 2px dashed #E4E4E4;
border-radius: 5px; border-radius: 5px;
@@ -119,7 +119,7 @@
display: flex; display: flex;
align-items: center; align-items: center;
.el-icon-circle-plus-outline { .el-icon-circle-plus-outline {
font-size: 50px; font-size: 40px;
color: #E4E4E4; color: #E4E4E4;
} }
} }
+219 -189
View File
@@ -1,202 +1,232 @@
<!-- 尾部链接 --> <!-- 尾部链接 -->
<template> <template>
<div class="link" id="link"> <div class="link" id="link">
<!-- 此部分暂时这样写到后面做修改 --> <!-- 此部分暂时这样写到后面做修改 -->
<div style="display: inline-block;width: 15%;"> <div style="display: inline-block;width: 15%;">
<span class="title borderRight">友情链接</span> <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> </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> </template>
<script> <script>
export default { import {getImg} from '@/api/linkApi.js'
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
})
}
},
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> </script>
<style lang="less" scoped> <style lang="less" scoped>
.link { .link {
margin-right: 10px; background-color: #fff;
display: flex; margin-right: 10px;
border-radius: 3px; display: flex;
height: 100%; border-radius: 3px;
align-items: center; height: 100%;
box-shadow: 1px 1px 10px rgba(0,0,0,0.1); align-items: center;
.borderRight { box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1);
//padding-right: 50px;
//margin-right: 50px; .borderRight {
border-right: 2px dotted #aaa; //padding-right: 50px;
} //margin-right: 50px;
.borderLeft { border-right: 2px dotted #aaa;
margin-right: 50px; }
//padding-left: 50px;
//margin-left: 50px; .borderLeft {
border-left: 2px dotted #aaa; margin-right: 50px;
} //padding-left: 50px;
.borderMiddle { //margin-left: 50px;
border-left: 2px dotted #aaa; border-left: 2px dotted #aaa;
} }
.title {
padding-right: 40px; .borderMiddle {
font-weight: bold; border-left: 2px dotted #aaa;
padding-left: 40px; }
width: 80px;
} .title {
.myLi1 { font-size: 15px;
cursor: pointer; padding-right: 40px;
color: #0068B7; font-weight: bold;
} padding-left: 40px;
.el-col-4 { width: 80px;
white-space: nowrap; }
text-overflow: ellipsis;
overflow: hidden; .myLi1 {
word-break: break-all; font-size: 15px;
line-height: normal; cursor: pointer;
margin-top: 10px; color: #0068B7;
font-size: 5px; }
}
} .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> </style>
+3 -3
View File
@@ -77,7 +77,7 @@
height: 40px; height: 40px;
line-height: 40px; line-height: 40px;
background: #fff; background: #fff;
font-size: 14px; font-size: 15px;
border-radius: 10px; border-radius: 10px;
} }
.menu-wrap { .menu-wrap {
@@ -92,11 +92,11 @@
margin-bottom: 0; margin-bottom: 0;
} }
.wx-card { .wx-card {
height: 70px; height: 50px;
width: 33.333333%; width: 33.333333%;
} }
.wx-card1 { .wx-card1 {
height: 70px; height: 50px;
width: 33.333333%; width: 33.333333%;
} }
.menu-item { .menu-item {
+7 -1
View File
@@ -21,7 +21,7 @@
label="序号" label="序号"
type="index" type="index"
align="center" align="center"
width="50"> width="55">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="standName" prop="standName"
@@ -98,6 +98,12 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
.release { .release {
/deep/.el-table th > .cell {
font-size: 15px;
}
/deep/.el-table td > .cell{
font-size: 13px;
}
width: 100%; width: 100%;
.time-title { .time-title {
margin: 15px; margin: 15px;
@@ -22,8 +22,8 @@
placeholder="请输入关键词" placeholder="请输入关键词"
clearable clearable
></el-input> ></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;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;" 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="seniorSearch">高级检索</el-button>
</div> </div>
</div> </div>
</template> </template>
@@ -106,7 +106,7 @@ export default {
width: 18vm; width: 18vm;
height: 40px; height: 40px;
color: #333333; color: #333333;
font-size: 14px; font-size: 15px;
border: 0; border: 0;
border-radius: 3px; border-radius: 3px;
background-color: #FFFFFF; background-color: #FFFFFF;
@@ -21,7 +21,7 @@
label="序号" label="序号"
type="index" type="index"
align="center" align="center"
width="50"> width="55">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="cid" prop="cid"
@@ -91,6 +91,12 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
.solicitopinions { .solicitopinions {
/deep/.el-table th > .cell {
font-size: 15px;
}
/deep/.el-table td > .cell{
font-size: 13px;
}
height: 100%; height: 100%;
width: 100%; width: 100%;
.time-title { .time-title {
+17 -4
View File
@@ -10,7 +10,8 @@
<ul> <ul>
<li v-for="item in toDoTaskList" :key="item.id" class="time-title"> <li v-for="item in toDoTaskList" :key="item.id" class="time-title">
<div style="height: 30px"> <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> </div>
</li> </li>
</ul> </ul>
@@ -614,7 +615,7 @@ export default {
break break
//项目清单确认流程 //项目清单确认流程
case '10' : case '10' :
if(row.taskInfo === '确认人确认'){ if(row.taskInfo === '产品工程经理分发清单'){
this.$router.push({ this.$router.push({
name: 'xmqdqrStep2', name: 'xmqdqrStep2',
query: { query: {
@@ -625,7 +626,7 @@ export default {
prcType: row.prcType prcType: row.prcType
} }
}) })
} else if (row.taskInfo === '标准法规部经理审批') { } else if (row.taskInfo === '确认人确认') {
this.$router.push({ this.$router.push({
name: 'xmqdqrStep3', name: 'xmqdqrStep3',
query: { query: {
@@ -636,6 +637,17 @@ export default {
prcType: row.prcType 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 break
case '14': case '14':
@@ -1284,9 +1296,10 @@ export default {
display: inline-block; display: inline-block;
margin: 15px; margin: 15px;
color: #333333; color: #333333;
font-size: 14px; font-size: 15px;
} }
.more { .more {
font-size: 15px;
float: right; float: right;
color: #4788c0; color: #4788c0;
margin: 15px 15px; margin: 15px 15px;
+3 -5
View File
@@ -29,9 +29,7 @@
</div> </div>
</div> </div>
<div calss="home_footer" style="padding: 0"> <div calss="home_footer" style="padding: 0">
<el-card class="footer">
<Empennage></Empennage> <Empennage></Empennage>
</el-card>
</div> </div>
</div> </div>
</template> </template>
@@ -142,7 +140,7 @@ export default {
} }
::v-deep { ::v-deep {
.el-tabs__item { .el-tabs__item {
font-size: 14px; font-size: 15px;
font-weight: 600; font-weight: 600;
/*color: #333333;*/ /*color: #333333;*/
} }
@@ -172,7 +170,7 @@ export default {
.right_wrapper { .right_wrapper {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
width: 37vw; width: 30vw;
height: 100%; height: 100%;
} }
.search-condition { .search-condition {
@@ -185,7 +183,7 @@ export default {
/deep/.el-card__body { /deep/.el-card__body {
padding: 0; padding: 0;
} }
.footer { .home_footer {
height: 70px; height: 70px;
line-height: 33px; line-height: 33px;
//margin-top: 0.3vh; //margin-top: 0.3vh;
+14 -3
View File
@@ -50,6 +50,7 @@
<el-table-column <el-table-column
prop="showNumber" prop="showNumber"
label="标准号/政策号" label="标准号/政策号"
width="150"
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<a class="table-jump" <a class="table-jump"
@@ -59,6 +60,7 @@
<el-table-column <el-table-column
prop="standName" prop="standName"
label="标准名称/政策名称" label="标准名称/政策名称"
width="300"
show-overflow-tooltip show-overflow-tooltip
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
@@ -69,6 +71,7 @@
<el-table-column <el-table-column
prop="fileTypeShow" prop="fileTypeShow"
label="文本状态" label="文本状态"
width="110"
align="center"> align="center">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@@ -80,6 +83,7 @@
<el-table-column <el-table-column
prop="splitStatus" prop="splitStatus"
label="拆分状态" label="拆分状态"
width="120"
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.splitStatus == '0'">编辑中</span> <span v-if="scope.row.splitStatus == '0'">编辑中</span>
@@ -92,6 +96,7 @@
<el-table-column <el-table-column
prop="creationTime" prop="creationTime"
label="拆分时间" label="拆分时间"
width="120"
sortable sortable
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
@@ -108,15 +113,21 @@
<el-tag type="danger" size="small" v-else>失败</el-tag> <el-tag type="danger" size="small" v-else>失败</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="50"> <el-table-column label="操作" align="center" width="80">
<template slot-scope="scope"> <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> <i class="iconfont">&#xe61e;</i>
<el-dropdown-menu slot="dropdown"> <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="'17ba4598eb411d6feed468a2e446a301'">查看</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '删除']" v-btn-permission="'10ba28487876990927f653a66e1eeb98'">删除</el-dropdown-item> <el-dropdown-item :command="[scope.row, '删除']" v-btn-permission="'10ba28487876990927f653a66e1eeb98'">删除</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>-->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
+43 -10
View File
@@ -153,24 +153,24 @@
<a @click="handlePreview(scope.row)">{{ scope.row.itemsName }}</a> <a @click="handlePreview(scope.row)">{{ scope.row.itemsName }}</a>
</template> </template>
</el-table-column> </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"> <template slot-scope="scope">
<span>{{ scope.row.putTime ? scope.row.putTime.substring(0, 10) : '' }}</span> <span>{{ scope.row.putTime ? scope.row.putTime.substring(0, 10) : '' }}</span>
</template> </template>
</el-table-column> </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"> <template slot-scope="scope">
<span>{{ scope.row.ssrq ? scope.row.ssrq.substring(0,10) : '' }}</span> <span>{{ scope.row.ssrq }}</span>
</template> </template>
</el-table-column> </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"> <template slot-scope="scope">
<span>{{ scope.row.xcxssrq ? scope.row.xcxssrq.substring(0,10) : '' }}</span> <span>{{ scope.row.xcxssrq }}</span>
</template> </template>
</el-table-column> </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"> <template slot-scope="scope">
<span>{{ scope.row.zccssrq ? scope.row.zccssrq.substring(0,10) : '' }}</span> <span>{{ scope.row.zccssrq }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="applyType" label="适用车型" align="center"> <el-table-column prop="applyType" label="适用车型" align="center">
@@ -440,6 +440,7 @@ export default {
_this: this, _this: this,
}, res => { }, res => {
console.log('608',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++) { for (let a = 0; a < res.data.records.length; a++) {
if (res.data.records[a].applyType !== null) { 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.warningTableDatas = res.data.records
this.pageConfig.page = res.data.current this.pageConfig.page = res.data.current
if ((this.warningTableDatas.length === 0 || this.warningTableDatas === []) && this.pageConfig.page !== 1) { if ((this.warningTableDatas.length === 0 || this.warningTableDatas === []) && this.pageConfig.page !== 1) {
@@ -641,7 +662,20 @@ export default {
}, { }, {
_this: this _this: this
}, res => { }, 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.warningTableDatas = res.data.records
this.pageConfig.page = res.data.current this.pageConfig.page = res.data.current
this.pageConfig.pageSize = res.data.size this.pageConfig.pageSize = res.data.size
@@ -650,9 +684,8 @@ export default {
this.warningTableLoading = false this.warningTableLoading = false
}, e => { }, 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: "政策入库流程", label: "政策入库流程",
value: "laws1" value: "laws1"
}, },
{
label: "企标制修订流程及企业标准库流程",
value: "buss1"
},
{ {
label: "标准征求意见流程", label: "标准征求意见流程",
value: "3" 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-form class="label-input-form" ref="rh_pageData" :model="rh_pageData" :rules="rh_rules" label-width="150px">
<el-row> <el-row>
<el-col :span="8"> <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 <el-select
v-model="rh_pageData.comityName" v-model="rh_pageData.comityName"
placeholder="请选择标委会"> placeholder="请选择标委会">
@@ -31,7 +31,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <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 <el-select
v-model="rh_pageData.comityNameOne" v-model="rh_pageData.comityNameOne"
placeholder="请选择分标委"> placeholder="请选择分标委">
@@ -44,7 +44,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <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 <el-select
v-model="rh_pageData.comityNameTwo" v-model="rh_pageData.comityNameTwo"
placeholder="请选择工作组"> placeholder="请选择工作组">
@@ -59,7 +59,7 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <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 <el-select
v-model="rh_pageData.comityRole" v-model="rh_pageData.comityRole"
placeholder="请选择会员角色"> placeholder="请选择会员角色">
@@ -67,12 +67,12 @@
v-for="item in comityRoleOptions" v-for="item in comityRoleOptions"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value"/> :value="item.label"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <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 <el-select
v-model="rh_pageData.comityState" v-model="rh_pageData.comityState"
placeholder="选择协会状态"> placeholder="选择协会状态">
@@ -80,12 +80,12 @@
v-for="item in comityStateOptions" v-for="item in comityStateOptions"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value"/> :value="item.label"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <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 <el-select
v-model="rh_pageData.comityKind" v-model="rh_pageData.comityKind"
placeholder="请选择入会性质"> placeholder="请选择入会性质">
@@ -93,12 +93,12 @@
v-for="item in comityKindOptions" v-for="item in comityKindOptions"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value"/> :value="item.label"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-form-item class="add-form-item" label="信息来源:" prop="infoSources"> <el-form-item class="add-form-item" label="信息来源:" prop="infoSources">
<el-upload <el-upload
style="width: 30%" style="width: 30%"
class="upload_style" class="upload_style"
@@ -122,7 +122,7 @@
</el-button> </el-button>
</el-upload> </el-upload>
</el-form-item> </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 <el-form
class="make_form" class="make_form"
ref="rh_pageData.comityMake" ref="rh_pageData.comityMake"
@@ -130,40 +130,40 @@
label-width="auto"> label-width="auto">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="资质:"> <el-form-item class="add-form-item" label="资质:">
<el-input <el-input
v-model="rh_pageData.comityMake.makeQualification" placeholder="请填写资质"/> v-model="rh_pageData.comityMake.makeQualification" placeholder="请填写资质"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <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-input v-model="rh_pageData.comityMake.makeRole" placeholder="请填写成员"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <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-input v-model="rh_pageData.comityMake.makeCost" placeholder="请填写费用估计"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <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-input v-model="rh_pageData.comityMake.makeDuties" placeholder="请填写职责"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <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-input v-model="rh_pageData.comityMake.makeTime" placeholder="请填写任期"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
</el-form-item> </el-form-item>
<el-form-item class="add-form-item" label="工作方向:" prop="workPath"> <el-form-item class="add-form-item" label="工作方向:" prop="workPath">
<el-input v-model="rh_pageData.workPath" type="textarea"/> <el-input v-model="rh_pageData.workPath" type="textarea" placeholder="请填写工作方向"/>
</el-form-item> </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"> <div class="comityTel_btn">
<el-button <el-button
type="primary" type="primary"
@@ -196,7 +196,7 @@
align="center" align="center"
label="联络人"> label="联络人">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.tel_name"/> <el-input v-model="scope.row.tel_name" placeholder="请填写联络人"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@@ -204,7 +204,7 @@
align="center" align="center"
label="单位"> label="单位">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.tel_unit"/> <el-input v-model="scope.row.tel_unit" placeholder="请填写单位"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@@ -212,7 +212,7 @@
align="center" align="center"
label="电话"> label="电话">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.tel_phone"/> <el-input v-model="scope.row.tel_phone" placeholder="请填写单位"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@@ -220,7 +220,7 @@
align="center" align="center"
label="邮箱"> label="邮箱">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.tel_mail"/> <el-input v-model="scope.row.tel_mail" placeholder="请填写邮箱"/>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@@ -228,6 +228,19 @@
</el-form> </el-form>
</div> </div>
</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 === '2'"> <div class="content" v-show="active === '2'">
<div class="block" style="padding-top: 20px;"> <div class="block" style="padding-top: 20px;">
@@ -302,7 +315,7 @@
<h4>标准法规部主管领导</h4> <h4>标准法规部主管领导</h4>
<div style="margin-top: 10px;width: 300px;"> <div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.leaderUserId" style="display: none;"></el-input> <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> </el-input>
</div> </div>
</el-form-item> </el-form-item>
@@ -469,6 +482,8 @@ export default {
nodeListOne: [], nodeListOne: [],
isSubmit: false, isSubmit: false,
saveLoading: false, saveLoading: false,
commentText: '',
} }
}, },
@@ -530,6 +545,7 @@ export default {
this.fileTextList.splice(index, 1) this.fileTextList.splice(index, 1)
} }
}) })
this.rh_pageData.infoSources = this.fileTextList
}, },
// 文件上传成功 // 文件上传成功
handleOnsuccess(res, file, fileList) { handleOnsuccess(res, file, fileList) {
@@ -547,6 +563,7 @@ export default {
}) })
} }
this.fileListData.fileText = this.newDataList this.fileListData.fileText = this.newDataList
this.rh_pageData.infoSources = this.newDataList
this.$message({ this.$message({
showClose: true, showClose: true,
message: res.message, message: res.message,
@@ -663,7 +680,8 @@ export default {
_formData.append('prcType', '20') _formData.append('prcType', '20')
_formData.append('json', JSON.stringify({ _formData.append('json', JSON.stringify({
roleForm: this.roleForm, roleForm: this.roleForm,
rh_pageData: this.rh_pageData rh_pageData: this.rh_pageData,
commentText: this.commentText
})) }))
saveTaskFirst(_formData).then(res => { saveTaskFirst(_formData).then(res => {
this.saveLoading = false this.saveLoading = false
@@ -680,6 +698,7 @@ export default {
prcCreateUserName: this.$store.getters.userInfo.userName, prcCreateUserName: this.$store.getters.userInfo.userName,
roleList: this.roleForm, roleList: this.roleForm,
rh_pageData: this.rh_pageData, rh_pageData: this.rh_pageData,
commentText: this.commentText,
directorList: this.rh_pageData.comityInRoleId, directorList: this.rh_pageData.comityInRoleId,
} }
this.$refs['rh_pageData'].validate((valid) => { 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-form class="label-input-form" ref="rh_pageData" :model="rh_pageData" label-width="150px" :rules="rh_rules">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="文件编号:" prop="comityFileNum"> <el-form-item class="add-form-item" label="协会名称:">
{{ 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="协会名称:">
{{ rh_pageData.comityName || '-' }} {{ rh_pageData.comityName || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <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 || '-' }} {{ rh_pageData.comityState || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <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 || '-' }} {{ rh_pageData.comityKind || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="资质:"> <el-form-item class="add-form-item" label="资质:">
{{ rh_pageData.comityMake.makeQualification || '-' }} {{ rh_pageData.comityMake.makeQualification || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="成员:"> <el-form-item class="add-form-item" label="成员:">
{{ rh_pageData.comityMake.makeRole || '' }} {{ rh_pageData.comityMake.makeRole || '' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="费用估计:"> <el-form-item class="add-form-item" label="费用估计:">
{{ rh_pageData.comityMake.makeCost || '-' }} {{ rh_pageData.comityMake.makeCost || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="职责:"> <el-form-item class="add-form-item" label="职责:">
{{ rh_pageData.comityMake.makeDuties || '-' }} {{ rh_pageData.comityMake.makeDuties || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="任期:"> <el-form-item class="add-form-item" label="任期:">
{{ rh_pageData.comityMake.makeTime || '-' }} {{ rh_pageData.comityMake.makeTime || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-form-item class="add-form-item" label="工作方向:" prop="workPath"> <el-row>
<el-input v-model="rh_pageData.workPath" type="textarea" :disabled="true" style="width: 50%;height: auto"></el-input> <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>
<el-form-item class="add-form-item" label="协会外部联系方式:"> <el-form-item class="add-form-item" label="协会外部联系方式:">
<el-table <el-table
:data="rh_pageData.comityTel" :data="rh_pageData.comityTel"
border border
@@ -97,7 +95,7 @@
<ProcessTitle> <ProcessTitle>
<template slot="title">选择人员</template> <template slot="title">选择人员</template>
</ProcessTitle> </ProcessTitle>
<el-form-item class="add-form-item" label="入会人员:"> <el-form-item class="add-form-item" label="入会人员:">
<el-input <el-input
:disabled="true" :disabled="true"
style="width: 30%" style="width: 30%"
@@ -108,7 +106,7 @@
</div> </div>
</div> </div>
<el-collapse accordion> <el-collapse accordion>
<el-collapse-item title="回执说明"> <el-collapse-item title="审批意见">
<div style="margin: 10px 0;"> <div style="margin: 10px 0;">
<el-input <el-input
type="textarea" type="textarea"
@@ -243,6 +241,15 @@ export default {
comityTel: [], comityTel: [],
comityOpRole: '', comityOpRole: '',
comityInRoleId: '', comityInRoleId: '',
fillPeople: '',
fillPeopleId: '',
fillUnit: '',
fillDept: '',
fillPost: '',
fillTel: '',
fillMail: '',
fillLeader: '',
fillLeaderId: '',
}, },
roleForm: {}, roleForm: {},
commentText: '', commentText: '',
@@ -257,6 +264,8 @@ export default {
taskIds: this.$route.query.taskIds, taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId, pId: this.$route.query.prcId,
infoSourcesLength: ''
} }
}, },
computed: { computed: {
@@ -298,6 +307,7 @@ export default {
this.rh_pageData = JSON.parse(JSON.stringify(item)).rh_pageData this.rh_pageData = JSON.parse(JSON.stringify(item)).rh_pageData
this.rh_pageData.comityOpRole = this.$store.getters.userInfo.userName this.rh_pageData.comityOpRole = this.$store.getters.userInfo.userName
this.roleForm = JSON.parse(JSON.stringify(item)).roleList this.roleForm = JSON.parse(JSON.stringify(item)).roleList
this.infoSourcesLength = this.rh_pageData.infoSources.length
// this.rh_pageData.comityFileNum = this.fileTextList // this.rh_pageData.comityFileNum = this.fileTextList
}) })
}, },
@@ -305,31 +315,43 @@ export default {
handleTabs(name) { handleTabs(name) {
this.active = name this.active = name
}, },
/** 点击对应附件进行下载*/
previews(val) {
let attId = val
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
},
// 退回按钮 // 退回按钮
handleSubmitNo() { handleSubmitNo() {
let json = { if (this.commentText === '') {
roleList: this.roleForm, this.$message.warning('请输入审批意见')
memberId: this.$store.getters.userInfo.userId, } else {
passFlag: '0', let json = {
commentText: this.commentText, roleList: this.roleForm,
rh_pageData: this.rh_pageData, memberId: this.$store.getters.userInfo.userId,
} passFlag: '0',
this.$refs['rh_pageData'].validate((valid) => { commentText: this.commentText,
if (valid) { rh_pageData: this.rh_pageData,
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
});
} }
}) 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() { handleSubmit() {
@@ -431,12 +453,15 @@ export default {
.comityTel_btn { .comityTel_btn {
text-align: right; text-align: right;
} }
/deep/.el-input.is-disabled .el-input__inner {
background-color: #fff ; /deep/ .el-input.is-disabled .el-input__inner {
}
/deep/.el-textarea.is-disabled .el-textarea__inner {
background-color: #fff; background-color: #fff;
} }
/deep/ .el-textarea.is-disabled .el-textarea__inner {
background-color: #fff;
}
/deep/ .el-table__body-wrapper { /deep/ .el-table__body-wrapper {
height: auto !important; height: auto !important;
} }
@@ -14,19 +14,7 @@
<template slot="title">基础信息</template> <template slot="title">基础信息</template>
</ProcessTitle> </ProcessTitle>
<div class="content_form"> <div class="content_form">
<el-form class="label-input-form" ref="rh_pageData" :model="rh_pageData" label-width="150px"> <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="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-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="协会名称:"> <el-form-item class="add-form-item" label="协会名称:">
@@ -75,6 +63,16 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </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-form-item class="add-form-item" label="协会外部联系方式:" style="margin-top: 10px">
<el-table <el-table
:data="rh_pageData.comityTel" :data="rh_pageData.comityTel"
@@ -155,9 +153,10 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="参与人部门领导:"> <el-form-item class="add-form-item" prop="fillLeader" label="参与人部门领导:">
<el-input <el-input
style="width: 100%" style="width: 100%"
readonly
placeholder="请填写" placeholder="请填写"
v-model="rh_pageData.fillLeader" v-model="rh_pageData.fillLeader"
@click.native="choiceZRR" @click.native="choiceZRR"
@@ -166,17 +165,46 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="资料:"> <el-form-item class="add-form-item" label="资料:">
<el-input <el-upload
style="width: 100%" style="width: 100%"
placeholder="请填写" class="upload_style"
v-model="rh_pageData.fillFile" :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-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
</div> </div>
</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="content" v-show="active === '3'">
<div class="flow-list"> <div class="flow-list">
@@ -303,6 +331,7 @@ export default {
workPath: '', workPath: '',
comityTel: [], comityTel: [],
fillPeople: '', fillPeople: '',
fillPeopleId: '',
fillUnit: '', fillUnit: '',
fillDept: '', fillDept: '',
fillPost: '', fillPost: '',
@@ -310,7 +339,14 @@ export default {
fillMail: '', fillMail: '',
fillLeader: '', fillLeader: '',
fillLeaderId: '', fillLeaderId: '',
fillFile: '', fillFile: [],
},
rh_rules: {
fillLeader: [
{required: true, message: "请选择参与人部门领导", trigger: 'blur'},
{trigger: 'change'}
]
}, },
roleForm: {}, roleForm: {},
unqualidiedData: [], unqualidiedData: [],
@@ -324,6 +360,16 @@ export default {
taskIds: this.$route.query.taskIds, taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId, pId: this.$route.query.prcId,
commentText: '',
infoSourcesLength: '',
/** 上传相关 */
acceptShow: false,
// 上传路径
uploadPath: 'api/att/attFile/upload',
// 上传所储存文件数组
fillFileList: [],
newDataList: [],
} }
}, },
computed: { computed: {
@@ -360,12 +406,15 @@ export default {
this.getFormFieldList(processForm) this.getFormFieldList(processForm)
}) })
}, },
getFormFieldList (item) { getFormFieldList(item) {
this.$nextTick(() => { this.$nextTick(() => {
this.rh_pageData = JSON.parse(JSON.stringify(item)).rh_pageData 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.fillPeople = this.$store.getters.userInfo.userName
this.rh_pageData.fillPeopleId = this.$store.getters.userInfo.userId
this.roleForm = JSON.parse(JSON.stringify(item)).roleList 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.drawerTitle = title
this.roleShowflag = true this.roleShowflag = true
}, },
drawerCheck (data) { drawerCheck(data) {
this.unqualidiedData.forEach(item => { this.unqualidiedData.forEach(item => {
item.engineer = data[0].name item.engineer = data[0].name
item.engineerId = data[0].id item.engineerId = data[0].id
@@ -413,6 +462,7 @@ export default {
roleList: this.roleForm, roleList: this.roleForm,
selfUser: this.$store.getters.userInfo.userId, selfUser: this.$store.getters.userInfo.userId,
charge: this.rh_pageData.fillLeaderId, charge: this.rh_pageData.fillLeaderId,
commentText: this.commentText,
rh_pageData: this.rh_pageData, rh_pageData: this.rh_pageData,
} }
this.$refs['rh_pageData'].validate((valid) => { 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> </script>
<style lang="less" scoped> <style lang="less" scoped>
@import '~@/assets/styles/style'; @import '~@/assets/styles/style';
.bzrhStep3 { .bzrhStep3 {
position: relative; position: relative;
height: 100%; height: 100%;
/deep/.el-drawer__container {
/deep/ .el-drawer__container {
.prc-content-border { .prc-content-border {
border: none; border: none;
padding: 0 20px 0; padding: 0 20px 0;
} }
} }
.headerTabs { .headerTabs {
height: 52px; height: 52px;
display: flex; display: flex;
@@ -454,6 +574,7 @@ export default {
position: absolute; position: absolute;
top: 0; top: 0;
right: 10px; right: 10px;
.headerTabsItem { .headerTabsItem {
border: 1px solid #c1c1c1; border: 1px solid #c1c1c1;
padding: 0 5px; padding: 0 5px;
@@ -461,21 +582,25 @@ export default {
line-height: 30px; line-height: 30px;
cursor: pointer; cursor: pointer;
} }
.active { .active {
border: 1px solid #E6A23C; border: 1px solid #E6A23C;
color: #fff; color: #fff;
background: #E6A23C; background: #E6A23C;
} }
} }
.content-center { .content-center {
padding: 10px 0px 10px 10px; padding: 10px 0px 10px 10px;
} }
.content { .content {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-between; justify-content: space-between;
height: calc(~'100% - 103px'); height: calc(~'100% - 103px');
overflow: auto; overflow: auto;
.tableTitle { .tableTitle {
margin-bottom: 10px; margin-bottom: 10px;
height: 30px; height: 30px;
@@ -483,6 +608,7 @@ export default {
position: relative; position: relative;
font-size: 13px; font-size: 13px;
font-weight: bold; font-weight: bold;
.tableButton { .tableButton {
position: absolute; position: absolute;
right: 0; right: 0;
@@ -490,18 +616,23 @@ export default {
} }
} }
} }
.content_form { .content_form {
padding: 15px; padding: 15px;
.comityTel_btn { .comityTel_btn {
text-align: right; 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 { /deep/ .el-table__body-wrapper {
height: auto !important; height: auto !important;
} }
/deep/.el-table th {
/deep/ .el-table th {
padding: 0px; padding: 0px;
} }
} }
@@ -15,18 +15,6 @@
</ProcessTitle> </ProcessTitle>
<div class="content_form"> <div class="content_form">
<el-form class="label-input-form" ref="rh_pageData" :model="rh_pageData" label-width="150px" :rules="rh_rules"> <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-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="协会名称:"> <el-form-item class="add-form-item" label="协会名称:">
@@ -75,6 +63,16 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </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-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-input v-model="rh_pageData.workPath" type="textarea" :disabled="true" style="width: 50%;height: auto"></el-input>
</el-form-item> </el-form-item>
@@ -109,14 +107,21 @@
<el-table-column prop="fillPost" align="center" label="身份"/> <el-table-column prop="fillPost" align="center" label="身份"/>
<el-table-column prop="fillTel" align="center" label="电话"/> <el-table-column prop="fillTel" align="center" label="电话"/>
<el-table-column prop="fillMail" 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-table>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
</div> </div>
<el-collapse accordion> <el-collapse accordion>
<el-collapse-item title="回执说明"> <el-collapse-item title="审批意见">
<div style="margin: 10px 0;"> <div style="margin: 10px 0;">
<el-input <el-input
type="textarea" type="textarea"
@@ -220,6 +225,7 @@ import {
saveTaskForPub, saveTaskForPub,
changeAssigneeNew changeAssigneeNew
} from "@/api/process.js" } from "@/api/process.js"
export default { export default {
components: { components: {
ProcessHeader, ProcessHeader,
@@ -250,6 +256,7 @@ export default {
workPath: '', workPath: '',
comityTel: [], comityTel: [],
fillPeople: '', fillPeople: '',
fillPeopleId: '',
fillUnit: '', fillUnit: '',
fillDept: '', fillDept: '',
fillPost: '', fillPost: '',
@@ -271,6 +278,8 @@ export default {
taskIds: this.$route.query.taskIds, taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId, pId: this.$route.query.prcId,
infoSourcesLength: ''
} }
}, },
computed: { computed: {
@@ -311,10 +320,12 @@ export default {
this.getFormFieldList(processForm) this.getFormFieldList(processForm)
}) })
}, },
getFormFieldList (item) { getFormFieldList(item) {
this.$nextTick(() => { this.$nextTick(() => {
this.rh_pageData = JSON.parse(JSON.stringify(item)).rh_pageData this.rh_pageData = JSON.parse(JSON.stringify(item)).rh_pageData
this.infoSourcesLength = this.rh_pageData.infoSources.length
this.rh_pageData.myPartRole = [{ this.rh_pageData.myPartRole = [{
fillPeopleId: this.rh_pageData.fillPeopleId,
fillPeople: this.rh_pageData.fillPeople, fillPeople: this.rh_pageData.fillPeople,
fillUnit: this.rh_pageData.fillUnit, fillUnit: this.rh_pageData.fillUnit,
fillDept: this.rh_pageData.fillDept, fillDept: this.rh_pageData.fillDept,
@@ -331,29 +342,34 @@ export default {
// 退回按钮 // 退回按钮
handleSubmitNo() { handleSubmitNo() {
let json = { if (this.textarea === '') {
member: this.selfUser, this.$message.warning('请输入审批意见')
passFlag: '0', } else {
roleList: this.roleForm, let json = {
commentText: this.textarea, member: this.selfUser,
rh_pageData: this.rh_pageData, passFlag: '0',
} roleList: this.roleForm,
this.$refs['rh_pageData'].validate((valid) => { commentText: this.textarea,
if (valid) { rh_pageData: this.rh_pageData,
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
});
} }
}) 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() { 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> </script>
<style lang="less" scoped> <style lang="less" scoped>
@import '~@/assets/styles/style'; @import '~@/assets/styles/style';
.bzrhStep4 { .bzrhStep4 {
position: relative; position: relative;
height: 100%; height: 100%;
/deep/.el-drawer__container {
/deep/ .el-drawer__container {
.prc-content-border { .prc-content-border {
border: none; border: none;
padding: 0 20px 0; padding: 0 20px 0;
} }
} }
.headerTabs { .headerTabs {
height: 52px; height: 52px;
display: flex; display: flex;
@@ -404,6 +430,7 @@ export default {
position: absolute; position: absolute;
top: 0; top: 0;
right: 10px; right: 10px;
.headerTabsItem { .headerTabsItem {
border: 1px solid #c1c1c1; border: 1px solid #c1c1c1;
padding: 0 5px; padding: 0 5px;
@@ -411,21 +438,25 @@ export default {
line-height: 30px; line-height: 30px;
cursor: pointer; cursor: pointer;
} }
.active { .active {
border: 1px solid #E6A23C; border: 1px solid #E6A23C;
color: #fff; color: #fff;
background: #E6A23C; background: #E6A23C;
} }
} }
.content-center { .content-center {
padding: 10px 0px 10px 10px; padding: 10px 0px 10px 10px;
} }
.content { .content {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-between; justify-content: space-between;
height: calc(~'100% - 103px'); height: calc(~'100% - 103px');
overflow: auto; overflow: auto;
.tableTitle { .tableTitle {
margin-bottom: 10px; margin-bottom: 10px;
height: 30px; height: 30px;
@@ -433,6 +464,7 @@ export default {
position: relative; position: relative;
font-size: 13px; font-size: 13px;
font-weight: bold; font-weight: bold;
.tableButton { .tableButton {
position: absolute; position: absolute;
right: 0; right: 0;
@@ -440,18 +472,23 @@ export default {
} }
} }
} }
.content_form { .content_form {
padding: 15px; padding: 15px;
.comityTel_btn { .comityTel_btn {
text-align: right; text-align: right;
} }
/deep/.el-textarea.is-disabled .el-textarea__inner {
/deep/ .el-textarea.is-disabled .el-textarea__inner {
background-color: #fff; background-color: #fff;
} }
/deep/ .el-table__body-wrapper { /deep/ .el-table__body-wrapper {
height: auto !important; height: auto !important;
} }
/deep/.el-table th {
/deep/ .el-table th {
padding: 0px; padding: 0px;
} }
} }
@@ -15,18 +15,6 @@
</ProcessTitle> </ProcessTitle>
<div class="content_form"> <div class="content_form">
<el-form class="label-input-form" ref="rh_pageData" :model="rh_pageData" label-width="150px" :rules="rh_rules"> <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-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="协会名称:"> <el-form-item class="add-form-item" label="协会名称:">
@@ -75,6 +63,16 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </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-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" type="textarea" style="width: 50%;height: auto"></el-input>
</el-form-item> </el-form-item>
@@ -148,12 +146,32 @@
<el-table-column prop="fillPost" align="center" label="身份"/> <el-table-column prop="fillPost" align="center" label="身份"/>
<el-table-column prop="fillTel" align="center" label="电话"/> <el-table-column prop="fillTel" align="center" label="电话"/>
<el-table-column prop="fillMail" 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-table>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
</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="content" v-show="active === '3'">
<div class="flow-list"> <div class="flow-list">
@@ -245,6 +263,7 @@ import {
saveTaskForPub, saveTaskForPub,
changeAssigneeNew changeAssigneeNew
} from "@/api/process.js" } from "@/api/process.js"
export default { export default {
components: { components: {
ProcessHeader, ProcessHeader,
@@ -294,6 +313,10 @@ export default {
taskIds: this.$route.query.taskIds, taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId, pId: this.$route.query.prcId,
deleteDataList: [],
infoSourcesLength: '',
commentText: ''
} }
}, },
computed: { computed: {
@@ -334,10 +357,11 @@ export default {
this.getFormFieldList(processForm) this.getFormFieldList(processForm)
}) })
}, },
getFormFieldList (item) { getFormFieldList(item) {
this.$nextTick(() => { this.$nextTick(() => {
this.rh_pageData = JSON.parse(JSON.stringify(item)).rh_pageData this.rh_pageData = JSON.parse(JSON.stringify(item)).rh_pageData
this.roleForm = JSON.parse(JSON.stringify(item)).roleList this.roleForm = JSON.parse(JSON.stringify(item)).roleList
this.infoSourcesLength = this.rh_pageData.infoSources.length
// this.rh_pageData.comityFileNum = this.fileTextList // this.rh_pageData.comityFileNum = this.fileTextList
}) })
}, },
@@ -356,7 +380,7 @@ export default {
this.deleteDataList.map(item => { this.deleteDataList.map(item => {
let index; let index;
index = this.rh_pageData.myPartRole.findIndex(items => { index = this.rh_pageData.myPartRole.findIndex(items => {
return items.id === item; return items === item;
}); });
if (index > -1) { if (index > -1) {
this.rh_pageData.myPartRole.splice(index, 1); this.rh_pageData.myPartRole.splice(index, 1);
@@ -374,46 +398,74 @@ export default {
}, },
// 保存按钮 // 保存按钮
handleSave() { 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() { handleSubmit() {
let json = { let json = {
leader: this.roleForm.leaderUserId, leader: this.roleForm.leaderUserId,
rh_pageData: this.rh_pageData, rh_pageData: this.rh_pageData,
roleList: this.roleForm, 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) previews(val) {
params.set('taskId', this.taskIds) let attId = val
completeTask(params).then(res => { if (attId != null && attId !== "") {
if (res.success === true) { window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
this.$message.success('提交成功') }
this.$router.push("/processCenter"); },
}
this.isSubmit = false
});
}
})
}
} }
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@import '~@/assets/styles/style'; @import '~@/assets/styles/style';
.bzrhStep5 { .bzrhStep5 {
position: relative; position: relative;
height: 100%; height: 100%;
/deep/.el-drawer__container {
/deep/ .el-drawer__container {
.prc-content-border { .prc-content-border {
border: none; border: none;
padding: 0 20px 0; padding: 0 20px 0;
} }
} }
.headerTabs { .headerTabs {
height: 52px; height: 52px;
display: flex; display: flex;
@@ -421,6 +473,7 @@ export default {
position: absolute; position: absolute;
top: 0; top: 0;
right: 10px; right: 10px;
.headerTabsItem { .headerTabsItem {
border: 1px solid #c1c1c1; border: 1px solid #c1c1c1;
padding: 0 5px; padding: 0 5px;
@@ -428,21 +481,25 @@ export default {
line-height: 30px; line-height: 30px;
cursor: pointer; cursor: pointer;
} }
.active { .active {
border: 1px solid #E6A23C; border: 1px solid #E6A23C;
color: #fff; color: #fff;
background: #E6A23C; background: #E6A23C;
} }
} }
.content-center { .content-center {
padding: 10px 0px 10px 10px; padding: 10px 0px 10px 10px;
} }
.content { .content {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-between; justify-content: space-between;
height: calc(~'100% - 103px'); height: calc(~'100% - 103px');
overflow: auto; overflow: auto;
.tableTitle { .tableTitle {
margin-bottom: 10px; margin-bottom: 10px;
height: 30px; height: 30px;
@@ -450,6 +507,7 @@ export default {
position: relative; position: relative;
font-size: 13px; font-size: 13px;
font-weight: bold; font-weight: bold;
.tableButton { .tableButton {
position: absolute; position: absolute;
right: 0; right: 0;
@@ -460,15 +518,19 @@ export default {
.content_form { .content_form {
padding: 15px; padding: 15px;
.comityTel_btn { .comityTel_btn {
text-align: right; text-align: right;
} }
/deep/.el-table th {
/deep/ .el-table th {
padding: 0px; padding: 0px;
} }
/deep/.el-table__body-wrapper {
height: auto!important; /deep/ .el-table__body-wrapper {
height: auto !important;
} }
.myPart_btn { .myPart_btn {
text-align: right; 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> </ProcessTitle>
<div class="content_form"> <div class="content_form">
<el-form class="label-input-form" ref="rh_pageData" :model="rh_pageData" label-width="150px" :rules="rh_rules"> <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-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="协会名称:"> <el-form-item class="add-form-item" label="协会名称:">
@@ -78,8 +66,18 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </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-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>
<el-form-item class="add-form-item" label="协会外部联系方式:" style="margin-top: 10px"> <el-form-item class="add-form-item" label="协会外部联系方式:" style="margin-top: 10px">
<el-table <el-table
@@ -98,15 +96,6 @@
</el-table> </el-table>
</el-form-item> </el-form-item>
<el-form-item class="add-form-item" label="我司参与人员:" style="margin-top: 10px"> <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 <el-table
:data="rh_pageData.myPartRole" :data="rh_pageData.myPartRole"
border border
@@ -123,12 +112,32 @@
<el-table-column prop="fillPost" align="center" label="身份"/> <el-table-column prop="fillPost" align="center" label="身份"/>
<el-table-column prop="fillTel" align="center" label="电话"/> <el-table-column prop="fillTel" align="center" label="电话"/>
<el-table-column prop="fillMail" 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-table>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
</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>
<div class="content" v-show="active === '3'"> <div class="content" v-show="active === '3'">
<div class="flow-list"> <div class="flow-list">
@@ -277,6 +286,11 @@ export default {
taskInfo: this.$route.query.taskInfo, taskInfo: this.$route.query.taskInfo,
taskIds: this.$route.query.taskIds, taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId, pId: this.$route.query.prcId,
infoSourcesLength: '',
textTitle: '审批意见',
textHolder: '请输入审批意见'
} }
}, },
computed: { computed: {
@@ -308,6 +322,10 @@ export default {
}, },
getData() { getData() {
if (this.taskInfo === '标准法规工程师汇总修订完毕') {
this.textTitle = '回执说明'
this.textHolder = '请输入回执说明'
}
const params = { const params = {
taskIds: this.taskIds, taskIds: this.taskIds,
pId: this.pId, pId: this.pId,
@@ -321,76 +339,60 @@ export default {
this.$nextTick(() => { this.$nextTick(() => {
this.rh_pageData = JSON.parse(JSON.stringify(item)).rh_pageData this.rh_pageData = JSON.parse(JSON.stringify(item)).rh_pageData
this.roleForm = JSON.parse(JSON.stringify(item)).roleList this.roleForm = JSON.parse(JSON.stringify(item)).roleList
this.infoSourcesLength = this.rh_pageData.infoSources.length
// this.rh_pageData.comityFileNum = this.fileTextList // this.rh_pageData.comityFileNum = this.fileTextList
}) })
}, },
/** 批量删除 */ /** 点击对应附件进行下载*/
del_paryForm() { previews(val) {
if (this.deleteDataList.length < 1) { let attId = val
this.$message.warning("请选择一条数据进行删除"); if (attId != null && attId !== "") {
} else { window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
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(() => {
});
} }
}, },
selectedDelete(val) { selectedDelete(val) {
this.deleteDataList = val this.deleteDataList = val
}, },
// 退回按钮 // 退回按钮
handleSubmitNo() { handleSubmitNo() {
let json = { if (this.textarea === '') {
passFlag: '0', this.$message.warning('请输入反馈意见')
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 { } else {
json = { let json = {
passFlag: '0',
rh_pageData: this.rh_pageData, rh_pageData: this.rh_pageData,
roleList: this.roleForm roleList: this.roleForm
} }
} if (this.taskInfo === '标准法规部主管领导审核') {
this.$refs['rh_pageData'].validate((valid) => { json.manageDepartmentList = this.roleForm.feeUserId
if (valid) { } else if (this.taskInfo === '费用管理部门会签') {
this.isBack = true json.manageDepartment = this.$store.getters.userInfo.userId
const params = new FormData(); json.president = this.roleForm.engineerUserId
params.set('json', JSON.stringify(json)) } else if (this.taskInfo === '技术委员会常务副主任/总院院长审定') {
params.set('userId', this.$store.getters.userInfo.userId) json.engineerSumDone = this.roleForm.startUser
params.set('taskId', this.taskIds) } else {
completeTask(params).then(res => { json = {
if (res.success === true) { rh_pageData: this.rh_pageData,
this.$message.success('提交成功') roleList: this.roleForm
this.$router.push("/processCenter"); }
}
this.isBack = false
});
} }
}) 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 = { let json = {
passFlag: '1', passFlag: '1',
rh_pageData: this.rh_pageData, rh_pageData: this.rh_pageData,
commentText: this.textarea,
roleList: this.roleForm roleList: this.roleForm
} }
if (this.taskInfo === '标准法规部主管领导审核') { if (this.taskInfo === '标准法规部主管领导审核') {
@@ -512,6 +515,7 @@ export default {
/deep/ .el-table__body-wrapper { /deep/ .el-table__body-wrapper {
height: auto !important; height: auto !important;
} }
.myPart_btn { .myPart_btn {
text-align: right; text-align: right;
} }
@@ -79,7 +79,8 @@
</el-table-column> </el-table-column>
<el-table-column prop="material" label="资料" align="center"> <el-table-column prop="material" label="资料" align="center">
<template slot-scope="scope"> <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> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@@ -97,7 +98,8 @@
<el-table-column label="议题" align="center" prop="meetingTheme"/> <el-table-column label="议题" align="center" prop="meetingTheme"/>
<el-table-column label="资料" align="center" prop="meetingFile" width="200"> <el-table-column label="资料" align="center" prop="meetingFile" width="200">
<template slot-scope="scope"> <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> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@@ -603,7 +605,7 @@ export default {
handleSubmit() { handleSubmit() {
let json = { let json = {
hh_pageData: this.hh_pageData, hh_pageData: this.hh_pageData,
// director: this.roleForm.engineerUserId, director: this.roleForm.engineerUserId,
} }
this.$refs['hh_pageData'].validate((valid) => { this.$refs['hh_pageData'].validate((valid) => {
if (valid) { if (valid) {
@@ -102,7 +102,7 @@
</div> </div>
</div> </div>
<el-collapse accordion> <el-collapse accordion>
<el-collapse-item title="回执说明"> <el-collapse-item title="审批意见">
<div style="margin: 10px 0;"> <div style="margin: 10px 0;">
<el-input <el-input
type="textarea" type="textarea"
@@ -317,7 +317,7 @@ export default {
}, },
/** 议题列表查看按钮 */ /** 议题列表查看按钮 */
meetingFileBtn(val) { meetingFileBtn(val) {
this.themeFileList = val.material this.themeFileList = val.meetingFile
this.meetingFileDialog = true this.meetingFileDialog = true
}, },
handleClose() { handleClose() {
@@ -348,27 +348,31 @@ export default {
// 退回按钮 // 退回按钮
handleSubmitNo() { handleSubmitNo() {
let json = { if (this.commentText === '') {
passFlag: '0', this.$message.warning('请输入审批意见')
commentText: this.commentText, } else {
hh_pageData: this.hh_pageData, let json = {
} passFlag: '0',
this.$refs['hh_pageData'].validate((valid) => { commentText: this.commentText,
if (valid) { hh_pageData: this.hh_pageData,
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
});
} }
}) 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() { handleSubmit() {
@@ -97,15 +97,16 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="费用列支:"> <el-form-item class="add-form-item" label="费用列支:">
<el-select <el-input v-model="ch_pageData.feeKind" placeholder="请输入费用列支"></el-input>
v-model="ch_pageData.feeKind" <!-- <el-select
placeholder="请选择费用列支"> v-model="ch_pageData.feeKind"
<el-option placeholder="请选择费用列支">
v-for="item in feeKindOptions" <el-option
:key="item.value" v-for="item in feeKindOptions"
:label="item.label" :key="item.value"
:value="item.label"/> :label="item.label"
</el-select> :value="item.label"/>
</el-select>-->
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -170,6 +171,19 @@
</el-form> </el-form>
</div> </div>
</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 === '2'"> <div class="content" v-show="active === '2'">
<div class="block" style="padding-top: 20px;"> <div class="block" style="padding-top: 20px;">
@@ -319,7 +333,7 @@
import ProcessHeader from '../../components/ProcessHeader' import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter' import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle' import ProcessTitle from '../../components/ProcessTitle'
import {startProcess, saveTaskFirst, completeTask} from '@/api/process.js' import {startProcess, queryTaskFirst, saveTaskFirst, completeTask} from '@/api/process.js'
export default { export default {
components: { components: {
@@ -352,10 +366,10 @@ export default {
{value: '1', label: '标准法规技术评估流程'}, {value: '1', label: '标准法规技术评估流程'},
], ],
feeKindOptions: [ feeKindOptions: [
{ value: '0', label: '列支1' }, {value: '0', label: '列支1'},
{ value: '1', label: '列支2' }, {value: '1', label: '列支2'},
{ value: '2', label: '列支3' }, {value: '2', label: '列支3'},
{ value: '3', label: '列支4' }, {value: '3', label: '列支4'},
], ],
/** 上传相关 */ /** 上传相关 */
acceptShow: false, acceptShow: false,
@@ -393,6 +407,13 @@ export default {
roleShowflagOne: false, roleShowflagOne: false,
isSubmit: false, isSubmit: false,
saveLoading: false, saveLoading: false,
commentText: ''
}
},
mounted() {
this.bpnId = this.$route.query.bpnId
if (this.bpnId !== undefined) {
this.getData()
} }
}, },
methods: { methods: {
@@ -400,11 +421,21 @@ export default {
handleTabs(name) { handleTabs(name) {
this.active = 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) { /* uploadFile(val) {
this.fileListData = val this.fileListData = val
},*/ },*/
// 文件上传限制条件 // 文件上传限制条件
handleBeforeUpload(file) { handleBeforeUpload(file) {
var filename = file.name var filename = file.name
@@ -557,10 +588,12 @@ export default {
_formData.append('id', this.bpnId || '') _formData.append('id', this.bpnId || '')
_formData.append('createUser', this.$store.getters.userInfo.userId) _formData.append('createUser', this.$store.getters.userInfo.userId)
_formData.append('createUserName', this.$store.getters.userInfo.userName) _formData.append('createUserName', this.$store.getters.userInfo.userName)
_formData.append('prcType', '20') _formData.append('prcType', '21')
_formData.append('json', JSON.stringify({ _formData.append('json', JSON.stringify({
roleForm: this.roleForm, roleForm: this.roleForm,
ch_pageData: this.ch_pageData ch_pageData: this.ch_pageData,
commentText: this.commentText
})) }))
saveTaskFirst(_formData).then(res => { saveTaskFirst(_formData).then(res => {
this.saveLoading = false this.saveLoading = false
@@ -577,6 +610,7 @@ export default {
prcCreateUserName: this.$store.getters.userInfo.userName, prcCreateUserName: this.$store.getters.userInfo.userName,
roleList: this.roleForm, roleList: this.roleForm,
ch_pageData: this.ch_pageData, ch_pageData: this.ch_pageData,
commentText: this.commentText,
directorList: this.roleForm.dockUser, directorList: this.roleForm.dockUser,
} }
this.$refs['ch_pageData'].validate((valid) => { this.$refs['ch_pageData'].validate((valid) => {
@@ -59,23 +59,22 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile"> <el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<el-upload <span v-if="uploadFileLength < 1">{{ '-' }}</span>
action="" <span v-for="item in ch_pageData.fileTextList" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
name="file" {{ item.name }} {{ ';' }}
:disabled="acceptShow" </span>
:file-list="ch_pageData.fileTextList"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="类别:"> <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-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-form-item class="add-form-item" > <el-form-item class="add-form-item">
<el-table <el-table
class="meeting_table" class="meeting_table"
:data="ch_pageData.meetingTable" :data="ch_pageData.meetingTable"
@@ -104,14 +103,14 @@
</div> </div>
</div> </div>
<el-collapse accordion> <el-collapse accordion>
<el-collapse-item title="回执说明"> <el-collapse-item title="审批意见">
<div style="margin: 10px 0;"> <div style="margin: 10px 0;">
<el-input <el-input
type="textarea" type="textarea"
:rows="3" :rows="3"
resize="none" resize="none"
placeholder="请输入意见" placeholder="请输入意见"
v-model="textContent"> v-model="commentText">
</el-input> </el-input>
</div> </div>
</el-collapse-item> </el-collapse-item>
@@ -201,7 +200,8 @@
import ProcessHeader from "../../components/ProcessHeader"; import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter"; import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle"; 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 { export default {
components: { components: {
ProcessHeader, ProcessHeader,
@@ -214,10 +214,20 @@ export default {
active: '1', active: '1',
acceptShow: false, acceptShow: false,
ch_pageData: {}, ch_pageData: {
fillPeopleId: '',
fillPeople: '',
fillUnit: '',
fillDept: '',
fillPost: '',
fillTel: '',
fillMail: '',
fillLeader: '',
fillFile: '',
},
ch_rules: {}, ch_rules: {},
nodeList: [], nodeList: [],
textContent: '', commentText: '',
isBack: false, isBack: false,
isSubmit: false, isSubmit: false,
@@ -228,6 +238,7 @@ export default {
taskIds: this.$route.query.taskIds, taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId, pId: this.$route.query.prcId,
uploadFileLength: ''
} }
}, },
computed: { computed: {
@@ -269,38 +280,44 @@ export default {
this.getFormFieldList(processForm) this.getFormFieldList(processForm)
}) })
}, },
getFormFieldList (item) { getFormFieldList(item) {
this.$nextTick(() => { this.$nextTick(() => {
this.ch_pageData = JSON.parse(JSON.stringify(item)).ch_pageData 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.ch_pageData.meetingInRole = this.$store.getters.userInfo.userName
this.roleForm = JSON.parse(JSON.stringify(item)).roleList this.roleForm = JSON.parse(JSON.stringify(item)).roleList
}) })
}, },
// 退回按钮 // 退回按钮
handleSubmitNo() { handleSubmitNo() {
let json = { if (this.commentText === '') {
roleList: this.roleForm, this.$message.warning('请输入审批意见')
memberId: this.$store.getters.userInfo.userId, } else {
passFlag: '0', let json = {
commentText: this.textContent, roleList: this.roleForm,
ch_pageData: this.ch_pageData, memberId: this.$store.getters.userInfo.userId,
} passFlag: '0',
this.$refs['ch_pageData'].validate((valid) => { commentText: this.commentText,
if (valid) { ch_pageData: this.ch_pageData,
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
});
} }
}) 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() { handleSubmit() {
@@ -308,7 +325,7 @@ export default {
roleList: this.roleForm, roleList: this.roleForm,
memberId: this.$store.getters.userInfo.userId, memberId: this.$store.getters.userInfo.userId,
passFlag: '1', passFlag: '1',
commentText: this.textContent, commentText: this.commentText,
ch_pageData: this.ch_pageData, ch_pageData: this.ch_pageData,
} }
this.$refs['ch_pageData'].validate((valid) => { 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> </script>
<style lang="less" scoped> <style lang="less" scoped>
@import '~@/assets/styles/style'; @import '~@/assets/styles/style';
.bzchStep2 { .bzchStep2 {
position: relative; position: relative;
height: 100%; height: 100%;
/deep/.el-drawer__container {
/deep/ .el-drawer__container {
.prc-content-border { .prc-content-border {
border: none; border: none;
padding: 0 20px 0; padding: 0 20px 0;
} }
} }
.headerTabs { .headerTabs {
height: 52px; height: 52px;
display: flex; display: flex;
@@ -350,6 +378,7 @@ export default {
position: absolute; position: absolute;
top: 0; top: 0;
right: 10px; right: 10px;
.headerTabsItem { .headerTabsItem {
border: 1px solid #c1c1c1; border: 1px solid #c1c1c1;
padding: 0 5px; padding: 0 5px;
@@ -357,21 +386,25 @@ export default {
line-height: 30px; line-height: 30px;
cursor: pointer; cursor: pointer;
} }
.active { .active {
border: 1px solid #E6A23C; border: 1px solid #E6A23C;
color: #fff; color: #fff;
background: #E6A23C; background: #E6A23C;
} }
} }
.content-center { .content-center {
padding: 10px 0px 10px 10px; padding: 10px 0px 10px 10px;
} }
.content { .content {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-between; justify-content: space-between;
height: calc(~'100% - 103px'); height: calc(~'100% - 103px');
overflow: auto; overflow: auto;
.tableTitle { .tableTitle {
margin-bottom: 10px; margin-bottom: 10px;
height: 30px; height: 30px;
@@ -379,6 +412,7 @@ export default {
position: relative; position: relative;
font-size: 13px; font-size: 13px;
font-weight: bold; font-weight: bold;
.tableButton { .tableButton {
position: absolute; position: absolute;
right: 0; right: 0;
@@ -386,41 +420,52 @@ export default {
} }
} }
} }
.content_form { .content_form {
padding-top: 15px; padding-top: 15px;
padding-left: 30px; padding-left: 30px;
.el-divider--horizontal { .el-divider--horizontal {
margin-top: 0px; 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 { .meeting_table {
/deep/ .el-input__inner { /deep/ .el-input__inner {
text-align: center; text-align: center;
} }
} }
/deep/.el-textarea__inner {
/deep/ .el-textarea__inner {
font-family: inherit; font-family: inherit;
} }
/deep/.el-upload {
/deep/ .el-upload {
display: unset; display: unset;
} }
/deep/.el-upload-list__item-status-label {
/deep/ .el-upload-list__item-status-label {
font-size: 0; font-size: 0;
} }
/deep/.el-upload-list__item {
/deep/ .el-upload-list__item {
.el-icon-close { .el-icon-close {
font-size: 0; font-size: 0;
} }
.el-icon-close-tip { .el-icon-close-tip {
font-size: 0; font-size: 0;
} }
} }
/deep/.el-table th {
/deep/ .el-table th {
padding: 0px; padding: 0px;
} }
} }
@@ -59,18 +59,18 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile"> <el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<el-upload <span v-if="uploadFileLength < 1">{{ '-' }}</span>
action="" <span v-for="item in ch_pageData.fileTextList" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
name="file" {{ item.name }} {{ ';' }}
:file-list="ch_pageData.fileTextList" </span>
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="类别:"> <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-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -123,10 +123,11 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="参与人部门领导:"> <el-form-item class="add-form-item" prop="fillLeader" label="参与人部门领导:">
<el-input <el-input
style="width: 100%" style="width: 100%"
placeholder="请选择" readonly
placeholder="请选择参与人部门领导"
v-model="ch_pageData.fillLeader" v-model="ch_pageData.fillLeader"
@click.native="choiceZRR" @click.native="choiceZRR"
/> />
@@ -154,6 +155,19 @@
</el-form> </el-form>
</div> </div>
</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="content" v-show="active === '3'">
<div class="flow-list"> <div class="flow-list">
@@ -245,7 +259,7 @@
import ProcessHeader from "../../components/ProcessHeader"; import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter"; import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle"; 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 { export default {
components: { components: {
@@ -269,7 +283,12 @@ export default {
fillLeader: '', fillLeader: '',
fillFile: '', fillFile: '',
}, },
ch_rules: {}, ch_rules: {
fillLeader: [
{required: true, message: "请选择参与人部门领导", trigger: 'blur'},
{trigger: 'change'}
]
},
detailData: [], detailData: [],
loading: false, loading: false,
@@ -284,6 +303,9 @@ export default {
taskIds: this.$route.query.taskIds, taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId, pId: this.$route.query.prcId,
uploadFileLength: '',
commentText: ''
} }
}, },
computed: { computed: {
@@ -324,9 +346,10 @@ export default {
this.getFormFieldList(processForm) this.getFormFieldList(processForm)
}) })
}, },
getFormFieldList (item) { getFormFieldList(item) {
this.$nextTick(() => { this.$nextTick(() => {
this.ch_pageData = JSON.parse(JSON.stringify(item)).ch_pageData 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.fillPeopleId = this.$store.getters.userInfo.userId
this.ch_pageData.fillPeople = this.$store.getters.userInfo.userName this.ch_pageData.fillPeople = this.$store.getters.userInfo.userName
this.roleForm = JSON.parse(JSON.stringify(item)).roleList this.roleForm = JSON.parse(JSON.stringify(item)).roleList
@@ -340,7 +363,7 @@ export default {
this.drawerTitle = title this.drawerTitle = title
this.roleShowflag = true this.roleShowflag = true
}, },
drawerCheck (data) { drawerCheck(data) {
this.unqualidiedData.forEach(item => { this.unqualidiedData.forEach(item => {
item.engineer = data[0].name item.engineer = data[0].name
item.engineerId = data[0].id item.engineerId = data[0].id
@@ -356,6 +379,7 @@ export default {
_formData.append('taskIds', this.taskIds) _formData.append('taskIds', this.taskIds)
_formData.append('json', JSON.stringify({ _formData.append('json', JSON.stringify({
roleList: this.roleForm, roleList: this.roleForm,
commentText: this.commentText,
selfUser: this.$store.getters.userInfo.userId, selfUser: this.$store.getters.userInfo.userId,
charge: this.ch_pageData.fillLeaderId, charge: this.ch_pageData.fillLeaderId,
ch_pageData: this.ch_pageData, ch_pageData: this.ch_pageData,
@@ -373,6 +397,7 @@ export default {
let json = { let json = {
roleList: this.roleForm, roleList: this.roleForm,
selfUser: this.$store.getters.userInfo.userId, selfUser: this.$store.getters.userInfo.userId,
commentText: this.commentText,
charge: this.ch_pageData.fillLeaderId, charge: this.ch_pageData.fillLeaderId,
ch_pageData: this.ch_pageData, 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> </script>
@@ -465,9 +498,10 @@ export default {
padding-left: 30px; padding-left: 30px;
padding-top: 15px; padding-top: 15px;
/deep/.el-input.is-disabled .el-input__inner { /deep/ .el-input.is-disabled .el-input__inner {
background-color: #fff ; background-color: #fff;
} }
.el-divider--horizontal { .el-divider--horizontal {
margin-top: 0px; margin-top: 0px;
} }
@@ -477,6 +511,7 @@ export default {
text-align: center; text-align: center;
} }
} }
/deep/ .el-table__body-wrapper { /deep/ .el-table__body-wrapper {
height: auto !important; height: auto !important;
} }
@@ -485,13 +520,15 @@ export default {
font-family: inherit; font-family: inherit;
} }
/deep/.el-upload { /deep/ .el-upload {
display: unset; display: unset;
} }
/deep/.el-upload-list__item-status-label {
/deep/ .el-upload-list__item-status-label {
font-size: 0; font-size: 0;
} }
/deep/.el-upload-list__item {
/deep/ .el-upload-list__item {
.el-icon-close { .el-icon-close {
font-size: 0; font-size: 0;
} }
@@ -500,6 +537,7 @@ export default {
font-size: 0; font-size: 0;
} }
} }
/deep/ .el-table th { /deep/ .el-table th {
padding: 0px; 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-form class="label-input-form" ref="ch_pageData" :model="ch_pageData" :rules="ch_rules" label-width="120px">
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="会议名称:"> <el-form-item class="add-form-item" label="会议名称:">
{{ ch_pageData.meetingName || '-' }} {{ ch_pageData.meetingName || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="主办单位:"> <el-form-item class="add-form-item" label="主办单位:">
{{ ch_pageData.primaryUnit || '-' }} {{ ch_pageData.primaryUnit || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="协会名称:"> <el-form-item class="add-form-item" label="协会名称:">
{{ ch_pageData.associaName || '-' }} {{ ch_pageData.associaName || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="会议时间:"> <el-form-item class="add-form-item" label="会议时间:">
{{ ch_pageData.meetingStartTime || '-' }} {{ ch_pageData.meetingStartTime || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="会议地点:"> <el-form-item class="add-form-item" label="会议地点:">
{{ ch_pageData.meetingPlace || '-' }} {{ ch_pageData.meetingPlace || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="费用标准:"> <el-form-item class="add-form-item" label="费用标准:">
{{ ch_pageData.feeStand || '-' }} {{ ch_pageData.feeStand || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="费用列支:"> <el-form-item class="add-form-item" label="费用列支:">
{{ ch_pageData.feeKind || '-' }} {{ ch_pageData.feeKind || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile"> <el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<el-upload <span v-if="uploadFileLength < 1">{{ '-' }}</span>
action="" <span v-for="item in ch_pageData.fileTextList" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
name="file" {{ item.name }} {{ ';' }}
:file-list="ch_pageData.fileTextList" </span>
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="类别:"> <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-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-form-item class="add-form-item" label="议题:"> <el-form-item class="add-form-item" label="议题:">
<el-table <el-table
class="meeting_table" class="meeting_table"
:data="ch_pageData.meetingTable" :data="ch_pageData.meetingTable"
@@ -88,7 +88,7 @@
<el-table-column label="议题" align="center" prop="meetingTheme"/> <el-table-column label="议题" align="center" prop="meetingTheme"/>
</el-table> </el-table>
</el-form-item> </el-form-item>
<el-form-item class="add-form-item" label="入会人员:"> <el-form-item class="add-form-item" label="入会人员:">
<el-table <el-table
:data="ch_pageData.myPartRole" :data="ch_pageData.myPartRole"
border border
@@ -109,7 +109,7 @@
</div> </div>
</div> </div>
<el-collapse accordion> <el-collapse accordion>
<el-collapse-item title="回执说明"> <el-collapse-item title="审批意见">
<div style="margin: 10px 0;"> <div style="margin: 10px 0;">
<el-input <el-input
type="textarea" type="textarea"
@@ -205,7 +205,8 @@
import ProcessHeader from "../../components/ProcessHeader"; import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter"; import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle"; 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 { export default {
components: { components: {
ProcessHeader, ProcessHeader,
@@ -232,6 +233,7 @@ export default {
taskIds: this.$route.query.taskIds, taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId, pId: this.$route.query.prcId,
uploadFileLength: ''
} }
}, },
computed: { computed: {
@@ -272,9 +274,10 @@ export default {
this.getFormFieldList(processForm) this.getFormFieldList(processForm)
}) })
}, },
getFormFieldList (item) { getFormFieldList(item) {
this.$nextTick(() => { this.$nextTick(() => {
this.ch_pageData = JSON.parse(JSON.stringify(item)).ch_pageData this.ch_pageData = JSON.parse(JSON.stringify(item)).ch_pageData
this.uploadFileLength = this.ch_pageData.fileTextList.length
this.ch_pageData.myPartRole = [{ this.ch_pageData.myPartRole = [{
fillPeopleId: this.ch_pageData.fillPeopleId, fillPeopleId: this.ch_pageData.fillPeopleId,
fillPeople: this.ch_pageData.fillPeople, fillPeople: this.ch_pageData.fillPeople,
@@ -292,29 +295,33 @@ export default {
}, },
// 退回按钮 // 退回按钮
handleSubmitNo() { handleSubmitNo() {
let json = { if (this.textarea === '') {
member: this.selfUser, this.$message.warning('请输入审批意见')
passFlag: '0', } else {
roleList: this.roleForm, let json = {
commentText: this.textarea, member: this.selfUser,
ch_pageData: this.ch_pageData, passFlag: '0',
} roleList: this.roleForm,
this.$refs['ch_pageData'].validate((valid) => { commentText: this.textarea,
if (valid) { ch_pageData: this.ch_pageData,
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
});
} }
}) 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() { 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> </script>
<style lang="less" scoped> <style lang="less" scoped>
@import '~@/assets/styles/style'; @import '~@/assets/styles/style';
.bzchStep4 { .bzchStep4 {
position: relative; position: relative;
height: 100%; height: 100%;
/deep/.el-drawer__container {
/deep/ .el-drawer__container {
.prc-content-border { .prc-content-border {
border: none; border: none;
padding: 0 20px 0; padding: 0 20px 0;
} }
} }
.headerTabs { .headerTabs {
height: 52px; height: 52px;
display: flex; display: flex;
@@ -365,6 +382,7 @@ export default {
position: absolute; position: absolute;
top: 0; top: 0;
right: 10px; right: 10px;
.headerTabsItem { .headerTabsItem {
border: 1px solid #c1c1c1; border: 1px solid #c1c1c1;
padding: 0 5px; padding: 0 5px;
@@ -372,21 +390,25 @@ export default {
line-height: 30px; line-height: 30px;
cursor: pointer; cursor: pointer;
} }
.active { .active {
border: 1px solid #E6A23C; border: 1px solid #E6A23C;
color: #fff; color: #fff;
background: #E6A23C; background: #E6A23C;
} }
} }
.content-center { .content-center {
padding: 10px 0px 10px 10px; padding: 10px 0px 10px 10px;
} }
.content { .content {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-between; justify-content: space-between;
height: calc(~'100% - 103px'); height: calc(~'100% - 103px');
overflow: auto; overflow: auto;
.tableTitle { .tableTitle {
margin-bottom: 10px; margin-bottom: 10px;
height: 30px; height: 30px;
@@ -394,6 +416,7 @@ export default {
position: relative; position: relative;
font-size: 13px; font-size: 13px;
font-weight: bold; font-weight: bold;
.tableButton { .tableButton {
position: absolute; position: absolute;
right: 0; right: 0;
@@ -401,30 +424,38 @@ export default {
} }
} }
} }
.content_form { .content_form {
padding-top: 15px; padding-top: 15px;
padding-left: 30px; padding-left: 30px;
.el-divider--horizontal { .el-divider--horizontal {
margin-top: 0px; margin-top: 0px;
} }
.meeting_table { .meeting_table {
/deep/ .el-input__inner { /deep/ .el-input__inner {
text-align: center; 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; font-family: inherit;
} }
/deep/.el-upload {
/deep/ .el-upload {
display: unset; display: unset;
} }
/deep/.el-upload-list__item-status-label {
/deep/ .el-upload-list__item-status-label {
font-size: 0; font-size: 0;
} }
/deep/.el-upload-list__item {
/deep/ .el-upload-list__item {
.el-icon-close { .el-icon-close {
font-size: 0; font-size: 0;
} }
@@ -433,7 +464,8 @@ export default {
font-size: 0; font-size: 0;
} }
} }
/deep/.el-table th {
/deep/ .el-table th {
padding: 0px; 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-form class="label-input-form" ref="ch_pageData" :model="ch_pageData" :rules="ch_rules" label-width="120px">
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="会议名称:"> <el-form-item class="add-form-item" label="会议名称:">
{{ ch_pageData.meetingName || '-' }} {{ ch_pageData.meetingName || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="主办单位:"> <el-form-item class="add-form-item" label="主办单位:">
{{ ch_pageData.primaryUnit || '-' }} {{ ch_pageData.primaryUnit || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="协会名称:"> <el-form-item class="add-form-item" label="协会名称:">
{{ ch_pageData.associaName || '-' }} {{ ch_pageData.associaName || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="会议时间:"> <el-form-item class="add-form-item" label="会议时间:">
{{ ch_pageData.meetingStartTime || '-' }} {{ ch_pageData.meetingStartTime || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="会议地点:"> <el-form-item class="add-form-item" label="会议地点:">
{{ ch_pageData.meetingPlace || '-' }} {{ ch_pageData.meetingPlace || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="费用标准:"> <el-form-item class="add-form-item" label="费用标准:">
{{ ch_pageData.feeStand || '-' }} {{ ch_pageData.feeStand || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="费用列支:"> <el-form-item class="add-form-item" label="费用列支:">
{{ ch_pageData.feeKind || '-' }} {{ ch_pageData.feeKind || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile"> <el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<el-upload <span v-if="uploadFileLength < 1">{{ '-' }}</span>
action="" <span v-for="item in ch_pageData.fileTextList" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
name="file" {{ item.name }} {{ ';' }}
:file-list="ch_pageData.fileTextList" </span>
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="类别:"> <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-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-form-item class="add-form-item" label="议题:"> <el-form-item class="add-form-item" label="议题:">
<el-table <el-table
class="meeting_table" class="meeting_table"
:data="ch_pageData.meetingTable" :data="ch_pageData.meetingTable"
@@ -95,7 +95,7 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-form-item> </el-form-item>
<el-form-item class="add-form-item" label="入会人员:"> <el-form-item class="add-form-item" label="入会人员:">
<div class="myPart_btn"> <div class="myPart_btn">
<el-button <el-button
type="danger" type="danger"
@@ -126,6 +126,19 @@
</el-form> </el-form>
</div> </div>
</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="content" v-show="active === '3'">
<div class="flow-list"> <div class="flow-list">
@@ -210,7 +223,8 @@
import ProcessHeader from "../../components/ProcessHeader"; import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter"; import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle"; 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 { export default {
components: { components: {
ProcessHeader, ProcessHeader,
@@ -237,6 +251,9 @@ export default {
taskIds: this.$route.query.taskIds, taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId, pId: this.$route.query.prcId,
uploadFileLength: '',
commentText: ''
} }
}, },
computed: { computed: {
@@ -277,9 +294,10 @@ export default {
this.getFormFieldList(processForm) this.getFormFieldList(processForm)
}) })
}, },
getFormFieldList (item) { getFormFieldList(item) {
this.$nextTick(() => { this.$nextTick(() => {
this.ch_pageData = JSON.parse(JSON.stringify(item)).ch_pageData 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.roleForm = JSON.parse(JSON.stringify(item)).roleList
// this.ch_pageData.comityFileNum = this.fileTextList // this.ch_pageData.comityFileNum = this.fileTextList
}) })
@@ -300,7 +318,7 @@ export default {
this.deleteDataList.map(item => { this.deleteDataList.map(item => {
let index; let index;
index = this.ch_pageData.myPartRole.findIndex(items => { index = this.ch_pageData.myPartRole.findIndex(items => {
return items.id === item; return items === item;
}); });
if (index > -1) { if (index > -1) {
this.ch_pageData.myPartRole.splice(index, 1); this.ch_pageData.myPartRole.splice(index, 1);
@@ -318,12 +336,28 @@ export default {
}, },
// 保存按钮 // 保存按钮
handleSave() { 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() { handleSubmit() {
let json = { let json = {
leader: this.roleForm.leaderUserId, leader: this.roleForm.leaderUserId,
ch_pageData: this.ch_pageData, ch_pageData: this.ch_pageData,
commentText: this.commentText,
roleList: this.roleForm, roleList: this.roleForm,
} }
this.$refs['ch_pageData'].validate((valid) => { 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> </script>
<style lang="less" scoped> <style lang="less" scoped>
@import '~@/assets/styles/style'; @import '~@/assets/styles/style';
.bzchStep5 { .bzchStep5 {
position: relative; position: relative;
height: 100%; height: 100%;
/deep/.el-drawer__container {
/deep/ .el-drawer__container {
.prc-content-border { .prc-content-border {
border: none; border: none;
padding: 0 20px 0; padding: 0 20px 0;
} }
} }
.headerTabs { .headerTabs {
height: 52px; height: 52px;
display: flex; display: flex;
@@ -365,6 +410,7 @@ export default {
position: absolute; position: absolute;
top: 0; top: 0;
right: 10px; right: 10px;
.headerTabsItem { .headerTabsItem {
border: 1px solid #c1c1c1; border: 1px solid #c1c1c1;
padding: 0 5px; padding: 0 5px;
@@ -372,21 +418,25 @@ export default {
line-height: 30px; line-height: 30px;
cursor: pointer; cursor: pointer;
} }
.active { .active {
border: 1px solid #E6A23C; border: 1px solid #E6A23C;
color: #fff; color: #fff;
background: #E6A23C; background: #E6A23C;
} }
} }
.content-center { .content-center {
padding: 10px 0px 10px 10px; padding: 10px 0px 10px 10px;
} }
.content { .content {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-between; justify-content: space-between;
height: calc(~'100% - 103px'); height: calc(~'100% - 103px');
overflow: auto; overflow: auto;
.tableTitle { .tableTitle {
margin-bottom: 10px; margin-bottom: 10px;
height: 30px; height: 30px;
@@ -394,6 +444,7 @@ export default {
position: relative; position: relative;
font-size: 13px; font-size: 13px;
font-weight: bold; font-weight: bold;
.tableButton { .tableButton {
position: absolute; position: absolute;
right: 0; right: 0;
@@ -401,38 +452,48 @@ export default {
} }
} }
} }
.content_form { .content_form {
padding-top: 15px; padding-top: 15px;
padding-left: 30px; padding-left: 30px;
.el-divider--horizontal { .el-divider--horizontal {
margin-top: 0px; margin-top: 0px;
} }
.meeting_table { .meeting_table {
/deep/ .el-input__inner { /deep/ .el-input__inner {
text-align: center; 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; font-family: inherit;
} }
.meeting_table { .meeting_table {
/deep/ .el-input__inner { /deep/ .el-input__inner {
text-align: center; text-align: center;
} }
} }
/deep/.el-table th {
/deep/ .el-table th {
padding: 0px; padding: 0px;
} }
/deep/.el-upload {
/deep/ .el-upload {
display: unset; display: unset;
} }
/deep/.el-upload-list__item-status-label {
/deep/ .el-upload-list__item-status-label {
font-size: 0; font-size: 0;
} }
/deep/.el-upload-list__item {
/deep/ .el-upload-list__item {
.el-icon-close { .el-icon-close {
font-size: 0; font-size: 0;
} }
@@ -441,6 +502,7 @@ export default {
font-size: 0; font-size: 0;
} }
} }
.myPart_btn { .myPart_btn {
text-align: right; 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-form class="label-input-form" ref="ch_pageData" :model="ch_pageData" :rules="ch_rules" label-width="120px">
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="会议名称:"> <el-form-item class="add-form-item" label="会议名称:">
{{ ch_pageData.meetingName || '-' }} {{ ch_pageData.meetingName || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="主办单位:"> <el-form-item class="add-form-item" label="主办单位:">
{{ ch_pageData.primaryUnit || '-' }} {{ ch_pageData.primaryUnit || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="协会名称:"> <el-form-item class="add-form-item" label="协会名称:">
{{ ch_pageData.associaName || '-' }} {{ ch_pageData.associaName || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="会议时间:"> <el-form-item class="add-form-item" label="会议时间:">
{{ ch_pageData.meetingStartTime || '-' }} {{ ch_pageData.meetingStartTime || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="会议地点:"> <el-form-item class="add-form-item" label="会议地点:">
{{ ch_pageData.meetingPlace || '-' }} {{ ch_pageData.meetingPlace || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="费用标准:"> <el-form-item class="add-form-item" label="费用标准:">
{{ ch_pageData.feeStand || '-' }} {{ ch_pageData.feeStand || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="费用列支:"> <el-form-item class="add-form-item" label="费用列支:">
{{ ch_pageData.feeKind || '-' }} {{ ch_pageData.feeKind || '-' }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile"> <el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<el-upload <span v-if="uploadFileLength < 1">{{ '-' }}</span>
action="" <span v-for="item in ch_pageData.fileTextList" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
name="file" {{ item.name }} {{ ';' }}
:file-list="ch_pageData.fileTextList" </span>
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item class="add-form-item" label="类别:"> <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-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-form-item class="add-form-item" label="议题:"> <el-form-item class="add-form-item" label="议题:">
<el-table <el-table
class="meeting_table" class="meeting_table"
:data="ch_pageData.meetingTable" :data="ch_pageData.meetingTable"
@@ -91,7 +91,7 @@
<el-table-column label="议题" align="center" prop="meetingTheme"/> <el-table-column label="议题" align="center" prop="meetingTheme"/>
</el-table> </el-table>
</el-form-item> </el-form-item>
<el-form-item class="add-form-item" label="入会人员:"> <el-form-item class="add-form-item" label="入会人员:">
<el-table <el-table
:data="ch_pageData.myPartRole" :data="ch_pageData.myPartRole"
border border
@@ -111,6 +111,19 @@
</el-form> </el-form>
</div> </div>
</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>
<div class="content" v-show="active === '3'"> <div class="content" v-show="active === '3'">
<div class="flow-list"> <div class="flow-list">
@@ -201,7 +214,8 @@
import ProcessHeader from "../../components/ProcessHeader"; import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter"; import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle"; 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 { export default {
components: { components: {
ProcessHeader, ProcessHeader,
@@ -230,6 +244,10 @@ export default {
taskInfo: this.$route.query.taskInfo, taskInfo: this.$route.query.taskInfo,
taskIds: this.$route.query.taskIds, taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId, pId: this.$route.query.prcId,
uploadFileLength: '',
passTitle: '审批意见',
passHolder: '请输入审批意见'
} }
}, },
computed: { computed: {
@@ -261,6 +279,10 @@ export default {
}, },
getData() { getData() {
if (this.taskInfo === '标准法规工程师修订完毕') {
this.passTitle = '回执说明',
this.passHolder = '请输入回执说明'
}
const params = { const params = {
taskIds: this.taskIds, taskIds: this.taskIds,
pId: this.pId, pId: this.pId,
@@ -270,9 +292,10 @@ export default {
this.getFormFieldList(processForm) this.getFormFieldList(processForm)
}) })
}, },
getFormFieldList (item) { getFormFieldList(item) {
this.$nextTick(() => { this.$nextTick(() => {
this.ch_pageData = JSON.parse(JSON.stringify(item)).ch_pageData 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.roleForm = JSON.parse(JSON.stringify(item)).roleList
// this.ch_pageData.comityFileNum = this.fileTextList // this.ch_pageData.comityFileNum = this.fileTextList
}) })
@@ -293,7 +316,7 @@ export default {
this.deleteDataList.map(item => { this.deleteDataList.map(item => {
let index; let index;
index = this.ch_pageData.myPartRole.findIndex(items => { index = this.ch_pageData.myPartRole.findIndex(items => {
return items.id === item; return items === item;
}); });
if (index > -1) { if (index > -1) {
this.ch_pageData.myPartRole.splice(index, 1); this.ch_pageData.myPartRole.splice(index, 1);
@@ -311,46 +334,53 @@ export default {
}, },
// 退回按钮 // 退回按钮
handleSubmitNo() { handleSubmitNo() {
let json = { if (this.textarea === '') {
passFlag: '0', this.$message.warning('请输入审批意见')
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
} else { } else {
json = { let json = {
passFlag: '0',
ch_pageData: this.ch_pageData, ch_pageData: this.ch_pageData,
commentText: this.textarea,
roleList: this.roleForm roleList: this.roleForm
} }
} if (this.taskInfo === '技术管理中心主任审批') {
this.$refs['ch_pageData'].validate((valid) => { json.manageDepartmentList = this.roleForm.feeUserId
if (valid) { } else if (this.taskInfo === '费用管理部门会签') {
this.isBack = true json.manageDepartment = this.$store.getters.userInfo.userId
const params = new FormData(); json.president = this.roleForm.engineerUserId
params.set('json', JSON.stringify(json)) } else if (this.taskInfo === '技术委员会常务副主任/总院院长审定') {
params.set('userId', this.$store.getters.userInfo.userId) json.engineerSumDone = this.roleForm.startUser
params.set('taskId', this.taskIds) } else {
completeTask(params).then(res => { json = {
if (res.success === true) { ch_pageData: this.ch_pageData,
this.$message.success('提交成功') commentText: this.textarea,
this.$router.push("/processCenter"); roleList: this.roleForm
} }
this.isBack = false
});
} }
}) 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() { handleSubmit() {
let json = { let json = {
passFlag: '1', passFlag: '1',
ch_pageData: this.ch_pageData, ch_pageData: this.ch_pageData,
commentText: this.textarea,
roleList: this.roleForm roleList: this.roleForm
} }
if (this.taskInfo === '技术管理中心主任审批') { if (this.taskInfo === '技术管理中心主任审批') {
@@ -363,6 +393,7 @@ export default {
} else { } else {
json = { json = {
ch_pageData: this.ch_pageData, ch_pageData: this.ch_pageData,
commentText: this.textarea,
roleList: this.roleForm 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> </script>
<style lang="less" scoped> <style lang="less" scoped>
@import '~@/assets/styles/style'; @import '~@/assets/styles/style';
.bzchStep6 { .bzchStep6 {
position: relative; position: relative;
height: 100%; height: 100%;
/deep/.el-drawer__container {
/deep/ .el-drawer__container {
.prc-content-border { .prc-content-border {
border: none; border: none;
padding: 0 20px 0; padding: 0 20px 0;
} }
} }
.headerTabs { .headerTabs {
height: 52px; height: 52px;
display: flex; display: flex;
@@ -405,6 +447,7 @@ export default {
position: absolute; position: absolute;
top: 0; top: 0;
right: 10px; right: 10px;
.headerTabsItem { .headerTabsItem {
border: 1px solid #c1c1c1; border: 1px solid #c1c1c1;
padding: 0 5px; padding: 0 5px;
@@ -412,21 +455,25 @@ export default {
line-height: 30px; line-height: 30px;
cursor: pointer; cursor: pointer;
} }
.active { .active {
border: 1px solid #E6A23C; border: 1px solid #E6A23C;
color: #fff; color: #fff;
background: #E6A23C; background: #E6A23C;
} }
} }
.content-center { .content-center {
padding: 10px 0px 10px 10px; padding: 10px 0px 10px 10px;
} }
.content { .content {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-between; justify-content: space-between;
height: calc(~'100% - 103px'); height: calc(~'100% - 103px');
overflow: auto; overflow: auto;
.tableTitle { .tableTitle {
margin-bottom: 10px; margin-bottom: 10px;
height: 30px; height: 30px;
@@ -434,6 +481,7 @@ export default {
position: relative; position: relative;
font-size: 13px; font-size: 13px;
font-weight: bold; font-weight: bold;
.tableButton { .tableButton {
position: absolute; position: absolute;
right: 0; right: 0;
@@ -441,30 +489,38 @@ export default {
} }
} }
} }
.content_form { .content_form {
padding-top: 15px; padding-top: 15px;
padding-left: 30px; padding-left: 30px;
.el-divider--horizontal { .el-divider--horizontal {
margin-top: 0px; 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; font-family: inherit;
} }
.meeting_table { .meeting_table {
/deep/ .el-input__inner { /deep/ .el-input__inner {
text-align: center; text-align: center;
} }
} }
/deep/.el-upload {
/deep/ .el-upload {
display: unset; display: unset;
} }
/deep/.el-upload-list__item-status-label {
/deep/ .el-upload-list__item-status-label {
font-size: 0; font-size: 0;
} }
/deep/.el-upload-list__item {
/deep/ .el-upload-list__item {
.el-icon-close { .el-icon-close {
font-size: 0; font-size: 0;
} }
@@ -473,7 +529,8 @@ export default {
font-size: 0; font-size: 0;
} }
} }
/deep/.el-table th {
/deep/ .el-table th {
padding: 0px; padding: 0px;
} }
} }
@@ -325,12 +325,6 @@
submitBTNText="同意" submitBTNText="同意"
> >
</ProcessFooter> </ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
<el-dialog <el-dialog
title="查看条款内容" title="查看条款内容"
:visible.sync="itermsConditionsFlag" :visible.sync="itermsConditionsFlag"
@@ -385,6 +379,9 @@
ProcessTitle ProcessTitle
}, },
methods: { methods: {
phoneClick () {
this.$router.push('/phoneBzjdStep4')
},
handleTransfer() { handleTransfer() {
this.drawerModal = true this.drawerModal = true
}, },
@@ -29,7 +29,7 @@
<el-radio label="1">海外标准入库</el-radio> <el-radio label="1">海外标准入库</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </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-select :popper-append-to-body="false" filterable v-model="form.standSort" placeholder="请选择标准类别">
<el-option <el-option
v-for="item in standSortOptions" v-for="item in standSortOptions"
@@ -264,7 +264,7 @@
></el-input> ></el-input>
<div style="display: flex;justify-content: space-between"> <div style="display: flex;justify-content: space-between">
<div style="width: 80%;"> <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>
<div style="width: 20%;"> <div style="width: 20%;">
<el-button <el-button
@@ -287,7 +287,7 @@
></el-input> ></el-input>
<div style="display: flex;justify-content: space-between"> <div style="display: flex;justify-content: space-between">
<div style="width: 80%;"> <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>
<div style="width: 20%;"> <div style="width: 20%;">
<el-button <el-button
@@ -310,7 +310,7 @@
></el-input> ></el-input>
<div style="display: flex;justify-content: space-between"> <div style="display: flex;justify-content: space-between">
<div style="width: 80%;"> <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>
<div style="width: 20%;"> <div style="width: 20%;">
<el-button <el-button
@@ -333,7 +333,7 @@
></el-input> ></el-input>
<div style="display: flex;justify-content: space-between"> <div style="display: flex;justify-content: space-between">
<div style="width: 80%;"> <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>
<div style="width: 20%;"> <div style="width: 20%;">
<el-button <el-button
@@ -356,7 +356,7 @@
></el-input> ></el-input>
<div style="display: flex;justify-content: space-between"> <div style="display: flex;justify-content: space-between">
<div style="width: 80%;"> <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>
<div style="width: 20%;"> <div style="width: 20%;">
<el-button <el-button
@@ -381,7 +381,7 @@
></el-input> ></el-input>
<div style="display: flex;justify-content: space-between"> <div style="display: flex;justify-content: space-between">
<div style="width: 80%;"> <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>
<div style="width: 20%;"> <div style="width: 20%;">
<el-button <el-button
@@ -406,7 +406,7 @@
></el-input> ></el-input>
<div style="display: flex;justify-content: space-between"> <div style="display: flex;justify-content: space-between">
<div style="width: 80%;"> <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>
<div style="width: 20%;"> <div style="width: 20%;">
<el-button <el-button
@@ -429,7 +429,7 @@
></el-input> ></el-input>
<div style="display: flex;justify-content: space-between"> <div style="display: flex;justify-content: space-between">
<div style="width: 80%;"> <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>
<div style="width: 20%;"> <div style="width: 20%;">
<el-button <el-button
@@ -452,7 +452,7 @@
></el-input> ></el-input>
<div style="display: flex;justify-content: space-between"> <div style="display: flex;justify-content: space-between">
<div style="width: 80%;"> <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>
<div style="width: 20%;"> <div style="width: 20%;">
<el-button <el-button
@@ -710,7 +710,7 @@
></el-input> ></el-input>
<div style="display: flex;justify-content: space-between"> <div style="display: flex;justify-content: space-between">
<div style="width: 80%;"> <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>
<div style="width: 20%;"> <div style="width: 20%;">
<el-button <el-button
@@ -1047,7 +1047,7 @@
<el-drawer <el-drawer
ref="standard" ref="standard"
title="查询结果" title="查询结果"
size="1300px" size="800px"
:visible.sync="standardDrawer" :visible.sync="standardDrawer"
direction="rtl" direction="rtl"
:before-close="handleReviseDrawerClose"> :before-close="handleReviseDrawerClose">
@@ -1055,7 +1055,8 @@
<div class="content"> <div class="content">
<div class="standard-table-search"> <div class="standard-table-search">
<el-form :model="standardSearchForm" inline class="label-input-form search-area"> <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 <el-select
:popper-append-to-body="false" :popper-append-to-body="false"
v-model="standardSearchForm.standType" v-model="standardSearchForm.standType"
@@ -1064,7 +1065,7 @@
<el-option value="FOREIGN" label="海外标准库"></el-option> <el-option value="FOREIGN" label="海外标准库"></el-option>
</el-select> </el-select>
</el-formItem> </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-select :popper-append-to-body="false" v-model="standardSearchForm.standSort" placeholder="请选择标准类别" filterable clearable>
<el-option <el-option
v-for="item in standSortOptions" v-for="item in standSortOptions"
@@ -1074,20 +1075,21 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </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 <el-input
v-model="standardSearchForm.standNumber" v-model="standardSearchForm.standNumber"
placeholder="请输入标准编号" placeholder="请输入标准编号"
clearable clearable
:maxlength="100"></el-input> :maxlength="100"></el-input>
</el-form-item> </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" <el-input v-model="standardSearchForm.standName"
placeholder="请输入标准名称" placeholder="请输入标准名称"
clearable clearable
:maxlength="500"></el-input> :maxlength="500"></el-input>
</el-form-item> </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 <el-input
v-model="standardSearchForm.standEnName" v-model="standardSearchForm.standEnName"
maxlength="1000" maxlength="1000"
@@ -1137,6 +1139,7 @@
<el-table-column <el-table-column
label="标准号" label="标准号"
align="center" align="center"
min-width="40"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<a v-if="scope.row.standYear" @click="handlePreview(scope.row)"> <a v-if="scope.row.standYear" @click="handlePreview(scope.row)">
@@ -1152,21 +1155,22 @@
<el-table-column <el-table-column
prop="textStatus" prop="textStatus"
label="文本状态" label="文本状态"
align="center"> align="center"
min-width="30">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ textStatusMap[scope.row.textStatus] }}</span> <span>{{ textStatusMap[scope.row.textStatus] }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="80"> <!-- <el-table-column label="操作" align="center" width="80">-->
<template slot-scope="scope"> <!-- <template slot-scope="scope">-->
<el-button <!-- <el-button-->
class="opera-btn" <!-- class="opera-btn"-->
size="mini" <!-- size="mini"-->
type="primary" <!-- type="primary"-->
@click="handlePreview(scope.row)">查看 <!-- @click="handlePreview(scope.row)">查看-->
</el-button> <!-- </el-button>-->
</template> <!-- </template>-->
</el-table-column> <!-- </el-table-column>-->
</el-table> </el-table>
</div> </div>
<pagination <pagination
@@ -1204,7 +1208,7 @@
import ProcessHeader from '../../components/ProcessHeader' import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter' import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle' 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 TreeSelect from '@/components/treeSelect/treeSelect.vue';
import TreeSelectNew from '@/components/treeSelect/treeSelectNew.vue'; import TreeSelectNew from '@/components/treeSelect/treeSelectNew.vue';
import TreeSelectModule from "@/components/treeSelect/treeSelectModule.vue"; import TreeSelectModule from "@/components/treeSelect/treeSelectModule.vue";
@@ -1675,6 +1679,56 @@
}, },
}, },
methods: { 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 () { // choiceZRRS () {
// if (this.userType === 'zrUserId') { // if (this.userType === 'zrUserId') {
// this.roleForm.zrUserId = this.zrUserIds.map(item => item.id).join(",") // this.roleForm.zrUserId = this.zrUserIds.map(item => item.id).join(",")
@@ -1732,6 +1786,34 @@
this.getFormFieldList(mes.form) 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]);
}
}
})
},
// 将文本状态的id与name对应 // 将文本状态的id与name对应
setMap(data){ setMap(data){
data.forEach(item => { data.forEach(item => {
@@ -1822,7 +1904,7 @@
this.verifySarStandard = true this.verifySarStandard = true
this.clearFormData(this.form) this.clearFormData(this.form)
break break
// 带入 // 带入(确认)
case 2: case 2:
if (this.standardCheckedList.length === 1) { if (this.standardCheckedList.length === 1) {
this.$http.get('sarStandardsInfo/sar-standards-info/getStandInfoUpdateById', {id: this.standardCheckedList[0].id}, { this.$http.get('sarStandardsInfo/sar-standards-info/getStandInfoUpdateById', {id: this.standardCheckedList[0].id}, {
@@ -1853,7 +1935,10 @@
this.key3++ this.key3++
this.form.standType = this.form.standInData === '0' ? 'INLAND' : 'FOREIGN' this.form.standType = this.form.standInData === '0' ? 'INLAND' : 'FOREIGN'
this.form.standYear = bringData.standYear ? parseInt(bringData.standYear) : '' 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.prcNum = this.prcNum
this.form.prcName = this.prcName this.form.prcName = this.prcName
this.form['id'] = bringData.id this.form['id'] = bringData.id
@@ -2787,6 +2872,11 @@
<style lang="less" scoped> <style lang="less" scoped>
@import '~@/assets/styles/style'; @import '~@/assets/styles/style';
.bzrkStep1 { .bzrkStep1 {
/deep/ .search-area {
display: contents;
flex-wrap: wrap;
justify-content: space-around;
}
/deep/ .el-upload-dragger { /deep/ .el-upload-dragger {
background-color: #fff; background-color: #fff;
border: 1px dashed #d9d9d9; border: 1px dashed #d9d9d9;
@@ -375,27 +375,20 @@
v-model="form.xgdName" v-model="form.xgdName"
clearable clearable
></el-input> ></el-input>
<div v-if="xgdFileList.length>0"> <div style="display: flex;justify-content: space-between">
<!-- {{ form.xgdName }}--> <div style="width: 80%;">
<el-button <div v-for="(item,index) in xgdFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
type="primary" </div>
class="common-button-primary" <div style="width: 20%;">
size="mini" <el-button
style="margin-left: 10px" type="primary"
@click="fileUpload('xgd')"> class="common-button-primary"
<i class="el-icon-upload el-icon--right"></i> size="mini"
查看已上传的文件 style="margin-left: 10px; margin-top: 11px; float: right;"
</el-button> @click="fileUpload('xgd')">
</div> <i class="el-icon-upload el-icon--right"></i>
<div v-else> </el-button>
<el-button </div>
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('xgd')">
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="发布稿" prop="fbgbjbdName" class="add-form-item form-item-disabled"> <el-form-item label="发布稿" prop="fbgbjbdName" class="add-form-item form-item-disabled">
@@ -405,27 +398,20 @@
v-model="form.fbgbjbdName" v-model="form.fbgbjbdName"
clearable clearable
></el-input> ></el-input>
<div v-if="FBGBJBDFileList.length>0"> <div style="display: flex;justify-content: space-between">
<!-- {{ form.fbgbjbdName }}--> <div style="width: 80%;">
<el-button <div v-for="(item,index) in FBGBJBDFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
type="primary" </div>
class="common-button-primary" <div style="width: 20%;">
size="mini" <el-button
style="margin-left: 10px" type="primary"
@click="fileUpload('fbgbjbd')"> class="common-button-primary"
<i class="el-icon-upload el-icon--right"></i> size="mini"
查看已上传的文件 style="margin-left: 10px; margin-top: 11px; float: right;"
</el-button> @click="fileUpload('fbgbjbd')">
</div> <i class="el-icon-upload el-icon--right"></i>
<div v-else> </el-button>
<el-button </div>
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('fbgbjbd')">
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item v-show="form.standInData === '0'" label="送审稿" prop="ssg" class="add-form-item form-item-disabled"> <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" v-model="form.ssgName"
clearable clearable
></el-input> ></el-input>
<div v-if="ssgFileList.length>0"> <div style="display: flex;justify-content: space-between">
<!-- {{ form.ssgName }}--> <div style="width: 80%;">
<el-button <div v-for="(item,index) in ssgFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
type="primary" </div>
class="common-button-primary" <div style="width: 20%;">
size="mini" <el-button
style="margin-left: 10px" type="primary"
@click="fileUpload('ssg')"> class="common-button-primary"
<i class="el-icon-upload el-icon--right"></i> size="mini"
查看已上传的文件 style="margin-left: 10px; margin-top: 11px; float: right;"
</el-button> @click="fileUpload('ssg')">
</div> <i class="el-icon-upload el-icon--right"></i>
<div v-else> </el-button>
<el-button </div>
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('ssg')">
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="草案" prop="ca" class="add-form-item form-item-disabled"> <el-form-item label="草案" prop="ca" class="add-form-item form-item-disabled">
@@ -465,27 +444,20 @@
v-model="form.caName" v-model="form.caName"
clearable clearable
></el-input> ></el-input>
<div v-if="caFileList.length>0"> <div style="display: flex;justify-content: space-between">
<!-- {{ form.caName }}--> <div style="width: 80%;">
<el-button <div v-for="(item,index) in caFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
type="primary" </div>
class="common-button-primary" <div style="width: 20%;">
size="mini" <el-button
style="margin-left: 10px" type="primary"
@click="fileUpload('ca')"> class="common-button-primary"
<i class="el-icon-upload el-icon--right"></i> size="mini"
查看已上传的文件 style="margin-left: 10px; margin-top: 11px; float: right;"
</el-button> @click="fileUpload('ca')">
</div> <i class="el-icon-upload el-icon--right"></i>
<div v-else> </el-button>
<el-button </div>
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('ca')">
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item v-show="form.standInData === '1'" label="增补件" prop="zbjbd" class="add-form-item form-item-disabled"> <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" v-model="form.zbjbdName"
clearable clearable
></el-input> ></el-input>
<div v-if="zbjbdFileList.length>0"> <div style="display: flex;justify-content: space-between">
<!-- {{ form.zbjbdName }}--> <div style="width: 80%;">
<el-button <div v-for="(item,index) in zbjbdFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
type="primary" </div>
class="common-button-primary" <div style="width: 20%;">
size="mini" <el-button
style="margin-left: 10px" type="primary"
@click="fileUpload('zbjbd')"> class="common-button-primary"
<i class="el-icon-upload el-icon--right"></i> size="mini"
查看已上传的文件 style="margin-left: 10px; margin-top: 11px; float: right;"
</el-button> @click="fileUpload('zbjbd')">
</div> <i class="el-icon-upload el-icon--right"></i>
<div v-else> </el-button>
<el-button </div>
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('zbjbd')">
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
</div> </div>
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -643,27 +608,20 @@
v-model="form.kwjName" v-model="form.kwjName"
clearable clearable
></el-input> ></el-input>
<div v-if="kwjFileList.length>0"> <div style="display: flex;justify-content: space-between">
<!-- {{ form.kwjName }}--> <div style="width: 80%;">
<el-button <div v-for="(item,index) in kwjFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
type="primary" </div>
class="common-button-primary" <div style="width: 20%;">
size="mini" <el-button
style="margin-left: 10px" type="primary"
@click="fileUpload('kwj')"> class="common-button-primary"
<i class="el-icon-upload el-icon--right"></i> size="mini"
查看已上传的文件 style="margin-left: 10px; margin-top: 11px; float: right;"
</el-button> @click="fileUpload('kwj')">
</div> <i class="el-icon-upload el-icon--right"></i>
<div v-else> </el-button>
<el-button </div>
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('kwj')">
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
</div> </div>
</el-form-item> </el-form-item>
<!-- ************************************* 2021/11/9 "解读文件"改为"相关文件"*************************************--> <!-- ************************************* 2021/11/9 "解读文件"改为"相关文件"*************************************-->
@@ -675,27 +633,20 @@
v-model="form.jdwjName" v-model="form.jdwjName"
clearable clearable
></el-input> ></el-input>
<div v-if="jdwjFileList.length>0"> <div style="display: flex;justify-content: space-between">
<!-- {{ form.jdwjName }}--> <div style="width: 80%;">
<el-button <div v-for="(item,index) in jdwjFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
type="primary" </div>
class="common-button-primary" <div style="width: 20%;">
size="mini" <el-button
style="margin-left: 10px" type="primary"
@click="fileUpload('jdwj')"> class="common-button-primary"
<i class="el-icon-upload el-icon--right"></i> size="mini"
查看已上传的文件 style="margin-left: 10px; margin-top: 11px; float: right;"
</el-button> @click="fileUpload('jdwj')">
</div> <i class="el-icon-upload el-icon--right"></i>
<div v-else> </el-button>
<el-button </div>
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('jdwj')">
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item v-show="form.standInData === '0'" label="报批稿" prop="bpg" class="add-form-item form-item-disabled"> <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" v-model="form.bpgName"
clearable clearable
></el-input> ></el-input>
<div v-if="bpgFileList.length>0"> <div style="display: flex;justify-content: space-between">
<!-- {{ form.bpgName }}--> <div style="width: 80%;">
<el-button <div v-for="(item,index) in bpgFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
type="primary" </div>
class="common-button-primary" <div style="width: 20%;">
size="mini" <el-button
style="margin-left: 10px" type="primary"
@click="fileUpload('bpg')"> class="common-button-primary"
<i class="el-icon-upload el-icon--right"></i> size="mini"
查看已上传的文件 style="margin-left: 10px; margin-top: 11px; float: right;"
</el-button> @click="fileUpload('bpg')">
</div> <i class="el-icon-upload el-icon--right"></i>
<div v-else> </el-button>
<el-button </div>
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('bpg')">
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item v-show="form.standInData === '0'" label="征求意见稿" prop="zqyjg" class="add-form-item form-item-disabled"> <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" v-model="form.zqyjgName"
clearable clearable
></el-input> ></el-input>
<div v-if="zqyjgFileList.length>0"> <div style="display: flex;justify-content: space-between">
<!-- {{ form.zqyjgName }}--> <div style="width: 80%;">
<el-button <div v-for="(item,index) in zqyjgFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
type="primary" </div>
class="common-button-primary" <div style="width: 20%;">
size="mini" <el-button
style="margin-left: 10px" type="primary"
@click="fileUpload('zqyjg')"> class="common-button-primary"
<i class="el-icon-upload el-icon--right"></i> size="mini"
查看已上传的文件 style="margin-left: 10px; margin-top: 11px; float: right;"
</el-button> @click="fileUpload('zqyjg')">
</div> <i class="el-icon-upload el-icon--right"></i>
<div v-else> </el-button>
<el-button </div>
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('zqyjg')">
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
</div> </div>
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -999,26 +936,20 @@
v-model="form.glwjName" v-model="form.glwjName"
clearable clearable
></el-input> ></el-input>
<div v-if="glwjFileList.length>0"> <div style="display: flex;justify-content: space-between">
<!-- {{ form.fbgbjbdName }}--> <div style="width: 80%;">
<el-button <div v-for="(item,index) in glwjFileList" :key="index" @click="filePreview(item)" style="color: #409eff;cursor:pointer" class="fileClass">{{ item.name }}</div>
type="primary" </div>
class="common-button-primary" <div style="width: 20%;">
size="mini" <el-button
style="margin-left: 10px" type="primary"
@click="fileUpload('glwj')"> class="common-button-primary"
<i class="el-icon-upload el-icon--right"></i> size="mini"
查看已上传的文件 style="margin-left: 10px; margin-top: 11px; float: right;"
</el-button> @click="fileUpload('glwj')">
</div> <i class="el-icon-upload el-icon--right"></i>
<div v-else> </el-button>
<el-button </div>
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('glwj')">
点击上传
</el-button>
</div> </div>
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -1251,7 +1182,7 @@
:on-remove="removeOneFile" :on-remove="removeOneFile"
:show-file-list="true" :show-file-list="true"
> >
<div style="padding: 20px 0"> <div>
<i class="el-icon-upload" style="color: #3399ff"></i> <i class="el-icon-upload" style="color: #3399ff"></i>
<p>点击或拖拽上传文件</p> <p>点击或拖拽上传文件</p>
</div> </div>
@@ -1386,7 +1317,7 @@ import {
changeAssigneeNew, changeAssigneeNew,
saveTaskForPub, saveTaskForPub,
queryTaskFirst, queryTaskFirst,
saveTaskFirst saveTaskFirst, getBusStandFileByAttId
} from 'api/process' } from 'api/process'
import TreeSelect from '@/components/treeSelect/treeSelect.vue'; import TreeSelect from '@/components/treeSelect/treeSelect.vue';
import TreeSelectNew from '@/components/treeSelect/treeSelectNew.vue'; import TreeSelectNew from '@/components/treeSelect/treeSelectNew.vue';
@@ -1649,6 +1580,56 @@ export default {
}, },
}, },
methods: { 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) { checkedRole (data) {
this.assigneeNewLoading = true this.assigneeNewLoading = true
changeAssigneeNew({ changeAssigneeNew({
@@ -2560,6 +2541,29 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
@import '~@/assets/styles/style'; @import '~@/assets/styles/style';
.bzrkStep4 { .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 { /deep/.el-drawer__container {
.prc-content-border { .prc-content-border {
border: none; border: none;
@@ -423,7 +423,7 @@ export default {
} else { } else {
id = item.oriAttId 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() { addfjList() {
this.$http.get('lawss/sarStandFile/queryFileInfo', { this.$http.get('lawss/sarStandFile/queryFileInfo', {
@@ -275,7 +275,7 @@ export default {
} else { } else {
id = item.oriAttId 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 () { getHistoryData () {
this.$http.get('lawss/activiti/get_list_by_instance', { this.$http.get('lawss/activiti/get_list_by_instance', {
@@ -422,7 +422,7 @@ export default {
} else { } else {
id = item.oriAttId 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() { addfjList() {
this.$http.get('lawss/sarStandFile/queryFileInfo', { this.$http.get('lawss/sarStandFile/queryFileInfo', {
@@ -249,7 +249,7 @@ export default {
} else { } else {
id = item.oriAttId 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() { getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", { this.$http.get("lawss/activiti/get_list_by_instance", {
@@ -340,7 +340,7 @@ export default {
} else { } else {
id = item.oriAttId 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() { getHistoryData() {
this.$http.get('lawss/activiti/get_list_by_instance', { this.$http.get('lawss/activiti/get_list_by_instance', {
@@ -313,7 +313,7 @@ export default {
} else { } else {
id = item.oriAttId 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() { getHistoryData() {
this.$http.get('lawss/activiti/get_list_by_instance', { this.$http.get('lawss/activiti/get_list_by_instance', {
@@ -353,7 +353,7 @@ export default {
} else { } else {
id = item.oriAttId 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() { getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", { this.$http.get("lawss/activiti/get_list_by_instance", {
@@ -337,7 +337,7 @@ export default {
} else { } else {
id = item.oriAttId 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() { getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", { this.$http.get("lawss/activiti/get_list_by_instance", {
@@ -334,7 +334,7 @@ export default {
} else { } else {
id = item.oriAttId 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() { getHistoryData() {
this.$http.get('lawss/activiti/get_list_by_instance', { this.$http.get('lawss/activiti/get_list_by_instance', {
@@ -334,7 +334,7 @@ export default {
} else { } else {
id = item.oriAttId 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() { getHistoryData() {
this.$http.get('lawss/activiti/get_list_by_instance', { this.$http.get('lawss/activiti/get_list_by_instance', {
@@ -334,7 +334,7 @@ export default {
} else { } else {
id = item.oriAttId 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() { getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", { 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-option label="未制定" value="未制定"></el-option>
</el-select> </el-select>
</el-form-item> </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 <el-input
readonly readonly
v-model="qbfsForm.resPerson" v-model="qbfsForm.resPersonName"
placeholder="请输入评审责任人" placeholder="请输入评审责任人"
clearable clearable
></el-input> ></el-input>
@@ -70,18 +70,18 @@
<el-option label="完成" value="完成"></el-option> <el-option label="完成" value="完成"></el-option>
</el-select> </el-select>
</el-form-item> </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 <el-input
readonly readonly
v-model="qbfsForm.drafter" v-model="qbfsForm.drafterName"
placeholder="请输入起草人" placeholder="请输入起草人"
clearable clearable
></el-input> ></el-input>
</el-form-item> </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 <el-input
readonly readonly
v-model="qbfsForm.wgLeader" v-model="qbfsForm.wgLeaderName"
placeholder="请输入工作组组长" placeholder="请输入工作组组长"
clearable clearable
></el-input> ></el-input>
@@ -181,17 +181,17 @@
label="制修订状态"> label="制修订状态">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="drafter" prop="drafterName"
align="center" align="center"
label="起草人"> label="起草人">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="resPerson" prop="resPersonName"
align="center" align="center"
label="评审责任人"> label="评审责任人">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="wgLeader" prop="wgLeaderName"
align="center" align="center"
label="工作组组长"> label="工作组组长">
</el-table-column> </el-table-column>
@@ -305,7 +305,7 @@ export default {
// //
getStandDataBtn(){ getStandDataBtn(){
this.$http.post('esRevisePlan/es-revise-plan/queryAllPlans',{ this.$http.post('esRevisePlan/es-revise-plan/queryAllPlans',{
reviseStatus: this.standardSearch.reviseStatus, reviseStatus: this.standardSearch.reviseStatus || '',
esName: this.standardSearch.standName, esName: this.standardSearch.standName,
page: this.page, page: this.page,
pageSize: this.pageSize, pageSize: this.pageSize,
@@ -336,15 +336,16 @@ export default {
}else if(this.selectList.length < 1){ }else if(this.selectList.length < 1){
this.$message.warning('请至少选择一条数据进行带入') this.$message.warning('请至少选择一条数据进行带入')
}else{ }else{
this.qbfsForm.esId = this.selectList[0].id
this.qbfsForm.esName = this.selectList[0].esName this.qbfsForm.esName = this.selectList[0].esName
this.qbfsForm.draftTime = this.selectList[0].draftTime 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.planStatus = this.selectList[0].planStatus
this.qbfsForm.releaseTime = this.selectList[0].releaseTime 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.reviseStatus = this.selectList[0].reviseStatus
this.qbfsForm.unit = this.selectList[0].unit this.qbfsForm.unit = this.selectList[0].unit
this.qbfsForm.wgLeader = this.selectList[0].wgLeader this.qbfsForm.wgLeaderName = this.selectList[0].wgLeaderName
this.ListModel = false this.ListModel = false
} }
}, },
@@ -37,10 +37,10 @@
<el-option label="未制定" value="未制定"></el-option> <el-option label="未制定" value="未制定"></el-option>
</el-select> </el-select>
</el-form-item> </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 <el-input
readonly readonly
v-model="qbfsForm.resPerson" v-model="qbfsForm.resPersonName"
placeholder="请输入评审责任人" placeholder="请输入评审责任人"
clearable clearable
></el-input> ></el-input>
@@ -78,18 +78,18 @@
<el-option label="完成" value="完成"></el-option> <el-option label="完成" value="完成"></el-option>
</el-select> </el-select>
</el-form-item> </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 <el-input
readonly readonly
v-model="qbfsForm.drafter" v-model="qbfsForm.drafterName"
placeholder="请输入起草人" placeholder="请输入起草人"
clearable clearable
></el-input> ></el-input>
</el-form-item> </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 <el-input
readonly readonly
v-model="qbfsForm.wgLeader" v-model="qbfsForm.wgLeaderName"
placeholder="请输入工作组组长" placeholder="请输入工作组组长"
clearable clearable
></el-input> ></el-input>
@@ -197,17 +197,17 @@
label="制修订状态"> label="制修订状态">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="drafter" prop="drafterName"
align="center" align="center"
label="起草人"> label="起草人">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="resPerson" prop="resPersonName"
align="center" align="center"
label="评审责任人"> label="评审责任人">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="wgLeader" prop="wgLeaderName"
align="center" align="center"
label="工作组组长"> label="工作组组长">
</el-table-column> </el-table-column>
@@ -327,7 +327,7 @@ export default {
// //
getStandDataBtn(){ getStandDataBtn(){
this.$http.post('esRevisePlan/es-revise-plan/queryAllPlans',{ this.$http.post('esRevisePlan/es-revise-plan/queryAllPlans',{
reviseStatus: this.standardSearch.reviseStatus, reviseStatus: this.standardSearch.reviseStatus || '',
esName: this.standardSearch.standName, esName: this.standardSearch.standName,
page: this.page, page: this.page,
pageSize: this.pageSize, pageSize: this.pageSize,
@@ -358,15 +358,16 @@ export default {
}else if(this.selectList.length < 1){ }else if(this.selectList.length < 1){
this.$message.warning('请至少选择一条数据进行带入') this.$message.warning('请至少选择一条数据进行带入')
}else{ }else{
this.qbfsForm.esId = this.selectList[0].id
this.qbfsForm.esName = this.selectList[0].esName this.qbfsForm.esName = this.selectList[0].esName
this.qbfsForm.draftTime = this.selectList[0].draftTime 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.planStatus = this.selectList[0].planStatus
this.qbfsForm.releaseTime = this.selectList[0].releaseTime 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.reviseStatus = this.selectList[0].reviseStatus
this.qbfsForm.unit = this.selectList[0].unit this.qbfsForm.unit = this.selectList[0].unit
this.qbfsForm.wgLeader = this.selectList[0].wgLeader this.qbfsForm.wgLeaderName = this.selectList[0].wgLeaderName
this.ListModel = false this.ListModel = false
} }
}, },
@@ -1,91 +1,146 @@
<template> <template>
<div> <div>
<process-title> <process-title>
<template slot="title">立项信息</template> <template slot="title">立项信息</template>
</process-title> </process-title>
<el-form :model="qbfsForm" class="label-input-form prc-content-border" <el-form :model="qbfsForm" class="label-input-form prc-content-border"
label-width="150px" :rules="qbfsFormRules" ref="qbfsForm"> label-width="150px" :rules="qbfsFormRules" ref="qbfsForm">
<el-form-item v-if="false" label="" prop="type" class="add-form-item form-item-disabled"> <el-form-item v-if="false" label="" prop="type" class="add-form-item form-item-disabled">
<el-input <el-input
v-model="qbfsForm.type" v-model="qbfsForm.type"
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="esName" label="企标名称" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled"> <el-form-item prop="esName" label="企标名称" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
<el-input <el-input
v-model="qbfsForm.esName" v-model="qbfsForm.esName"
placeholder="请输入企标名称" placeholder="请输入企标名称"
:maxlength="500"/> :maxlength="500"/>
</el-form-item> </el-form-item>
<el-form-item prop="planStatus" label="计划状态" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled"> <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-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-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-select>
</el-form-item> <div slot="footer" class="demo-drawer-footer">
<el-form-item prop="reviseStatus" label="制修订状态" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled"> <el-button size="mini" type="primary" class="common-button-default" icon="el-icon-check"
<el-select v-model="qbfsForm.reviseStatus" placeholder="请选择制修订状态"> @click="QCDWOK">确认
<el-option label="制定完成" value="制定完成"></el-option> </el-button>
<el-option label="制定中" value="制定中"></el-option> </div>
<el-option label="未制定" value="未制定"></el-option> </el-dialog>
</el-select> </div>
</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>
</template> </template>
<script> <script>
@@ -100,6 +155,17 @@ export default {
props: ['message'], props: ['message'],
data(){ data(){
return { return {
QCDWmodal: false,
QCDWValue: [],
QCDWList: [],
drawerTitle2: '',
drawerTitle: '',
roleType: '',
modalshowflag2: false,
modalshowflag: false,
nodeList2: [],
nodeList: [],
qcdwOptions: [],
qbfsForm: { qbfsForm: {
type: '5', type: '5',
unit: '', // unit: '', //
@@ -107,10 +173,13 @@ export default {
planStatus: '', // planStatus: '', //
reviseStatus: '', // reviseStatus: '', //
resPerson: '', // resPerson: '', //
resPersonName: '',
wgLeader: '', // wgLeader: '', //
wgLeaderName: '',
draftTime: '', // 稿 draftTime: '', // 稿
releaseTime: '', // releaseTime: '', //
drafter: '', // drafter: '', //
drafterName: '',
newReason: '', // newReason: '', //
// remarks: '', // // remarks: '', //
}, },
@@ -127,10 +196,10 @@ export default {
reviseStatus: [ reviseStatus: [
{required: true, message: '请选择制修订状态', trigger: 'change'}, {required: true, message: '请选择制修订状态', trigger: 'change'},
], ],
resPerson: [ resPersonName: [
{required: true, message: '请输入评审责任人', trigger: 'blur'}, {required: true, message: '请输入评审责任人', trigger: 'blur'},
], ],
wgLeader: [ wgLeaderName: [
{required: true, message: '请输入工作组组长', trigger: 'blur'}, {required: true, message: '请输入工作组组长', trigger: 'blur'},
], ],
draftTime: [ draftTime: [
@@ -139,7 +208,7 @@ export default {
releaseTime: [ releaseTime: [
{required: true, message: '请输入计划标准发布时间', trigger: 'blur'}, {required: true, message: '请输入计划标准发布时间', trigger: 'blur'},
], ],
drafter: [ drafterName: [
{required: true, message: '请输入起草人', trigger: 'blur'}, {required: true, message: '请输入起草人', trigger: 'blur'},
], ],
newReason: [ 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: { 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 () { validateForm () {
let flag = null let flag = null
this.$refs['qbfsForm'].validate((valid) => { this.$refs['qbfsForm'].validate((valid) => {
@@ -170,7 +308,7 @@ export default {
}) })
return flag return flag
} }
} },
}; };
</script> </script>
@@ -3,86 +3,48 @@
<process-title> <process-title>
<template slot="title">合并企标信息</template> <template slot="title">合并企标信息</template>
</process-title> </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 <el-form
ref="qbfsForm" ref="qbfsForm"
:model="qbfsForm" :model="qbfsForm"
:rules="formRules" :rules="qbfsFormRules"
class="label-input-form prc-content-border" class="label-input-form prc-content-border"
label-width="150px" label-width="150px"
> >
<div v-if="foldFormFlag"> <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-row :gutter="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item v-if="false" label="" prop="type" class="add-form-item form-item-disabled"> <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-option label="未制定" value="未制定"></el-option>
</el-select> </el-select>
</el-form-item> </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 <el-input v-model="qbfsForm.resPerson" style="display: none;"></el-input>
v-model="qbfsForm.resPerson" <el-input v-model="qbfsForm.resPersonName" placeholder="请选择评审责任人"
placeholder="请输入评审责任人" @click.native="choiceZRRS('2')">
clearable </el-input>
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="初稿完成时间" prop="draftTime" class="add-form-item form-item-disabled"> <el-form-item label="初稿完成时间" prop="draftTime" class="add-form-item form-item-disabled">
<el-date-picker <el-date-picker
@@ -120,12 +81,21 @@
placeholder="请选择初稿完成时间"> placeholder="请选择初稿完成时间">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="起草责任单位" prop="unit" class="add-form-item form-item-disabled"> <el-form-item label="起草责任单位" style="width: 100%; margin-right:10px" class="add-form-item" prop="unit" >
<el-input <div style="display: flex;justify-content: space-between;align-items: center;">
v-model="qbfsForm.unit" <el-input
placeholder="请输入起草责任单位" clearable
clearable v-model="qbfsForm.unit"
></el-input> 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>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@@ -136,19 +106,16 @@
<el-option label="完成" value="完成"></el-option> <el-option label="完成" value="完成"></el-option>
</el-select> </el-select>
</el-form-item> </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 <el-input v-model="qbfsForm.drafter" style="display: none;"></el-input>
v-model="qbfsForm.drafter" <el-input v-model="qbfsForm.drafterName" placeholder="请选择起草人"
placeholder="请输入起草人" @click.native="choiceZRRS('1')">
clearable </el-input>
></el-input>
</el-form-item> </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 <el-input v-model="qbfsForm.wgLeader" style="display: none;"></el-input>
v-model="qbfsForm.wgLeader" <el-input v-model="qbfsForm.wgLeaderName" placeholder="请选择工作组组长"
placeholder="请输入工作组组长" @click.native="choiceZRR"></el-input>
clearable
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="标准发布时间" prop="releaseTime" class="add-form-item form-item-disabled"> <el-form-item label="标准发布时间" prop="releaseTime" class="add-form-item form-item-disabled">
<el-date-picker <el-date-picker
@@ -245,17 +212,17 @@
label="制修订状态"> label="制修订状态">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="drafter" prop="drafterName"
align="center" align="center"
label="起草人"> label="起草人">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="resPerson" prop="resPersonName"
align="center" align="center"
label="评审责任人"> label="评审责任人">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="wgLeader" prop="wgLeaderName"
align="center" align="center"
label="工作组组长"> label="工作组组长">
</el-table-column> </el-table-column>
@@ -296,6 +263,41 @@
<el-button type="primary" size="mini" @click="OkDrawer">带入</el-button> <el-button type="primary" size="mini" @click="OkDrawer">带入</el-button>
</div> </div>
</el-drawer> </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> </div>
</template> </template>
@@ -310,6 +312,17 @@ export default {
props: ['message'], props: ['message'],
data(){ data(){
return { return {
QCDWmodal: false,
QCDWValue: [],
QCDWList: [],
drawerTitle2: '',
drawerTitle: '',
type: '',
modalshowflag2: false,
modalshowflag: false,
nodeList2: [],
nodeList: [],
qcdwOptions: [],
standShow: false, standShow: false,
standShow2: false, standShow2: false,
ListModel: false, ListModel: false,
@@ -319,7 +332,44 @@ export default {
total: 0, total: 0,
pageSize: this.$store.getters.userInfo.configContent, pageSize: this.$store.getters.userInfo.configContent,
selectList: [], 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: [], standinfoList: [],
standardSearch: { standardSearch: {
reviseStatus: "", reviseStatus: "",
@@ -334,6 +384,9 @@ export default {
isSubTime: "", isSubTime: "",
mergeReason: "", mergeReason: "",
company: "", company: "",
resPersonName: '',
drafterName: '',
wgLeaderName:'',
groupLeader: "", groupLeader: "",
drafterPeople: "", drafterPeople: "",
formulateStatus: "", formulateStatus: "",
@@ -357,21 +410,16 @@ export default {
reviewDate: '', reviewDate: '',
abolishCause:'', abolishCause:'',
}, },
qbzxdForm2: {
standCode: "",
standName: "",
enName: '',
entCategory: '',
replaceNumber: '',
replacedNumber: '',
releaseDate: '',
implementDate: '',
reviewDate: '',
abolishCause:'',
},
} }
}, },
mounted() { mounted() {
//
this.$http.get('sys/dictype/getDicTypeListCode', '',{
_this: this
}, res => {
console.log(res);
this.qcdwOptions = res.data.QCDW //
})
this.getStandDataBtn() this.getStandDataBtn()
}, },
@@ -385,6 +433,66 @@ export default {
} }
}, },
methods: { 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 () { validateForm () {
let flag = null let flag = null
this.$refs['qbfsForm'].validate((valid) => { this.$refs['qbfsForm'].validate((valid) => {
@@ -418,14 +526,16 @@ export default {
this.$message.warning('请至少选择一条数据进行带入') this.$message.warning('请至少选择一条数据进行带入')
}else{ }else{
if(this.showType === 'one'){ if(this.showType === 'one'){
this.qbzxdForm.esName = this.selectList[0].esName || '--' this.qbfsForm.esId1 = this.selectList[0].id || '--'
this.qbzxdForm.planStatus = this.selectList[0].planStatus || '--' this.qbfsForm.esName1 = this.selectList[0].esName || '--'
this.qbzxdForm.reviseStatus = this.selectList[0].reviseStatus || '--' this.qbfsForm.planStatus1 = this.selectList[0].planStatus || '--'
this.qbfsForm.reviseStatus1 = this.selectList[0].reviseStatus || '--'
this.standShow = true this.standShow = true
}else{ }else{
this.qbzxdForm2.esName = this.selectList[0].esName || '--' this.qbfsForm.esId2 = this.selectList[0].id || '--'
this.qbzxdForm2.planStatus = this.selectList[0].planStatus || '--' this.qbfsForm.esName2 = this.selectList[0].esName || '--'
this.qbzxdForm2.reviseStatus = this.selectList[0].reviseStatus || '--' this.qbfsForm.planStatus2 = this.selectList[0].planStatus || '--'
this.qbfsForm.reviseStatus2= this.selectList[0].reviseStatus || '--'
this.standShow2 = true this.standShow2 = true
} }
this.ListModel = false this.ListModel = false
@@ -434,7 +544,7 @@ export default {
// //
getStandDataBtn(){ getStandDataBtn(){
this.$http.post('esRevisePlan/es-revise-plan/queryAllPlans',{ this.$http.post('esRevisePlan/es-revise-plan/queryAllPlans',{
reviseStatus: this.standardSearch.reviseStatus, reviseStatus: this.standardSearch.reviseStatus || '',
esName: this.standardSearch.standName, esName: this.standardSearch.standName,
page: this.page, page: this.page,
pageSize: this.pageSize, pageSize: this.pageSize,
@@ -37,10 +37,10 @@
<el-option label="未制定" value="未制定"></el-option> <el-option label="未制定" value="未制定"></el-option>
</el-select> </el-select>
</el-form-item> </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 <el-input
readonly readonly
v-model="qbfsForm.resPerson" v-model="qbfsForm.resPersonName"
placeholder="请输入评审责任人" placeholder="请输入评审责任人"
clearable clearable
></el-input> ></el-input>
@@ -69,18 +69,18 @@
<el-option label="完成" value="完成"></el-option> <el-option label="完成" value="完成"></el-option>
</el-select> </el-select>
</el-form-item> </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 <el-input
readonly readonly
v-model="qbfsForm.drafter" v-model="qbfsForm.drafterName"
placeholder="请输入起草人" placeholder="请输入起草人"
clearable clearable
></el-input> ></el-input>
</el-form-item> </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 <el-input
readonly readonly
v-model="qbfsForm.wgLeader" v-model="qbfsForm.wgLeaderName"
placeholder="请输入工作组组长" placeholder="请输入工作组组长"
clearable clearable
></el-input> ></el-input>
@@ -188,17 +188,17 @@
label="制修订状态"> label="制修订状态">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="drafter" prop="drafterName"
align="center" align="center"
label="起草人"> label="起草人">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="resPerson" prop="resPersonName"
align="center" align="center"
label="评审责任人"> label="评审责任人">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="wgLeader" prop="wgLeaderName"
align="center" align="center"
label="工作组组长"> label="工作组组长">
</el-table-column> </el-table-column>
@@ -315,7 +315,7 @@ export default {
// //
getStandDataBtn(){ getStandDataBtn(){
this.$http.post('esRevisePlan/es-revise-plan/queryAllPlans',{ this.$http.post('esRevisePlan/es-revise-plan/queryAllPlans',{
reviseStatus: this.standardSearch.reviseStatus, reviseStatus: this.standardSearch.reviseStatus || '',
esName: this.standardSearch.standName, esName: this.standardSearch.standName,
page: this.page, page: this.page,
pageSize: this.pageSize, pageSize: this.pageSize,
@@ -346,15 +346,16 @@ export default {
}else if(this.selectList.length < 1){ }else if(this.selectList.length < 1){
this.$message.warning('请至少选择一条数据进行带入') this.$message.warning('请至少选择一条数据进行带入')
}else{ }else{
this.qbfsForm.esId = this.selectList[0].id
this.qbfsForm.esName = this.selectList[0].esName this.qbfsForm.esName = this.selectList[0].esName
this.qbfsForm.draftTime = this.selectList[0].draftTime 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.planStatus = this.selectList[0].planStatus
this.qbfsForm.releaseTime = this.selectList[0].releaseTime 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.reviseStatus = this.selectList[0].reviseStatus
this.qbfsForm.unit = this.selectList[0].unit this.qbfsForm.unit = this.selectList[0].unit
this.qbfsForm.wgLeader = this.selectList[0].wgLeader this.qbfsForm.wgLeaderName = this.selectList[0].wgLeaderName
this.ListModel = false this.ListModel = false
} }
}, },
@@ -268,6 +268,7 @@ export default {
}, },
data() { data() {
return { return {
comFlag: 0,
active: "1", active: "1",
commentText: "", commentText: "",
comName: "merge", comName: "merge",
@@ -380,7 +381,7 @@ export default {
toggleComName(name) { toggleComName(name) {
this.comName = name; this.comName = name;
if(this.comName === 'merge'){ if(this.comName === 'merge'){
this.$refs["childForm"].qbfsForm = '1' this.$refs["childForm"].qbfsForm.type = '1'
}else if(this.comName === 'delay'){ }else if(this.comName === 'delay'){
this.$refs["childForm"].qbfsForm.type = '2' this.$refs["childForm"].qbfsForm.type = '2'
}else if(this.comName === 'cancel'){ }else if(this.comName === 'cancel'){
@@ -390,7 +391,6 @@ export default {
}else if(this.comName === 'establish'){ }else if(this.comName === 'establish'){
this.$refs["childForm"].qbfsForm.type = '5' this.$refs["childForm"].qbfsForm.type = '5'
} }
}, },
// //
handleSave() { handleSave() {
@@ -414,22 +414,74 @@ export default {
this.saveLoading = false 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() { handleSubmit() {
if (this.$route.query.prcNum === undefined) { if(this.$refs["childForm"].qbfsForm.type === undefined){
let flag = this.$refs["childForm"].validateForm(); this.$refs["childForm"].qbfsForm.type = '1'
let qbzxdFrom = this.$refs["childForm"].qbfsForm; }
if (flag) { this.repeatName()
this.$refs["roleForm"].validate((valid) => { if(this.comFlag === '0'){
if (valid) { this.$message.warning('请更改企标名称')
this.isSubmit = true; }else {
var json = Object.assign(qbzxdFrom, this.roleForm); if (this.$route.query.prcNum === undefined) {
this.$http.get("lawss/activiti/startProcess", { type: "25" }, { let flag = this.$refs["childForm"].validateForm();
_this: this let qbzxdFrom = this.$refs["childForm"].qbfsForm;
}, res => { if (flag) {
if (res.ok) { 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", { this.$http.post("lawss/activiti/completeTask", {
taskIds: res.data, taskIds: this.$route.query.taskIds,
userId: this.$store.getters.userInfo.userId, userId: this.$store.getters.userInfo.userId,
json: JSON.stringify(json) json: JSON.stringify(json)
}, { }, {
@@ -441,46 +493,15 @@ export default {
this.$router.push({ path: "/processCenter?tabsName=ProcessCenter" }); this.$router.push({ path: "/processCenter?tabsName=ProcessCenter" });
} }
}); });
} else {
this.$message.warning("请完善人员信息");
} }
}); });
} else { } 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) { choiceZRR(type, title, id) {
@@ -36,21 +36,21 @@
<el-option label="未制定" value="未制定"></el-option> <el-option label="未制定" value="未制定"></el-option>
</el-select> </el-select>
</el-form-item> </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 <el-input
disabled disabled
v-model="qbfsForm.drafter" v-model="qbfsForm.drafter"
placeholder="请输入起草人" placeholder="请输入起草人"
:maxlength="500"/> :maxlength="500"/>
</el-form-item> </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 <el-input
disabled disabled
v-model="qbfsForm.resPerson" v-model="qbfsForm.resPerson"
placeholder="请输入评审责任人" placeholder="请输入评审责任人"
:maxlength="500"/> :maxlength="500"/>
</el-form-item> </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 <el-input
disabled disabled
v-model="qbfsForm.wgLeader" v-model="qbfsForm.wgLeader"
@@ -148,7 +148,7 @@
</div> </div>
<div> <div>
<el-collapse accordion> <el-collapse accordion>
<el-collapse-item title="回执说明"> <el-collapse-item title="审批意见">
<div style="margin: 10px 0;"> <div style="margin: 10px 0;">
<el-input <el-input
type="textarea" type="textarea"
@@ -391,26 +391,29 @@ export default {
}); });
}, },
beforeBack(){ beforeBack(){
this.isSubmit = true if(!this.commentText){
this.qbfsForm.passFlag = '1' this.$message.warning('请填写审批意见')
this.qbfsForm.commentText = this.commentText }else{
let json = JSON.stringify(this.qbfsForm); this.isSubmit = true
this.$http.post('lawss/activiti/completeTask', { this.qbfsForm.passFlag = '1'
taskIds: this.$route.query.taskIds, this.qbfsForm.commentText = this.commentText
userId: this.$store.getters.userInfo.userId, let json = JSON.stringify(this.qbfsForm);
json: json, this.$http.post('lawss/activiti/completeTask', {
}, { taskIds: this.$route.query.taskIds,
_this: this userId: this.$store.getters.userInfo.userId,
}, res => { json: json,
if (res.success) { }, {
this.$message.success(res.message) _this: this
this.$router.push('/processCenter') }, res => {
} if (res.success) {
this.isSubmit = false this.$message.success(res.message)
}, e => { this.$router.push('/processCenter')
}); }
this.isSubmit = false
}, e => {
});
}
}, },
}, },
}; };
</script> </script>
@@ -148,7 +148,7 @@
</div> </div>
<div> <div>
<el-collapse accordion> <el-collapse accordion>
<el-collapse-item title="回执说明"> <el-collapse-item title="审批意见">
<div style="margin: 10px 0;"> <div style="margin: 10px 0;">
<el-input <el-input
type="textarea" type="textarea"
@@ -391,26 +391,29 @@ export default {
}); });
}, },
beforeBack(){ beforeBack(){
this.isSubmit = true if(!this.commentText){
this.qbfsForm.deptCenterFlag = '1' this.$message.warning('请填写审批意见')
this.qbfsForm.commentText = this.commentText }else{
let json = JSON.stringify(this.qbfsForm); this.isSubmit = true
this.$http.post('lawss/activiti/completeTask', { this.qbfsForm.deptCenterFlag = '1'
taskIds: this.$route.query.taskIds, this.qbfsForm.commentText = this.commentText
userId: this.$store.getters.userInfo.userId, let json = JSON.stringify(this.qbfsForm);
json: json, this.$http.post('lawss/activiti/completeTask', {
}, { taskIds: this.$route.query.taskIds,
_this: this userId: this.$store.getters.userInfo.userId,
}, res => { json: json,
if (res.success) { }, {
this.$message.success(res.message) _this: this
this.$router.push('/processCenter') }, res => {
} if (res.success) {
this.isSubmit = false this.$message.success(res.message)
}, e => { this.$router.push('/processCenter')
}); }
this.isSubmit = false
}, e => {
});
}
}, },
}, },
}; };
</script> </script>
@@ -148,7 +148,7 @@
</div> </div>
<div> <div>
<el-collapse accordion> <el-collapse accordion>
<el-collapse-item title="回执说明"> <el-collapse-item title="审批意见">
<div style="margin: 10px 0;"> <div style="margin: 10px 0;">
<el-input <el-input
type="textarea" type="textarea"
@@ -391,24 +391,28 @@ export default {
}); });
}, },
beforeBack(){ beforeBack(){
this.isSubmit = true if(!this.commentText){
this.qbfsForm.bzFlag = '1' this.$message.warning('请填写审批意见')
this.qbfsForm.commentText = this.commentText }else{
let json = JSON.stringify(this.qbfsForm); this.isSubmit = true
this.$http.post('lawss/activiti/completeTask', { this.qbfsForm.bzFlag = '1'
taskIds: this.$route.query.taskIds, this.qbfsForm.commentText = this.commentText
userId: this.$store.getters.userInfo.userId, let json = JSON.stringify(this.qbfsForm);
json: json, this.$http.post('lawss/activiti/completeTask', {
}, { taskIds: this.$route.query.taskIds,
_this: this userId: this.$store.getters.userInfo.userId,
}, res => { json: json,
if (res.success) { }, {
this.$message.success(res.message) _this: this
this.$router.push('/processCenter') }, res => {
} if (res.success) {
this.isSubmit = false this.$message.success(res.message)
}, e => { this.$router.push('/processCenter')
}); }
this.isSubmit = false
}, e => {
});
}
}, },
}, },
@@ -148,7 +148,7 @@
</div> </div>
<div> <div>
<el-collapse accordion> <el-collapse accordion>
<el-collapse-item title="回执说明"> <el-collapse-item title="审批意见">
<div style="margin: 10px 0;"> <div style="margin: 10px 0;">
<el-input <el-input
type="textarea" type="textarea"
@@ -391,24 +391,28 @@ export default {
}); });
}, },
beforeBack(){ beforeBack(){
this.isSubmit = true if(!this.commentText){
this.qbfsForm.bzfgbzFlag = '1' this.$message.warning('请填写审批意见')
this.qbfsForm.commentText = this.commentText }else{
let json = JSON.stringify(this.qbfsForm); this.isSubmit = true
this.$http.post('lawss/activiti/completeTask', { this.qbfsForm.bzfgbzFlag = '1'
taskIds: this.$route.query.taskIds, this.qbfsForm.commentText = this.commentText
userId: this.$store.getters.userInfo.userId, let json = JSON.stringify(this.qbfsForm);
json: json, this.$http.post('lawss/activiti/completeTask', {
}, { taskIds: this.$route.query.taskIds,
_this: this userId: this.$store.getters.userInfo.userId,
}, res => { json: json,
if (res.success) { }, {
this.$message.success(res.message) _this: this
this.$router.push('/processCenter') }, res => {
} if (res.success) {
this.isSubmit = false this.$message.success(res.message)
}, e => { this.$router.push('/processCenter')
}); }
this.isSubmit = false
}, e => {
});
}
}, },
}, },
@@ -239,7 +239,7 @@
@pageSizeChange="pageSizeChange"/> @pageSizeChange="pageSizeChange"/>
<div class="demo-drawer-footer"> <div class="demo-drawer-footer">
<el-button size="mini" @click="closeDrawer">取消</el-button> <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> </div>
</el-drawer> </el-drawer>
<ProcessFooter <ProcessFooter
@@ -13,72 +13,6 @@
<ProcessTitle> <ProcessTitle>
<template slot="title">基础信息</template> <template slot="title">基础信息</template>
</ProcessTitle> </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"> <div class="content-center">
<el-button <el-button
style="text-align: end" style="text-align: end"
@@ -301,6 +235,9 @@ export default {
} }
}, },
methods: { methods: {
phoneClick () {
this.$router.push('/phoneWfhxStep4')
},
processTable() { processTable() {
this.$http.get("lawss/activiti/get_list_by_instance", { this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum, prcNum: this.$route.query.prcNum,
@@ -326,14 +263,15 @@ export default {
}, },
getFormFieldList (item) { getFormFieldList (item) {
this.$nextTick(() => { this.$nextTick(() => {
if (item.passInfo !== undefined) { if (item.passInfo !== 0) {
this.passInfo = JSON.parse(JSON.stringify(item)).passInfo this.passInfo = JSON.parse(JSON.stringify(item)).passInfo
} } else {
let fileData = JSON.parse(JSON.stringify(item)).dockUserList let fileData = JSON.parse(JSON.stringify(item)).dockUserList
for (let i = 0; i<fileData.length; i++) { for (let i = 0; i<fileData.length; i++) {
if (fileData[i].name === this.$store.getters.userInfo.userName) { if (fileData[i].name.slice(0,fileData[i].name.indexOf('(')) === this.$store.getters.userInfo.userName) {
this.dataList = fileData[i].standardInfoList this.dataList = fileData[i].standardInfoList
this.standardInfoList = this.dataList this.standardInfoList = this.dataList
}
} }
} }
}) })
@@ -13,72 +13,6 @@
<ProcessTitle> <ProcessTitle>
<template slot="title">基础信息</template> <template slot="title">基础信息</template>
</ProcessTitle> </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 <el-table
:data="dataList" :data="dataList"
border border
@@ -310,7 +310,7 @@
:rows="3" :rows="3"
resize="none" resize="none"
placeholder="请输入意见" placeholder="请输入意见"
v-model="commentText"> v-model.trim="commentText">
</el-input> </el-input>
</div> </div>
</el-collapse-item> </el-collapse-item>
@@ -96,15 +96,15 @@
</el-form-item> </el-form-item>
</el-card> </el-card>
</el-timeline-item> </el-timeline-item>
<el-timeline-item timestamp="选择确认人" placement="top" <el-timeline-item timestamp="选择产品工程经理" placement="top"
:color="roleForm.confirmId ? '#66b1ff' : ''"> :color="roleForm.confirmId ? '#66b1ff' : ''">
<el-card> <el-card>
<el-form-item prop="confirmName" style="margin-bottom: 0"> <el-form-item prop="confirmName" style="margin-bottom: 0">
<h4>确认人</h4> <h4>产品工程经理</h4>
<div style="margin-top: 10px;width: 300px;"> <div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.confirmId" style="display: none;"></el-input> <el-input v-model="roleForm.confirmId" style="display: none;"></el-input>
<el-input v-model="roleForm.confirmName" placeholder="选择确认人" <el-input v-model="roleForm.confirmName" placeholder="选择产品工程经理"
@click.native="choiceZRR('confirmId', '选择确认人', roleForm.confirmId)"></el-input> @click.native="choiceZRR('confirmId', '选择产品工程经理', roleForm.confirmId)"></el-input>
</div> </div>
</el-form-item> </el-form-item>
</el-card> </el-card>
@@ -449,7 +449,7 @@ export default {
// //
roleFormRules: { roleFormRules: {
confirmName: [ 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("createUserName", this.$store.getters.userInfo.userName);
_formData.append("prcType", "10"); _formData.append("prcType", "10");
_formData.append("json", JSON.stringify({ _formData.append("json", JSON.stringify({
taskInfo: "确认人确认", taskInfo: "产品经理分发",
form: this.qdform, form: this.qdform,
roleForm: this.roleForm, roleForm: this.roleForm,
commentText: this.commentText commentText: this.commentText
@@ -80,7 +80,7 @@
prop="standName" prop="standName"
align="center" align="center"
label="中文名称" label="中文名称"
width="180px" min-width="300"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standName }}</a> <a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
@@ -90,7 +90,7 @@
prop="standEnName" prop="standEnName"
label="英文名称" label="英文名称"
align="center" align="center"
width="180px" min-width="300"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standEnName }}</a> <a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standEnName }}</a>
@@ -133,30 +133,16 @@
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip prop="involve"
prop="kccvppsbm" width="160px"
width="180px"
align="center" align="center"
label="卡车VPPS编码"> label="标准是否涉及">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip prop="remarks"
prop="kccvppscn"
width="180px"
align="center" align="center"
label="卡车vpps中文名称"> width="180"
</el-table-column> label="备注">
<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中文名称">
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
@@ -356,8 +342,13 @@ export default {
this.qdform.prcName = this.prcName; this.qdform.prcName = this.prcName;
this.qdform["id"] = item.id; this.qdform["id"] = item.id;
this.dataList = item.dataList this.dataList = item.dataList
this.projectId = item.projectId this.dataList.forEach(item => {
// this.getStandData(); if(item.involve === 'involve'){
item.involve = '涉及'
}else if(item.involve === 'noInvolve'){
item.involve = '不涉及'
}
})
}else{ }else{
this.qdform = item.form this.qdform = item.form
this.dataList =item.form.dataList this.dataList =item.form.dataList
@@ -103,15 +103,15 @@
</el-form-item> </el-form-item>
</el-card> </el-card>
</el-timeline-item> </el-timeline-item>
<el-timeline-item timestamp="选择确认人" placement="top" <el-timeline-item timestamp="选择产品工程经理" placement="top"
:color="roleForm.confirmId ? '#66b1ff' : ''"> :color="roleForm.confirmId ? '#66b1ff' : ''">
<el-card> <el-card>
<el-form-item prop="confirmName" style="margin-bottom: 0"> <el-form-item prop="confirmName" style="margin-bottom: 0">
<h4>确认人</h4> <h4>产品工程经理</h4>
<div style="margin-top: 10px;width: 300px;"> <div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.confirmId" style="display: none;"></el-input> <el-input v-model="roleForm.confirmId" style="display: none;"></el-input>
<el-input v-model="roleForm.confirmName" placeholder="选择确认人" <el-input v-model="roleForm.confirmName" placeholder="选择产品工程经理"
@click.native="choiceZRR('confirmId', '选择确认人', roleForm.confirmId)"></el-input> @click.native="choiceZRR('confirmId', '选择产品工程经理', roleForm.confirmId)"></el-input>
</div> </div>
</el-form-item> </el-form-item>
</el-card> </el-card>
@@ -430,6 +430,7 @@ export default {
}, },
qdform: { qdform: {
projectId:"",
projectNumber: "", projectNumber: "",
projectName: "", projectName: "",
detailedListName: "", detailedListName: "",
@@ -461,7 +462,7 @@ export default {
// //
roleFormRules: { roleFormRules: {
confirmName: [ confirmName: [
{ required: true, message: "请选择确认人", trigger: "change" } { required: true, message: "请选择产品工程经理", trigger: "change" }
], ],
approveName: [ approveName: [
{ required: true, message: "请选择审批人", trigger: "change" } { required: true, message: "请选择审批人", trigger: "change" }
@@ -695,7 +696,7 @@ export default {
_formData.append("createUserName", this.$store.getters.userInfo.userName); _formData.append("createUserName", this.$store.getters.userInfo.userName);
_formData.append("prcType", "10"); _formData.append("prcType", "10");
_formData.append("json", JSON.stringify({ _formData.append("json", JSON.stringify({
taskInfo: "确认人确认", taskInfo: "产品经理分发",
form: this.qdform, form: this.qdform,
roleForm: this.roleForm, roleForm: this.roleForm,
commentText: this.commentText 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 _this: this
}, res => { }, res => {
if (res.success) { if (res.success) {
debugger
if(this.formTongGuo.approvalOpinion === '1'){ if(this.formTongGuo.approvalOpinion === '1'){
this.$message.warning("驳回成功") this.$message.warning("驳回成功")
this.isSubmit = false this.isSubmit = false
@@ -127,7 +127,7 @@
</div> </div>
</el-card> </el-card>
</el-col> </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"> <el-card shadow="hover">
<div class="card-box" @click="handleCreateProcess('11')"> <div class="card-box" @click="handleCreateProcess('11')">
<div class="card-top"> <div class="card-top">
@@ -298,6 +298,21 @@
</div> </div>
</el-card> </el-card>
</el-col> </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-col :span="size ? 6 : 8" v-btn-permission="">
<el-card shadow="hover"> <el-card shadow="hover">
<div class="card-box" @click="handleCreateProcess('23')"> <div class="card-box" @click="handleCreateProcess('23')">
@@ -379,6 +394,12 @@ export default {
this.$store.commit('setDetailMap', this.$route.path) this.$store.commit('setDetailMap', this.$route.path)
this.$store.commit('setHandleInfo') this.$store.commit('setHandleInfo')
switch (prcType) { switch (prcType) {
case 'buss1':
//
this.$router.push({
name: 'bussLibrary1'
})
break
case '2': case '2':
// //
this.$router.push({ 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