This commit is contained in:
宋伟佳
2021-07-13 10:29:06 +08:00
33 changed files with 3828 additions and 378 deletions
+3
View File
@@ -906,3 +906,6 @@ tr.el-table__row{
margin: 10px;
width: calc(~'100% - 20px');
}
.button-list {
padding: 5px 0px;
}
+41
View File
@@ -282,6 +282,47 @@ export default {
exeFun.call(this, err)
})
},
downloadFile (url, param, fileName) {
_axios({
method: 'post',
url,
data: param,
responseType: 'blob'
}).then(
res => {
const data = res.data
const r = new FileReader()
r.onload = function () {
try {
const resData = JSON.parse(this.result)
} catch (err) {
// 下载正常处理
// 兼容ie11
if (window.navigator.msSaveOrOpenBlob) {
try {
const blobObject = new Blob([data])
window.navigator.msSaveOrOpenBlob(blobObject, fileName)
} catch (e) {
console.log(e)
}
return
}
// a标签实现下载
let url = window.URL.createObjectURL(new Blob([data]))
let link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', fileName)
document.body.appendChild(link)
link.click()
resolve(fileName)
}
}
r.readAsText(data) // FileReader的API
}).catch(res => {
console.log(res)
})
},
/**
* @description: delete方法
* @author: chenxiaoxi
@@ -226,7 +226,7 @@ export default {
this.quoteIdList1 = []
this.replaceLawsNumForm.quoteIdList = ''
}
this.$http.get('lawss/sarStandardsInfo/getSarStandardsInfoPage', this.replaceLawsNumForm, {
this.$http.get('sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage', this.replaceLawsNumForm, {
_this: this,
loading: 'replaceLoading'
}, res => {
@@ -238,7 +238,7 @@ export default {
}
this.replaceLawsNumForm.page = 1
this.replacePage = 1
this.$http.get('lawss/sarStandardsInfo/getSarStandardsInfoPage', this.replaceLawsNumForm, {
this.$http.get('sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage', this.replaceLawsNumForm, {
_this: this,
loading: 'replaceLoading'
}, res => {
@@ -265,7 +265,7 @@ export default {
this.replaceLawsNumForm.quoteIdList = ''
}
this.replaceLawsNumForm.standType = this.config.attrField === 'CBBH' ? 'FOREIGN' : 'INLAND'
this.$http.get('lawss/sarStandardsInfo/getSarStandardsInfoPage', this.replaceLawsNumForm, {
this.$http.get('sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage', this.replaceLawsNumForm, {
_this: this,
loading: 'replaceLoading'
}, res => {
@@ -226,7 +226,7 @@ export default {
}
this.replaceLawsNumForm.page = 1
this.replacePage = 1
this.$http.get('lawss/sarStandardsInfo/getSarStandardsInfoPage', this.replaceLawsNumForm, {
this.$http.get('sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage', this.replaceLawsNumForm, {
_this: this,
loading: 'replaceLoading'
}, res => {
@@ -253,7 +253,7 @@ export default {
this.replaceLawsNumForm.quoteIdList = ''
}
// this.replaceLawsNumForm.standType = this.config.attrField === 'CBBH' ? 'FOREIGN' : 'INLAND'
this.$http.get('lawss/sarStandardsInfo/getSarStandardsInfoPage', this.replaceLawsNumForm, {
this.$http.get('sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage', this.replaceLawsNumForm, {
_this: this,
loading: 'replaceLoading'
}, res => {
@@ -256,7 +256,7 @@ export default {
formData.standType = this.replaceLawsNumForm.dataSource === 'INLAND_STAND' ? 'INLAND'
: this.replaceLawsNumForm.dataSource === 'FOREIGN_STAND' ? 'FOREIGN' : ''
formData.standNumber = formData.numberName
let url = this.replaceLawsNumForm.dataSource === 'BUSINESS' ? 'lawss/sarBussionessStand/getSarBussionStandPage' : 'lawss/sarStandardsInfo/getSarStandardsInfoPage'
let url = this.replaceLawsNumForm.dataSource === 'BUSINESS' ? 'lawss/sarBussionessStand/getSarBussionStandPage' : 'sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage'
this.$http.get(url, formData, {
_this: this,
loading: 'replaceLoading'
@@ -234,7 +234,7 @@ export default {
this.quoteIdList1 = []
this.replaceLawsNumForm.quoteIdList = ''
}
this.$http.get('lawss/sarStandardsInfo/getSarStandardsInfoPage', this.replaceLawsNumForm, {
this.$http.get('sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage', this.replaceLawsNumForm, {
_this: this,
loading: 'replaceLoading'
}, res => {
+203
View File
@@ -0,0 +1,203 @@
<!--
/**
* 下拉选择树形组件,下拉框展示树形结构,提供选择某节点功能,方便其他模块调用
* 调用示例:
* <tree-select :height="400" // 下拉框中树形高度
* :width="200" // 下拉框中树形宽度
* :data="data" // 树结构的数据
* :defaultProps="defaultProps" // 树结构的props
* multiple // 多选
* checkStrictly // 多选时,严格遵循父子不互相关联
* :nodeKey="nodeKey" // 绑定nodeKey,默认绑定'id'
* :checkedKeys="defaultCheckedKeys" // 传递默认选中的节点key组成的数组
* @popoverHide="popoverHide"> // 事件有两个参数:第一个是所有选中的节点ID,第二个是所有选中的节点数据
* </tree-select>
*/
-->
<template>
<div>
<div class="mask" v-show="isShowSelect" @click="isShowSelect = !isShowSelect"></div>
<el-popover placement="bottom-start" :width="width" trigger="manual"
v-model="isShowSelect" @hide="popoverHide">
<el-tree class="common-tree" :style="style" ref="tree" :data="data" :props="defaultProps"
:show-checkbox="multiple"
:node-key="nodeKey"
:disabled="disabled"
:check-strictly="checkStrictly"
default-expand-all
:expand-on-click-node="false"
:default-checked-keys="defaultCheckedKeys"
:highlight-current="true"
@node-click="handleNodeClick"
@check-change="handleCheckChange"></el-tree>
<el-select :style="selectStyle" slot="reference" ref="select"
v-model="selectedData"
:multiple="multiple"
@click.native="isShowSelect = !isShowSelect"
class="tree-select">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-popover>
</div>
</template>
<script>
export default {
name: 'tree-select',
props: {
// 树结构数据
data: {
type: Array,
default () {
return [];
}
},
defaultProps: {
type: Object,
default () {
return {};
}
},
// 配置是否可多选
multiple: {
type: Boolean,
default () {
return false;
}
},
nodeKey: {
type: String,
default () {
return 'id';
}
},
// 显示复选框情况下,是否严格遵循父子不互相关联
checkStrictly: {
type: Boolean,
default () {
return false;
}
},
disabled: {
type: Boolean,
default () {
return false;
}
},
// 默认选中的节点key数组
checkedKeys: {
type: Array,
default () {
return [];
}
},
width: {
type: Number,
default () {
return 593;
}
},
height: {
type: Number,
default () {
return 300;
}
}
},
data () {
return {
defaultCheckedKeys: [],
isShowSelect: false, // 是否显示树状选择器
options: [],
selectedData: [], // 选中的节点
style: 'width:' + this.width + 'px;' + 'height:' + this.height + 'px;',
selectStyle: 'width:100%;',
checkedIds: [],
checkedData: []
};
},
mounted () {
if (this.checkedKeys.length > 0) {
if (this.multiple) {
this.defaultCheckedKeys = this.checkedKeys;
this.selectedData = this.checkedKeys.map((item) => {
var node = this.$refs.tree.getNode(item);
return node.label;
});
} else {
var item = this.checkedKeys[0];
this.$refs.tree.setCurrentKey(item);
var node = this.$refs.tree.getNode(item);
this.selectedData = node.label;
}
}
},
methods: {
popoverHide () {
if (this.multiple) {
this.checkedIds = this.$refs.tree.getCheckedKeys(); // 所有被选中的节点的 key 所组成的数组数据
this.checkedData = this.$refs.tree.getCheckedNodes(); // 所有被选中的节点所组成的数组数据
} else {
this.checkedIds = this.$refs.tree.getCurrentKey();
this.checkedData = this.$refs.tree.getCurrentNode();
}
this.$emit('popoverHide', this.checkedIds, this.checkedData);
},
// 节点被点击时的回调,返回被点击的节点数据
handleNodeClick (data, node) {
if (!this.multiple) {
let tmpMap = {};
tmpMap.value = node.key;
tmpMap.label = node.label;
this.options = [];
this.options.push(tmpMap);
this.selectedData = node.label;
this.isShowSelect = !this.isShowSelect;
}
},
// 节点选中状态发生变化时的回调
handleCheckChange () {
var checkedKeys = this.$refs.tree.getCheckedKeys(); // 所有被选中的节点的 key 所组成的数组数据
this.options = checkedKeys.map((item) => {
var node = this.$refs.tree.getNode(item); // 所有被选中的节点对应的node
let tmpMap = {};
tmpMap.value = node.key;
tmpMap.label = node.label;
return tmpMap;
});
this.selectedData = this.options.map((item) => {
return item.label;
});
}
},
watch: {
isShowSelect (val) {
// 隐藏select自带的下拉框
this.$refs.select.blur();
}
}
};
</script>
<style scoped>
.mask{
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
opacity: 0;
}
.common-tree{
overflow: auto;
}
</style>
<style>
.tree-select .el-select__tags .el-tag .el-tag__close{
display: none;
}
.tree-select .el-select__tags .el-tag .el-icon-close{
display: none;
}
</style>
@@ -8,36 +8,6 @@
<!--主体内容-->
<div class="details-content">
<div class="details-content-modular basic-information">
<div class="modular-header">
<div class="modular-header-title"><i class="icon-modular-title" /><span>标准信息</span>
</div>
<div class="modular-header-btn">
<el-button v-if="sarStandardsInfoEO.collectId" @click="collectClick(sarStandardsInfoEO.collectId)" title="取消收藏" class="collection-btn" icon="icon-collection" :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" @click="knowledgeSharing">标准问答</el-button>-->
<!-- <el-button class="relation-btn" @click="showItemsModel()">标准分解单</el-button>-->
</div>
</div>
<div class="basic-information-content">
<p><label>中文名称</label><span>{{ sarStandardsInfoEO.standName || '-' }}</span></p>
<p><label>英文名称</label><span>{{ sarStandardsInfoEO.standEnName || '-' }}</span></p>
<p style="color: #C42626;">
<label>标准号</label>
<span v-if="sarStandardsInfoEO.standYear">{{ sarStandardsInfoEO.standSortShow + ' ' + sarStandardsInfoEO.standNumber + '-' + sarStandardsInfoEO.standYear }}</span>
<span v-else>{{ sarStandardsInfoEO.standSort + ' ' + sarStandardsInfoEO.standNumber }}</span>
</p>
<p>
<label
title="“计划修订”、“修订中”均为现行有效版本;“已修订”标准的有效性根据实际实施情况判定。"
>标准状态<i class="el-icon-warning-outline"></i></label>
<span style="color: #409EFF;">{{ sarStandardsInfoEO.textStatus || '-' }}</span>
</p>
<p><label>标准发布日期</label><span>{{ sarStandardsInfoEO.issueTime || '-' }}</span></p>
<!-- <p><label>文本说明</label><span style="color: #999999">{{ sarStandardsInfoEO.synopsis || '-' }}</span></p>-->
<!-- <p><label>重要度</label><span>{{ sarStandardsInfoEO.isRelateAccess === '1' ? 'A' : 'B'}}</span></p>-->
<!-- <p><label>纳入标准法规清单的国家/地区</label><span>{{ sarStandardsInfoEO.accessCountry || '-' }}</span></p>-->
</div>
</div>
<div
class="details-content-modular clearfix"
@@ -45,10 +15,54 @@
:key="index"
v-if="item.isShowImp === '0'"
>
<div class="modular-header">
<div class="modular-header" v-if="item.label !== '基础信息'">
<div class="modular-header-title"><i class="icon-modular-title" /><span>{{ item.label }}</span></div>
</div>
<div class="modular-header" v-if="item.label === '基础信息'">
<div class="modular-header-title"><i class="icon-modular-title" /><span>{{ item.label }}</span></div>
<div class="details-content-modular basic-information" style="border-top:none">
<div class="modular-header">
<!-- <div class="modular-header-title"><i class="icon-modular-title" /><span>基础信息</span>-->
<!-- </div>-->
<div class="modular-header-btn">
<el-button v-if="sarStandardsInfoEO.collectId" @click="collectClick(sarStandardsInfoEO.collectId)" title="取消收藏" class="collection-btn" icon="icon-collection" :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" @click="knowledgeSharing">标准问答</el-button>-->
<!-- <el-button class="relation-btn" @click="showItemsModel()">标准分解单</el-button>-->
</div>
</div>
</div>
</div>
<div class="modular-content">
<template v-if="item.label === '基础信息'" >
<div class="details-content-modular basic-information" style="border-top:none">
<div class="basic-information-content">
<p><label>标准类别</label><span>{{ sarStandardsInfoEO.standSort || '-' }}</span></p>
<p style="color: #C42626;">
<label>标准编号</label>
<span v-if="sarStandardsInfoEO.standYear">{{ sarStandardsInfoEO.standSortShow + ' ' + sarStandardsInfoEO.standNumber + '-' + sarStandardsInfoEO.standYear }}</span>
<span v-else>{{ sarStandardsInfoEO.standSort + ' ' + sarStandardsInfoEO.standNumber }}</span>
</p>
<p><label>标准年份</label><span>{{ sarStandardsInfoEO.standYear || '-' }}</span></p>
<p><label>中文名称</label><span>{{ sarStandardsInfoEO.standName || '-' }}</span></p>
<p><label>英文名称</label><span>{{ sarStandardsInfoEO.standEnName || '-' }}</span></p>
<p><label>标准性质</label><span>{{ sarStandardsInfoEO.standNature || '-' }}</span></p>
<p>
<label
title="“计划修订”、“修订中”均为现行有效版本;“已修订”标准的有效性根据实际实施情况判定。"
>文本状态<i class="el-icon-warning-outline"></i></label>
<span style="color: #409EFF;">{{ sarStandardsInfoEO.textStatus || '-' }}</span>
</p>
<p><label>发布日期</label><span>{{ sarStandardsInfoEO.issueTime || '-' }}</span></p>
<p><label>是否纳入认证清单</label><span>{{sarStandardsInfoEO.isRelateAccess ? (sarStandardsInfoEO.isRelateAccess === '1' ? '是' : '否') : '-'}}</span></p>
<p><label>标准体系</label><span>{{ sarStandardsInfoEO.standSystemName || '-' }}</span></p>
<!-- <p><label>文本说明</label><span style="color: #999999">{{ sarStandardsInfoEO.synopsis || '-' }}</span></p>-->
<!-- <p><label>重要度</label><span>{{ sarStandardsInfoEO.isRelateAccess === '1' ? 'A' : 'B'}}</span></p>-->
<!-- <p><label>纳入标准法规清单的国家/地区</label><span>{{ sarStandardsInfoEO.accessCountry || '-' }}</span></p>-->
</div>
</div>
</template>
<template
v-for="(child, childIndex) in item.half"
v-if="child.isShowImp === '0'"
@@ -225,20 +239,21 @@
v-for="(file, fileIndex) in child.value"
:key="fileIndex"
>
|{{file.id}}|
<!--发布稿增补件单独设置下载权限-->
<template v-if="child.attrField === 'FBGBJBD' || child.attrField === 'ZBJBD'">
<template v-if="child.attrField === 'XGD' || child.attrField === 'FBGBJBD' || child.attrField === 'BPG'
|| child.attrField === 'SSG'|| child.attrField === 'ZQYJG'|| child.attrField === 'CA'
|| child.attrField === 'JDWJ' || child.attrField === 'GLWJ'">
<a @click="openFileInPdf(file.id, file.oldFileName)" target="_blank">{{ file.oldFileName }}</a>
<i
title="下载"
@click="downloadFile(file.id)"
class="icon-download"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'WGJP2VRZSJ77EGH2447M' : '44KKMQHU3CNRRPNNF8VN'"
/>
<i
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
class="icon-download2"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'EZVNMCLGSB5LWG6XRRL3' : 'VSUKQX3NZW4N8CT5VQE3'"
/>
<span class="time-text">上传时间:{{ dateFormat(file.modifyTime) }}</span>
</template>
@@ -259,12 +274,12 @@
<span class="time-text">上传时间:{{ dateFormat(file.modifyTime) }}</span>
</template>
</p>
<el-button
v-if="child.attrField === 'FBGBJBD' || child.attrField === 'SSG' || child.attrField === 'ZQYJG' || child.attrField === 'BPG' || child.attrField === 'ZBJBD' || child.attrField === 'CA'"
@click="showItemsModel(child.attrField)"
class="decomposition-btn"
icon="icon-separate"
>标准分解单</el-button>
<!-- <el-button-->
<!-- v-if="child.attrField === 'FBGBJBD' || child.attrField === 'SSG' || child.attrField === 'ZQYJG' || child.attrField === 'BPG' || child.attrField === 'ZBJBD' || child.attrField === 'CA'"-->
<!-- @click="showItemsModel(child.attrField)"-->
<!-- class="decomposition-btn"-->
<!-- icon="icon-separate"-->
<!-- >标准分解单2</el-button>-->
</div>
</div>
@@ -609,7 +609,7 @@ export default {
getDomesticStandardTable (item) {
this.sarStandardsSearch.page = this.configPage
this.sarStandardsSearch.validFlag = 0
this.$http.get('lawss/sarStandardsInfo/getSarStandardsInfoPage', this.sarStandardsSearch, {
this.$http.get('sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage', this.sarStandardsSearch, {
_this: this, loading: 'loading'
}, res => {
if (res.ok) {
+2 -1
View File
@@ -115,7 +115,8 @@ export default {
// 获取用户菜单
this.getMenu().then((menuList) => {
let hasHomeMenu = menuList.some((menuItem) => {
return menuItem.id === 'G72J4WNFM8'
// return menuItem.id === 'G72J4WNFM8'
return menuItem.id === 'asdfadf'
})
if (hasHomeMenu) {
@@ -317,7 +317,7 @@ export default {
this.replaceLawsNumForm.quoteIdList = ''
this.$http.get('lawss/sarStandardsInfo/getSarStandardsInfoPage', this.replaceLawsNumForm, {
this.$http.get('sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage', this.replaceLawsNumForm, {
_this: this,
loading: 'replaceLoading'
}, res => {
@@ -55,13 +55,6 @@
- -
</div>
</el-form-item>
<!-- <el-form-item label="审批意见" prop="text" class="add-form-item form-item-disabled">-->
<!-- <el-input-->
<!-- v-model="form.text"-->
<!-- placeholder="请输入审批意见"-->
<!-- clearable-->
<!-- ></el-input>-->
<!-- </el-form-item>-->
</el-col>
</el-row>
</div>
@@ -84,13 +77,13 @@
<ProcessFooter
show-save
show-submit
show-back
:submitLoading="isSubmit"
:saveLoading="saveLoading"
approval
@back="handleSubmitNo"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
>
</ProcessFooter>
@@ -114,15 +114,10 @@
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="标准体系" prop="standSystem" class="add-form-item form-item-disabled">
<el-select v-model="form.standSystem" placeholder="请选择标准体系">
<el-option
v-for="item in standSystemOptions"
placeholder="请选择"
:key="item.value"
:value="item.value"
:label="item.label"
></el-option>
</el-select>
<tree-select
:data="standSystemOptions"
:defaultProps="defaultProps" :checkedKeys="defaultCheckedKeys"
:nodeKey="nodeKey" @popoverHide="popoverHide"></tree-select>
</el-form-item>
<el-form-item v-if="form.standInData === '1'" label="标签" prop="gxhbq" class="add-form-item form-item-disabled">
<el-input
@@ -385,7 +380,7 @@
clearable
></el-input>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="起草单位" prop="fbjg" class="add-form-item form-item-disabled">
<el-form-item v-if="form.standInData === '0'" label="起草单位" prop="qcdw" class="add-form-item form-item-disabled">
<el-input
v-model="form.fbjg"
placeholder="请选择起草单位"
@@ -630,6 +625,8 @@
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {saveTaskFirst} from "api/process";
import TreeSelect from '@/components/treeSelect/treeSelect.vue';
export default {
name: "bzrkStep1",
data () {
@@ -640,6 +637,12 @@
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
defaultProps: {
children: 'children',
label: 'menuName'
},
nodeKey: 'id',
defaultCheckedKeys: [],
form: {
// 基础信息
textStatus: '', // 文本状态
@@ -654,6 +657,7 @@
issueTime: '', // 发布时间
isRelateAccess: '', // 是否纳入认证清单
standSystem: '',// 标准体系
standSystemName: '',// 标准体系名称
gxhbq: '', // 标签
// 实施日期
ssrq: '', // 实施日期(标准文本)
@@ -675,7 +679,7 @@
// 适用范围
txlb: '', // 体系类别
gkdw: '', // 归口管理部门
fbjg: '', // 起草单位
qcdw: '', // 起草单位
wssmr: '', // 我司署名人
cysd: '', // 我司参与深度
cllx: '', // 适用车型
@@ -724,9 +728,17 @@
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
ProcessTitle,
TreeSelect
},
methods: {
popoverHide (checkedIds, checkedData) {
console.log(checkedIds);
console.log(checkedData);
this.form.standSystem = checkedData.id
this.form.standSystemName = checkedData.menuName
console.log(this.sarStandardsInfoEO.standSystem);
},
closeDrawer() {
this.ListModel = false
},
@@ -771,7 +783,7 @@
},
handleSubmit() {
var json = this.form
json.zrUserId = this.$store.getters.userInfo.userId+',5UM3769REUPLPRTRJ54R'
json.zrUserId = this.$store.getters.userInfo.userId
json.jlUserId = this.$store.getters.userInfo.userId
json.commentText = this.commentText
json.applyUpdUserId = this.$store.getters.userInfo.userId
@@ -120,18 +120,14 @@
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="标准体系" prop="standSystem" class="add-form-item form-item-disabled">
<el-select v-model="form.standSystem" placeholder="请选择标准体系" disabled>
<el-option
v-for="item in standSystemOptions"
placeholder="请选择"
:key="item.value"
:value="item.value"
:label="item.label"
></el-option>
</el-select>
<el-input
disabled
v-model="form.standSystemName"
clearable
></el-input>
</el-form-item>
<el-form-item v-if="form.standInData === '1'" label="标签" prop="gxhbq" class="add-form-item form-item-disabled">
<el-input
<el-input
disabled
v-model="form.gxhbq"
placeholder="请输入标签"
@@ -676,6 +672,8 @@
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {inboundLiaisonDetail,processCreateStand} from 'api/process'
import TreeSelect from '@/components/treeSelect/treeSelect.vue';
export default {
name: "bzrkStep2",
data () {
@@ -693,6 +691,12 @@
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
defaultProps: {
children: 'children',
label: 'menuName'
},
nodeKey: 'id',
defaultCheckedKeys: [],
form: {
// 基础信息
textStatus: '', // 文本状态
@@ -707,6 +711,7 @@
issueTime: '', // 发布时间
isRelateAccess: '', // 是否纳入认证清单
standSystem: '',// 标准体系
standSystemName: '',// 标准体系
gxhbq: '', // 标签
// 实施日期
ssrq: '', // 实施日期(标准文本)
@@ -785,7 +790,8 @@
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
ProcessTitle,
TreeSelect
},
computed: {
listNoDataText () {
@@ -793,6 +799,12 @@
},
},
methods: {
popoverHide (checkedIds, checkedData) {
console.log(checkedIds);
console.log(checkedData);
this.form.standSystem = checkedData.id
console.log(this.sarStandardsInfoEO.standSystem);
},
processTable () {
this.$http.get('lawss/activiti/get_list_by_instance', {
prcNum: this.$route.query.prcNum,
@@ -825,6 +837,7 @@
getFormFieldList (item) {
this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item))
this.defaultCheckedKeys = [this.form.standSystem];
this.form.standType = this.form.standInData === '0' ? 'INLAND' : 'FOREIGN'
this.form.prcNum = this.prcNum
this.form.prcName = this.prcName
@@ -119,15 +119,11 @@
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="标准体系" prop="standSystem" class="add-form-item form-item-disabled">
<el-select v-model="form.standSystem" placeholder="请选择标准体系" disabled>
<el-option
v-for="item in standSystemOptions"
placeholder="请选择"
:key="item.value"
:value="item.value"
:label="item.label"
></el-option>
</el-select>
<el-input
disabled
v-model="form.standSystemName"
clearable
></el-input>
</el-form-item>
<el-form-item v-if="form.standInData === '1'" label="标签" prop="gxhbq" class="add-form-item form-item-disabled">
<el-input
@@ -669,6 +665,8 @@ import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {inboundLiaisonDetail,processCreateStand} from 'api/process'
import TreeSelect from '@/components/treeSelect/treeSelect.vue';
export default {
name: "bzrkStep3",
data () {
@@ -686,6 +684,12 @@ export default {
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
defaultProps: {
children: 'children',
label: 'menuName'
},
nodeKey: 'id',
defaultCheckedKeys: [],
form: {
// 基础信息
textStatus: '', // 文本状态
@@ -778,7 +782,8 @@ export default {
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
ProcessTitle,
TreeSelect
},
computed: {
listNoDataText () {
@@ -786,6 +791,9 @@ export default {
},
},
methods: {
popoverHide (checkedIds, checkedData) {
this.form.standSystem = checkedData.id
},
processTable () {
this.$http.get('lawss/activiti/get_list_by_instance', {
prcNum: this.$route.query.prcNum,
@@ -818,10 +826,12 @@ export default {
getFormFieldList (item) {
this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item))
this.defaultCheckedKeys = [this.form.standSystem];
this.form.standType = this.form.standInData === '0' ? 'INLAND' : 'FOREIGN'
this.form.prcNum = this.prcNum
this.form.prcName = this.prcName
this.form['id'] = item.id
this.$forceUpdate()
})
},
closeDrawer() {
@@ -886,7 +896,6 @@ export default {
},
mounted () {
this.processTable()
this.getData()
this.$http.get('sys/dictype/getDicTypeListCode', '', {
_this: this
}, res => {
@@ -894,6 +903,7 @@ export default {
this.standNatureOptions = res.data.SARPROPERTY // 标准性质
this.standStateOptions = res.data.WBZTCLASS // 文本状态
this.standSystemOptions = res.data.BZTXCLASS // 标准体系
console.log(this.standSystemOptions)
this.applyArcticOptions = res.data.ENERGYTYPES // 适用车型
this.categoryOptions = res.data.NYLXCLASS // 能源类型
this.applyAuthOptions = res.data.SYRZCLASS // 适用认证
@@ -902,8 +912,10 @@ export default {
this.zrbmOptions = res.data.ZRBMCLASS // 责任部门
this.zrgcsOptions = res.data.ZRGCSCLASS // 责任工程师
this.txlbOptions = res.data.TXLBCLASS // 体系类别
this.getData()
})
}
this.$forceUpdate()
},
}
</script>
@@ -114,15 +114,10 @@
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="标准体系" prop="standSystem" class="add-form-item form-item-disabled">
<el-select v-model="form.standSystem" placeholder="请选择标准体系">
<el-option
v-for="item in standSystemOptions"
placeholder="请选择"
:key="item.value"
:value="item.value"
:label="item.label"
></el-option>
</el-select>
<tree-select v-if="treeStatus"
:data="standSystemOptions"
:defaultProps="defaultProps" :checkedKeys="defaultCheckedKeys"
:nodeKey="nodeKey" @popoverHide="popoverHide"></tree-select>
</el-form-item>
<el-form-item v-if="form.standInData === '1'" label="标签" prop="gxhbq" class="add-form-item form-item-disabled">
<el-input
@@ -646,6 +641,8 @@ import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {inboundLiaisonDetail,processCreateStand} from 'api/process'
import TreeSelect from '@/components/treeSelect/treeSelect.vue';
export default {
name: "bzrkStep4",
data () {
@@ -663,6 +660,13 @@ export default {
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
defaultProps: {
children: 'children',
label: 'menuName'
},
nodeKey: 'id',
defaultCheckedKeys: [],
treeStatus:false,
form: {
// 基础信息
textStatus: '', // 文本状态
@@ -677,6 +681,7 @@ export default {
issueTime: '', // 发布时间
isRelateAccess: '', // 是否纳入认证清单
standSystem: '',// 标准体系
standSystemName: '',// 标准体系
gxhbq: '', // 标签
// 实施日期
ssrq: '', // 实施日期(标准文本)
@@ -755,7 +760,8 @@ export default {
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
ProcessTitle,
TreeSelect
},
computed: {
listNoDataText () {
@@ -763,6 +769,12 @@ export default {
},
},
methods: {
popoverHide (checkedIds, checkedData) {
console.log(checkedIds);
console.log(checkedData);
this.form.standSystem = checkedData.id
this.form.standSystemName = checkedData.menuName
},
processTable () {
this.$http.get('lawss/activiti/get_list_by_instance', {
prcNum: this.$route.query.prcNum,
@@ -795,10 +807,12 @@ export default {
getFormFieldList (item) {
this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item))
this.defaultCheckedKeys = [this.form.standSystem];
this.form.standType = this.form.standInData === '0' ? 'INLAND' : 'FOREIGN'
this.form.prcNum = this.prcNum
this.form.prcName = this.prcName
this.form['id'] = item.id
this.$forceUpdate()
})
},
closeDrawer() {
@@ -861,6 +875,9 @@ export default {
})
},
},
created(){
this.getData()
},
mounted () {
this.processTable()
this.getData()
@@ -879,7 +896,15 @@ export default {
this.zrbmOptions = res.data.ZRBMCLASS // 责任部门
this.zrgcsOptions = res.data.ZRGCSCLASS // 责任工程师
this.txlbOptions = res.data.TXLBCLASS // 体系类别
this.treeStatus = true
})
},
watch:{
form(val){
if(this.form){
}
}
}
}
</script>
@@ -119,15 +119,10 @@
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="标准体系" prop="standSystem" class="add-form-item form-item-disabled">
<el-select v-model="form.standSystem" placeholder="请选择标准体系" disabled>
<el-option
v-for="item in standSystemOptions"
placeholder="请选择"
:key="item.value"
:value="item.value"
:label="item.label"
></el-option>
</el-select>
<tree-select
:data="standSystemOptions"
:defaultProps="defaultProps" :checkedKeys="defaultCheckedKeys"
:nodeKey="nodeKey" @popoverHide="popoverHide"></tree-select>
</el-form-item>
<el-form-item v-if="form.standInData === '1'" label="标签" prop="gxhbq" class="add-form-item form-item-disabled">
<el-input
@@ -669,6 +664,8 @@
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {inboundLiaisonDetail,processCreateStand} from 'api/process'
import TreeSelect from '@/components/treeSelect/treeSelect.vue';
export default {
name: "bzrkStep5",
data () {
@@ -686,6 +683,12 @@
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
defaultProps: {
children: 'children',
label: 'menuName'
},
nodeKey: 'id',
defaultCheckedKeys: [],
form: {
// 基础信息
textStatus: '', // 文本状态
@@ -778,7 +781,8 @@
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
ProcessTitle,
TreeSelect
},
computed: {
listNoDataText () {
@@ -786,6 +790,12 @@
},
},
methods: {
popoverHide (checkedIds, checkedData) {
console.log(checkedIds);
console.log(checkedData);
this.form.standSystem = checkedData.id
console.log(this.sarStandardsInfoEO.standSystem);
},
processTable () {
this.$http.get('lawss/activiti/get_list_by_instance', {
prcNum: this.$route.query.prcNum,
@@ -818,6 +828,7 @@
getFormFieldList (item) {
this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item))
this.defaultCheckedKeys = [this.form.standSystem];
this.form.standType = this.form.standInData === '0' ? 'INLAND' : 'FOREIGN'
this.form.prcNum = this.prcNum
this.form.prcName = this.prcName
@@ -1,13 +1,357 @@
<template>
<div class="bzdyStep3">
<!-- 标准调研流程-->
<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>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="bzzqyjForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="标准编号" prop="cid" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cid"
placeholder="请输入标准编号"
clearable
></el-input>
</el-form-item>
<el-form-item label="标准名称" prop="cname" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cname"
placeholder="请输入标准名称"
clearable
></el-input>
</el-form-item>
<el-form-item label="征求意见结束日期" prop="endTime" class="add-form-item form-item-disabled">
<el-date-picker
disabled
v-model="form.endTime"
type="date"
placeholder="请选择结束日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<div class="button-list">
<el-button type="primary"
class="common-button-primary add-button"
@click="addModal"
size="mini">新增</el-button>
<el-button type="primary"
class="common-button-primary add-button"
@click="addDelete"
size="mini">删除</el-button>
</div>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-table"
: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
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="chapterNumber"
label="章条编号"
width="170px">
<template slot-scope="scope">
<el-input style="margin: 10px 0;" v-model="scope.row.chapterNumber"></el-input>
</template>
</el-table-column>
<el-table-column
prop="chapterName"
label="章节名称">
<template slot-scope="scope">
<el-input style="margin: 10px 0;" v-model="scope.row.chapterName"></el-input>
</template>
</el-table-column>
<el-table-column
prop="commentText"
label="修改意见内容(包括理由或依据)">
<template slot-scope="scope">
<el-input style="margin: 10px 0;" v-model="scope.row.commentText"></el-input>
</template>
</el-table-column>
</el-table>
</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>
<ProcessFooter
show-save
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
>
</ProcessFooter>
</div>
</template>
<script>
export default {
name: "step3"
}
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {inboundLiaisonDetail,processCreateStand} from 'api/process'
export default {
name: "bzzqyjStep3",
data() {
return {
idList: [],
data: [],
commentText: '',
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: '',
defaultProps: {
children: 'children',
label: 'name'
},
treeData: [], // 人员数据
modalshowflag: false, // drawer开关
drawerTitle: '', //drawer标题
textarea: '', // 意见
ListModel: false, // 新增编辑抽屉开关
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: '', // 编号
endTime: '', // 结束日期
cname: '', // 名称
},
formRules: {
responUserList: [
{ required: true, message: '请选择责任人', trigger: 'change' },
]
},
json: {}
}
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleSelectionChange (val) {
this.idList = []
val.forEach( item => {
this.idList.push(item.id)
})
},
addDelete () {
if (this.idList.length > 0) {
this.$confirm('删除选中数据, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
for (let a = 0; a < this.data.length; a++) {
this.idList.forEach(item => {
if (this.data[a].id === item) {
this.data.splice(a, 1)
}
})
}
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
} else {
this.$message.warning('请选择要删除的数据')
}
},
addModal () {
var id = Number(Math.random().toString().substr(3, 3) + Date.now()).toString(36);
var json = {
chapterNumber: '',
chapterName: '',
commentText: '',
id: id,
responUserName: this.$store.getters.userInfo.userName,
responUser: this.$store.getters.userInfo.userId,
department: this.$store.getters.userInfo.orgName
}
this.data.push(json)
},
handleTabs(name) {
this.active = name
},
handleSave() {},
handleSubmit() {
if (this.data.length < 1) {
this.$message.warning('请输入征求意见搞')
} else {
var a = 0
var b = 0
var c = 0
for (let s1 = 0; s1 < this.data.length; s1++) {
if (!this.data[s1].chapterNumber) {
a++
}
if (!this.data[s1].chapterName) {
b++
}
if (!this.data[s1].commentText) {
c++
}
}
if (a > 0) {
this.$message.warning('请输入章节编号')
} else if (b > 0) {
this.$message.warning('请输入章节名称')
} else if (c > 0) {
this.$message.warning('请输入意见内容')
} else {
var json = this.json
json.commentText = this.commentText
json.info = this.data
json.department = this.$store.getters.userInfo.orgName
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
}
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg)
this.form.cid = data.cid
this.form.endTime = data.endTime
this.form.cname = data.cname
this.json = data
}).catch(e => {
})
})
},
},
mounted () {
this.getData()
}
}
</script>
<style scoped>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.bzdyStep3 {
/deep/.el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover{
color: #0c91e5;
}
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;
}
}
}
}
</style>
@@ -1,13 +1,293 @@
<template>
<div class="bzdyStep4">
<!-- 标准调研流程-->
<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>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="bzzqyjForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="标准编号" prop="cid" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cid"
placeholder="请输入标准编号"
clearable
></el-input>
</el-form-item>
<el-form-item label="标准名称" prop="cname" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cname"
placeholder="请输入标准名称"
clearable
></el-input>
</el-form-item>
<el-form-item label="征求意见结束日期" prop="endTime" class="add-form-item form-item-disabled">
<el-date-picker
disabled
v-model="form.endTime"
type="date"
placeholder="请选择结束日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-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>
<el-table-column
prop="chapterNumber"
label="章条编号"
width="170px">
</el-table-column>
<el-table-column
prop="chapterName"
label="章节名称">
</el-table-column>
<el-table-column
prop="commentText"
label="修改意见内容(包括理由或依据)">
</el-table-column>
<el-table-column
prop="department"
label="提出部门">
</el-table-column>
<el-table-column
prop="responUserName"
label="提出人">
</el-table-column>
</el-table>
</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>
<ProcessFooter
show-save
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
>
</ProcessFooter>
</div>
</template>
<script>
export default {
name: "step4"
}
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {inboundLiaisonDetail,processCreateStand} from 'api/process'
export default {
name: "bzzqyjStep4",
data() {
return {
data: [],
commentText: '',
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: '',
defaultProps: {
children: 'children',
label: 'name'
},
treeData: [], // 人员数据
modalshowflag: false, // drawer开关
drawerTitle: '', //drawer标题
textarea: '', // 意见
ListModel: false, // 新增编辑抽屉开关
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: '', // 编号
endTime: '', // 结束日期
cname: '', // 名称
},
formRules: {
responUserList: [
{ required: true, message: '请选择责任人', trigger: 'change' },
]
},
json: {}
}
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTabs(name) {
this.active = name
},
handleSave() {},
handleSubmit() {
var json = this.json
json.actionFlag = 0
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
},
handleSubmitNo () {
if (this.commentText) {
var json = this.json
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg)
this.form.cid = data.cid
this.form.endTime = data.endTime
this.form.cname = data.cname
this.json = data
this.data = data.info
}).catch(e => {
})
})
},
},
mounted () {
this.getData()
}
}
</script>
<style scoped>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.bzdyStep4 {
/deep/.el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover{
color: #0c91e5;
}
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;
}
}
}
}
</style>
@@ -1,13 +1,346 @@
<template>
<div class="bzdyStep5">
<!-- 标准调研流程-->
<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>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="bzzqyjForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="标准编号" prop="cid" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cid"
placeholder="请输入标准编号"
clearable
></el-input>
</el-form-item>
<el-form-item label="标准名称" prop="cname" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cname"
placeholder="请输入标准名称"
clearable
></el-input>
</el-form-item>
<el-form-item label="征求意见结束日期" prop="endTime" class="add-form-item form-item-disabled">
<el-date-picker
disabled
v-model="form.endTime"
type="date"
placeholder="请选择结束日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-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>
<el-table-column
prop="chapterNumber"
label="章条编号"
width="170px">
<template slot-scope="scope">
<div v-if="scope.row.state == '2'">
<el-input style="margin: 10px 0;" v-model="scope.row.chapterNumber" @change="changeInput(scope.$index)"></el-input>
</div>
<div v-else>
{{ scope.row.chapterNumber }}
</div>
</template>
</el-table-column>
<el-table-column
prop="chapterName"
label="章节名称">
<template slot-scope="scope">
<div v-if="scope.row.state == '2'">
<el-input style="margin: 10px 0;" v-model="scope.row.chapterName"></el-input>
</div>
<div v-else>
{{ scope.row.chapterName }}
</div>
</template>
</el-table-column>
<el-table-column
prop="commentText"
label="修改意见内容(包括理由或依据)">
<template slot-scope="scope">
<div v-if="scope.row.state == '2'">
<el-input style="margin: 10px 0;" v-model="scope.row.commentText"></el-input>
</div>
<div v-else>
{{ scope.row.commentText }}
</div>
</template>
</el-table-column>
<el-table-column
prop="department"
label="提出部门">
</el-table-column>
<el-table-column
prop="responUserName"
label="提出人">
</el-table-column>
<el-table-column
prop="state"
label="处理意见">
<template slot-scope="scope">
<div style="margin: 5px 0;">
<el-select
:disabled="scope.row.type"
v-model="scope.row.state"
collapse-tags
style="margin-left: 20px;"
placeholder="请选择处理意见">
<el-option key="1" label="上报" value="1"></el-option>
<el-option key="2" label="处理后上报" value="2"></el-option>
<el-option key="3" label="不上报" value="3"></el-option>
</el-select>
</div>
</template>
</el-table-column>
</el-table>
</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>
<ProcessFooter
show-save
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
>
</ProcessFooter>
</div>
</template>
<script>
export default {
name: "step5"
}
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {inboundLiaisonDetail,processCreateStand} from 'api/process'
export default {
name: "bzzqyjStep5",
data() {
return {
oldData: [],
data: [],
commentText: '',
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: '',
defaultProps: {
children: 'children',
label: 'name'
},
treeData: [], // 人员数据
modalshowflag: false, // drawer开关
drawerTitle: '', //drawer标题
textarea: '', // 意见
ListModel: false, // 新增编辑抽屉开关
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: '', // 编号
endTime: '', // 结束日期
cname: '', // 名称
},
formRules: {
responUserList: [
{ required: true, message: '请选择责任人', trigger: 'change' },
]
},
json: {}
}
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
changeInput (index) {
this.data[index].type = true
},
handleTabs(name) {
this.active = name
},
handleSave() {},
handleSubmit() {
if (this.data.length < 1) {
this.$message.warning('请输入征求意见搞')
} else {
var a = 0
var b = 0
var c = 0
for (let s1 = 0; s1 < this.data.length; s1++) {
if (!this.data[s1].chapterNumber) {
a++
}
if (!this.data[s1].chapterName) {
b++
}
if (!this.data[s1].commentText) {
c++
}
}
if (a > 0) {
this.$message.warning('请输入章节编号')
} else if (b > 0) {
this.$message.warning('请输入章节名称')
} else if (c > 0) {
this.$message.warning('请输入意见内容')
} else {
var json = this.json
json.oldinfo = this.oldData
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
}
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg)
this.form.cid = data.cid
this.form.endTime = data.endTime
this.form.cname = data.cname
this.oldData = JSON.parse(JSON.stringify(data.summaryList))
data.summaryList.forEach( item => {
item.state = '1'
item.type = false
})
this.json = data
this.data = data.summaryList
}).catch(e => {
})
})
},
},
mounted () {
this.getData()
}
}
</script>
<style scoped>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.bzdyStep5 {
/deep/.el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover{
color: #0c91e5;
}
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;
}
}
}
}
</style>
@@ -0,0 +1,364 @@
<template>
<div class="bzdyStep6">
<!-- 标准调研流程-->
<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>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="bzzqyjForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="标准编号" prop="cid" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cid"
placeholder="请输入标准编号"
clearable
></el-input>
</el-form-item>
<el-form-item label="标准名称" prop="cname" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cname"
placeholder="请输入标准名称"
clearable
></el-input>
</el-form-item>
<el-form-item label="征求意见结束日期" prop="endTime" class="add-form-item form-item-disabled">
<el-date-picker
disabled
v-model="form.endTime"
type="date"
placeholder="请选择结束日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<div class="button-list">
<el-button type="primary"
class="common-button-primary add-button"
@click="upload(data, '汇总单.xls')"
size="mini">导出汇总单</el-button>
<el-button type="primary"
class="common-button-primary add-button"
@click="upload(oldData, '征求意见搞.xls')"
size="mini">导出征求意见搞</el-button>
</div>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-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>
<el-table-column
prop="chapterNumber"
label="章条编号"
width="170px">
</el-table-column>
<el-table-column
prop="chapterName"
label="章节名称">
</el-table-column>
<el-table-column
prop="commentText"
label="修改意见内容(包括理由或依据)">
</el-table-column>
<el-table-column
prop="department"
label="提出部门">
</el-table-column>
<el-table-column
prop="responUserName"
label="提出人">
</el-table-column>
<el-table-column
prop="state"
label="处理意见">
<template slot-scope="scope">
<div>{{ stateText(scope.row.state) }}</div>
</template>
</el-table-column>
</el-table>
</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>
<ProcessFooter
show-save
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
>
</ProcessFooter>
</div>
</template>
<script>
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {inboundLiaisonDetail,processCreateStand} from 'api/process'
export default {
name: "bzzqyjStep6",
data() {
return {
oldData: [],
data: [],
commentText: '',
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: '',
defaultProps: {
children: 'children',
label: 'name'
},
treeData: [], // 人员数据
modalshowflag: false, // drawer开关
drawerTitle: '', //drawer标题
textarea: '', // 意见
ListModel: false, // 新增编辑抽屉开关
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: '', // 编号
endTime: '', // 结束日期
cname: '', // 名称
},
formRules: {
responUserList: [
{ required: true, message: '请选择责任人', trigger: 'change' },
]
},
json: {}
}
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
stateText (row) {
if (row === '1') {
return '上报'
} else if (row === '2') {
return '处理后上报'
}
},
upload (row, title) {
var params = {
columnName: {
chapterNumber : '章条编号',
chapterName : '章节名称',
commentText: '修改意见内容(包括理由或依据)',
department: '提出部门',
responUserName: '提出人'
},
dataList: []
}
params.dataList = row
this.$http.downloadFile('/api/lawss/activiti/export_excel', params, title, res => {})
},
handleTabs(name) {
this.active = name
},
handleSave() {},
handleSubmit() {
if (this.data.length < 1) {
this.$message.warning('请输入征求意见搞')
} else {
var a = 0
var b = 0
var c = 0
for (let s1 = 0; s1 < this.data.length; s1++) {
if (!this.data[s1].chapterNumber) {
a++
}
if (!this.data[s1].chapterName) {
b++
}
if (!this.data[s1].commentText) {
c++
}
}
if (a > 0) {
this.$message.warning('请输入章节编号')
} else if (b > 0) {
this.$message.warning('请输入章节名称')
} else if (c > 0) {
this.$message.warning('请输入意见内容')
} else {
var json = this.json
json.actionFlag = 0
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
}
}
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskIds: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('驳回成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg)
this.form.cid = data.cid
this.form.endTime = data.endTime
this.form.cname = data.cname
var arr = []
data.summaryList.forEach( item => {
if (item.state != '3') {
arr.push(item)
}
})
this.json = data
this.data = arr
this.oldData = data.oldinfo
}).catch(e => {
})
})
},
},
mounted () {
this.getData()
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.bzdyStep6 {
/deep/.el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover{
color: #0c91e5;
}
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;
}
}
}
}
</style>
@@ -0,0 +1,367 @@
<template>
<div class="bzdyStep7">
<!-- 标准调研流程-->
<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>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="bzzqyjForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="标准编号" prop="cid" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cid"
placeholder="请输入标准编号"
clearable
></el-input>
</el-form-item>
<el-form-item label="标准名称" prop="cname" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cname"
placeholder="请输入标准名称"
clearable
></el-input>
</el-form-item>
<el-form-item label="征求意见结束日期" prop="endTime" class="add-form-item form-item-disabled">
<el-date-picker
disabled
v-model="form.endTime"
type="date"
placeholder="请选择结束日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<div class="button-list">
<el-button type="primary"
class="common-button-primary add-button"
@click="upload(data, '汇总单.xls')"
size="mini">导出汇总单</el-button>
<el-button type="primary"
class="common-button-primary add-button"
@click="upload(oldData, '征求意见搞.xls')"
size="mini">导出征求意见搞</el-button>
</div>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-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>
<el-table-column
prop="chapterNumber"
label="章条编号"
width="170px">
</el-table-column>
<el-table-column
prop="chapterName"
label="章节名称">
</el-table-column>
<el-table-column
prop="commentText"
label="修改意见内容(包括理由或依据)">
</el-table-column>
<el-table-column
prop="department"
label="提出部门">
</el-table-column>
<el-table-column
prop="responUserName"
label="提出人">
</el-table-column>
<el-table-column
prop="state"
label="处理意见">
<template slot-scope="scope">
<div>{{ stateText(scope.row.state) }}</div>
</template>
</el-table-column>
</el-table>
</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>
<ProcessFooter
show-save
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
>
</ProcessFooter>
</div>
</template>
<script>
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {inboundLiaisonDetail,processCreateStand} from 'api/process'
export default {
name: "bzzqyjStep7",
data() {
return {
oldData: [],
data: [],
commentText: '',
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: '',
defaultProps: {
children: 'children',
label: 'name'
},
treeData: [], // 人员数据
modalshowflag: false, // drawer开关
drawerTitle: '', //drawer标题
textarea: '', // 意见
ListModel: false, // 新增编辑抽屉开关
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: '', // 编号
endTime: '', // 结束日期
cname: '', // 名称
},
formRules: {
responUserList: [
{ required: true, message: '请选择责任人', trigger: 'change' },
]
},
json: {}
}
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
upload (row, title) {
var params = {
columnName: {
chapterNumber : '章条编号',
chapterName : '章节名称',
commentText: '修改意见内容(包括理由或依据)',
department: '提出部门',
responUserName: '提出人'
},
dataList: []
}
params.dataList = row
this.$http.downloadFile('/api/lawss/activiti/export_excel', params, title, res => {})
},
stateText (row) {
if (row === '1') {
return '上报'
} else if (row === '2') {
return '处理后上报'
}
},
upload (row) {
console.log(row);
},
handleTabs(name) {
this.active = name
},
handleSave() {},
handleSubmit() {
if (this.data.length < 1) {
this.$message.warning('请输入征求意见搞')
} else {
var a = 0
var b = 0
var c = 0
for (let s1 = 0; s1 < this.data.length; s1++) {
if (!this.data[s1].chapterNumber) {
a++
}
if (!this.data[s1].chapterName) {
b++
}
if (!this.data[s1].commentText) {
c++
}
}
if (a > 0) {
this.$message.warning('请输入章节编号')
} else if (b > 0) {
this.$message.warning('请输入章节名称')
} else if (c > 0) {
this.$message.warning('请输入意见内容')
} else {
var json = this.json
json.actionFlag = 0
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
}
}
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskIds: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('驳回成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg)
this.form.cid = data.cid
this.form.endTime = data.endTime
this.form.cname = data.cname
var arr = []
data.summaryList.forEach( item => {
if (item.state != '3') {
arr.push(item)
}
})
this.json = data
this.data = arr
this.oldData = data.oldinfo
}).catch(e => {
})
})
},
},
mounted () {
this.getData()
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.bzdyStep7 {
/deep/.el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover{
color: #0c91e5;
}
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;
}
}
}
}
</style>
@@ -0,0 +1,367 @@
<template>
<div class="bzdyStep8">
<!-- 标准调研流程-->
<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>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="bzzqyjForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="标准编号" prop="cid" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cid"
placeholder="请输入标准编号"
clearable
></el-input>
</el-form-item>
<el-form-item label="标准名称" prop="cname" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cname"
placeholder="请输入标准名称"
clearable
></el-input>
</el-form-item>
<el-form-item label="征求意见结束日期" prop="endTime" class="add-form-item form-item-disabled">
<el-date-picker
disabled
v-model="form.endTime"
type="date"
placeholder="请选择结束日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<div class="button-list">
<el-button type="primary"
class="common-button-primary add-button"
@click="upload(data, '汇总单.xls')"
size="mini">导出汇总单</el-button>
<el-button type="primary"
class="common-button-primary add-button"
@click="upload(oldData, '征求意见搞.xls')"
size="mini">导出征求意见搞</el-button>
</div>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-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>
<el-table-column
prop="chapterNumber"
label="章条编号"
width="170px">
</el-table-column>
<el-table-column
prop="chapterName"
label="章节名称">
</el-table-column>
<el-table-column
prop="commentText"
label="修改意见内容(包括理由或依据)">
</el-table-column>
<el-table-column
prop="department"
label="提出部门">
</el-table-column>
<el-table-column
prop="responUserName"
label="提出人">
</el-table-column>
<el-table-column
prop="state"
label="处理意见">
<template slot-scope="scope">
<div>{{ stateText(scope.row.state) }}</div>
</template>
</el-table-column>
</el-table>
</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>
<ProcessFooter
show-save
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
>
</ProcessFooter>
</div>
</template>
<script>
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {inboundLiaisonDetail,processCreateStand} from 'api/process'
export default {
name: "bzzqyjStep8",
data() {
return {
oldData: [],
data: [],
commentText: '',
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: '',
defaultProps: {
children: 'children',
label: 'name'
},
treeData: [], // 人员数据
modalshowflag: false, // drawer开关
drawerTitle: '', //drawer标题
textarea: '', // 意见
ListModel: false, // 新增编辑抽屉开关
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: '', // 编号
endTime: '', // 结束日期
cname: '', // 名称
},
formRules: {
responUserList: [
{ required: true, message: '请选择责任人', trigger: 'change' },
]
},
json: {}
}
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
upload (row, title) {
var params = {
columnName: {
chapterNumber : '章条编号',
chapterName : '章节名称',
commentText: '修改意见内容(包括理由或依据)',
department: '提出部门',
responUserName: '提出人'
},
dataList: []
}
params.dataList = row
this.$http.downloadFile('/api/lawss/activiti/export_excel', params, title, res => {})
},
stateText (row) {
if (row === '1') {
return '上报'
} else if (row === '2') {
return '处理后上报'
}
},
upload (row) {
console.log(row);
},
handleTabs(name) {
this.active = name
},
handleSave() {},
handleSubmit() {
if (this.data.length < 1) {
this.$message.warning('请输入征求意见搞')
} else {
var a = 0
var b = 0
var c = 0
for (let s1 = 0; s1 < this.data.length; s1++) {
if (!this.data[s1].chapterNumber) {
a++
}
if (!this.data[s1].chapterName) {
b++
}
if (!this.data[s1].commentText) {
c++
}
}
if (a > 0) {
this.$message.warning('请输入章节编号')
} else if (b > 0) {
this.$message.warning('请输入章节名称')
} else if (c > 0) {
this.$message.warning('请输入意见内容')
} else {
var json = this.json
json.actionFlag = 0
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
}
}
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskIds: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('驳回成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg)
this.form.cid = data.cid
this.form.endTime = data.endTime
this.form.cname = data.cname
var arr = []
data.summaryList.forEach( item => {
if (item.state != '3') {
arr.push(item)
}
})
this.json = data
this.data = arr
this.oldData = data.oldinfo
}).catch(e => {
})
})
},
},
mounted () {
this.getData()
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.bzdyStep8 {
/deep/.el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover{
color: #0c91e5;
}
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;
}
}
}
}
</style>
@@ -0,0 +1,367 @@
<template>
<div class="bzdyStep9">
<!-- 标准调研流程-->
<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>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="bzzqyjForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="标准编号" prop="cid" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cid"
placeholder="请输入标准编号"
clearable
></el-input>
</el-form-item>
<el-form-item label="标准名称" prop="cname" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cname"
placeholder="请输入标准名称"
clearable
></el-input>
</el-form-item>
<el-form-item label="征求意见结束日期" prop="endTime" class="add-form-item form-item-disabled">
<el-date-picker
disabled
v-model="form.endTime"
type="date"
placeholder="请选择结束日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<div class="button-list">
<el-button type="primary"
class="common-button-primary add-button"
@click="upload(data, '汇总单.xls')"
size="mini">导出汇总单</el-button>
<el-button type="primary"
class="common-button-primary add-button"
@click="upload(oldData, '征求意见搞.xls')"
size="mini">导出征求意见搞</el-button>
</div>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-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>
<el-table-column
prop="chapterNumber"
label="章条编号"
width="170px">
</el-table-column>
<el-table-column
prop="chapterName"
label="章节名称">
</el-table-column>
<el-table-column
prop="commentText"
label="修改意见内容(包括理由或依据)">
</el-table-column>
<el-table-column
prop="department"
label="提出部门">
</el-table-column>
<el-table-column
prop="responUserName"
label="提出人">
</el-table-column>
<el-table-column
prop="state"
label="处理意见">
<template slot-scope="scope">
<div>{{ stateText(scope.row.state) }}</div>
</template>
</el-table-column>
</el-table>
</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>
<ProcessFooter
show-save
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
>
</ProcessFooter>
</div>
</template>
<script>
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {inboundLiaisonDetail,processCreateStand} from 'api/process'
export default {
name: "bzzqyjStep9",
data() {
return {
oldData: [],
data: [],
commentText: '',
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: '',
defaultProps: {
children: 'children',
label: 'name'
},
treeData: [], // 人员数据
modalshowflag: false, // drawer开关
drawerTitle: '', //drawer标题
textarea: '', // 意见
ListModel: false, // 新增编辑抽屉开关
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: '', // 编号
endTime: '', // 结束日期
cname: '', // 名称
},
formRules: {
responUserList: [
{ required: true, message: '请选择责任人', trigger: 'change' },
]
},
json: {}
}
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
upload (row, title) {
var params = {
columnName: {
chapterNumber : '章条编号',
chapterName : '章节名称',
commentText: '修改意见内容(包括理由或依据)',
department: '提出部门',
responUserName: '提出人'
},
dataList: []
}
params.dataList = row
this.$http.downloadFile('/api/lawss/activiti/export_excel', params, title, res => {})
},
stateText (row) {
if (row === '1') {
return '上报'
} else if (row === '2') {
return '处理后上报'
}
},
upload (row) {
console.log(row);
},
handleTabs(name) {
this.active = name
},
handleSave() {},
handleSubmit() {
if (this.data.length < 1) {
this.$message.warning('请输入征求意见搞')
} else {
var a = 0
var b = 0
var c = 0
for (let s1 = 0; s1 < this.data.length; s1++) {
if (!this.data[s1].chapterNumber) {
a++
}
if (!this.data[s1].chapterName) {
b++
}
if (!this.data[s1].commentText) {
c++
}
}
if (a > 0) {
this.$message.warning('请输入章节编号')
} else if (b > 0) {
this.$message.warning('请输入章节名称')
} else if (c > 0) {
this.$message.warning('请输入意见内容')
} else {
var json = this.json
json.actionFlag = 0
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
}
}
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskIds: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('驳回成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg)
this.form.cid = data.cid
this.form.endTime = data.endTime
this.form.cname = data.cname
var arr = []
data.summaryList.forEach( item => {
if (item.state != '3') {
arr.push(item)
}
})
this.json = data
this.data = arr
this.oldData = data.oldinfo
}).catch(e => {
})
})
},
},
mounted () {
this.getData()
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.bzdyStep9 {
/deep/.el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover{
color: #0c91e5;
}
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;
}
}
}
}
</style>
@@ -357,6 +357,83 @@ export default {
prcType: row.prcType
}
})
} else if (row.taskInfo === '责任人填写征求意见'){
this.$router.push({
name: 'bzzqyjStep3',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '责任对接人审批') {
this.$router.push({
name: 'bzzqyjStep4',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '标准法规工程师汇总填写处理意见') {
this.$router.push({
name: 'bzzqyjStep5',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '责任人会签') {
this.$router.push({
name: 'bzzqyjStep6',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '部长+对接人审核') {
this.$router.push({
name: 'bzzqyjStep7',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo.indexOf('技术委员会相关专委会主任') == 0 ) {
this.$router.push({
name: 'bzzqyjStep8',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else {
this.$router.push({
name: 'bzzqyjStep9',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
break
//标准清单更新/发布流程
@@ -159,7 +159,6 @@
</el-table-column>
<el-table-column
label="标准号"
width="200px"
>
<template slot-scope="scope">
<a v-if="scope.row.standYear" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standSortShow }} {{ scope.row.standNumber }}-{{ scope.row.standYear }}</a>
@@ -169,7 +168,6 @@
<el-table-column
prop="standName"
label="标准名称"
width="250px"
>
<template slot-scope="scope">
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
@@ -178,7 +176,7 @@
<el-table-column
prop="issueTime"
sortable="custom"
width="170px"
width="110px"
label="发布日期">
<template slot-scope="scope">
{{ formatIssueDate(scope.row.issueTime) }}
@@ -187,6 +185,7 @@
<el-table-column
prop="xcxssrq"
sortable="custom"
width="150px"
label="新车型实施日期">
<template slot-scope="scope">
<span>{{ formatText(scope.row.XCXSSRQ) }}</span>
@@ -195,6 +194,7 @@
<el-table-column
prop="zccssrq"
sortable="custom"
width="150px"
label="在产车实施日期">
<template slot-scope="scope">
<span>{{ formatText(scope.row.ZCCSSRQ) }}</span>
@@ -274,92 +274,132 @@
:rules="sarStandardsInfoRules"
class="label-input-form"
>
<el-form-item
prop="isRelateAccess"
label-width="150px"
class="add-form-item"
title="A类必填项多,仅A类可纳入法规清单。"
>
<template slot="label">重要度<i class="el-icon-warning-outline"></i></template>
<el-select v-model="sarStandardsInfoEO.isRelateAccess" @change="isRegulationsChange">
<el-option value="1" label="A" key="1"></el-option>
<el-option value="0" label="B" key="0"></el-option>
</el-select>
</el-form-item>
<el-form-item label="适用区域" prop="country" label-width="150px" class="add-form-item form-item-disabled">
<el-select v-model="sarStandardsInfoEO.country" disabled >
<el-option v-for="opt in countryOptions" :value="opt.value === undefined ? '' :opt.value" :key="opt.value" :label="opt.label">{{ opt.label }}</el-option>
</el-select>
</el-form-item>
<el-form-item label="标准类别" prop="standSort" label-width="150px" class="add-form-item">
<el-select v-model="sarStandardsInfoEO.standSort" filterable>
<el-option
v-for="item in standSortOptions"
placeholder="请选择"
:key="item.value"
:value="item.value"
:label="item.label"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="标准编号" prop="standNumber" label-width="150px" class="add-form-item">
<el-input v-model="sarStandardsInfoEO.standNumber"
placeholder="请输入标准编号"
clearable></el-input>
</el-form-item>
<el-form-item label="标准年份" prop="standYear" label-width="150px" class="add-form-item">
<el-input v-model="sarStandardsInfoEO.standYear"
placeholder="请输入标准年份"
clearable></el-input>
</el-form-item>
<el-form-item label="中文名称" prop="standName" label-width="150px" class="add-form-item">
<el-input v-model="sarStandardsInfoEO.standName"
placeholder="请输入中文名称"
clearable></el-input>
</el-form-item>
<el-form-item label="英文名称" prop="standEnName" label-width="150px" class="add-form-item">
<el-input v-model="sarStandardsInfoEO.standEnName"
placeholder="请输入标准英文名称"
clearable></el-input>
</el-form-item>
<el-form-item title="“计划修订”、“修订中”均为现行有效版本;“已修订”标准的有效性根据实际实施情况判定。"
prop="standState" label-width="150px" class="add-form-item">
<template slot="label">文本状态<i class="el-icon-warning-outline"></i></template>
<el-select v-model="sarStandardsInfoEO.textStatus"
placeholder="请选择文本状态"
clearable>
<el-option
v-for="opt in standStateOptions"
:disabled="opt.value !== 'ZTXXYX' && opt.value !== standState && modalshowtitle !== '编辑国内标准'"
:key="opt.value"
:value="opt.value === undefined ? '' :opt.value" :label="opt.label"
>
{{ opt.label }}
</el-option>
</el-select>
</el-form-item>
<custom-date-pick-with-text2
:config="{
attrName: '发布日期',
attrField: 'issueTime'
}"
v-model="sarStandardsInfoEO.issueTime"
:disabled="formdisableflag"
></custom-date-pick-with-text2>
<!--</el-form-item>-->
<el-form-item label="文本说明" prop="synopsis" label-width="150px" class="add-form-item">
<el-input
type="text"
v-model="sarStandardsInfoEO.synopsis"
placeholder="请输入"
clearable
></el-input>
</el-form-item>
<!-- <el-form-item-->
<!-- prop="isRelateAccess"-->
<!-- label-width="150px"-->
<!-- class="add-form-item"-->
<!-- title="A类必填项多,仅A类可纳入法规清单。"-->
<!-- >-->
<!-- <template slot="label">重要度<i class="el-icon-warning-outline"></i></template>-->
<!-- <el-select v-model="sarStandardsInfoEO.isRelateAccess" @change="isRegulationsChange">-->
<!-- <el-option value="1" label="A" key="1"></el-option>-->
<!-- <el-option value="0" label="B" key="0"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="适用区域" prop="country" label-width="150px" class="add-form-item form-item-disabled">-->
<!-- <el-select v-model="sarStandardsInfoEO.country" disabled >-->
<!-- <el-option v-for="opt in countryOptions" :value="opt.value === undefined ? '' :opt.value" :key="opt.value" :label="opt.label">{{ opt.label }}</el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="文本说明" prop="synopsis" label-width="150px" class="add-form-item">-->
<!-- <el-input-->
<!-- type="text"-->
<!-- v-model="sarStandardsInfoEO.synopsis"-->
<!-- placeholder="请输入"-->
<!-- clearable-->
<!-- ></el-input>-->
<!-- </el-form-item>-->
<!-- 动态数据-->
<template v-for="(displayLocation, index) in dynamicFormField">
<el-col :span="24" :key="index">
<div class="divider-line">{{ displayLocation.label }}</div>
</el-col>
<template v-if="index === 0" >
<el-form-item label="标准类别" prop="standSort" label-width="150px" class="add-form-item">
<el-select v-model="sarStandardsInfoEO.standSort" filterable>
<el-option
v-for="item in standSortOptions"
placeholder="请选择"
:key="item.value"
:value="item.value"
:label="item.label"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="标准编号" prop="standNumber" label-width="150px" class="add-form-item">
<el-input v-model="sarStandardsInfoEO.standNumber"
placeholder="请输入标准编号"
clearable></el-input>
</el-form-item>
<el-form-item label="标准年份" prop="standYear" label-width="150px" class="add-form-item">
<el-input v-model="sarStandardsInfoEO.standYear"
placeholder="请输入标准年份"
clearable></el-input>
</el-form-item>
<el-form-item label="标准中文名称" prop="standName" label-width="150px" class="add-form-item">
<el-input v-model="sarStandardsInfoEO.standName"
placeholder="请输入中文名称"
clearable></el-input>
</el-form-item>
<el-form-item label="标准英文名称" prop="standEnName" label-width="150px" class="add-form-item">
<el-input v-model="sarStandardsInfoEO.standEnName"
placeholder="请输入标准英文名称"
clearable></el-input>
</el-form-item>
<el-form-item prop="standNature" label-width="150px" class="add-form-item">
<template slot="label">标准性质</template>
<el-select v-model="sarStandardsInfoEO.standNature"
placeholder="请选择标准性质"
clearable>
<el-option
v-for="item in standNatureOptions"
placeholder="请选择"
:key="item.value"
:value="item.value"
:label="item.label"
>
{{ item.label }}
</el-option>
</el-select>
</el-form-item>
<el-form-item title="“计划修订”、“修订中”均为现行有效版本;“已修订”标准的有效性根据实际实施情况判定。"
prop="standState" label-width="150px" class="add-form-item">
<template slot="label">文本状态<i class="el-icon-warning-outline"></i></template>
<el-select v-model="sarStandardsInfoEO.textStatus"
placeholder="请选择文本状态"
clearable>
<el-option
v-for="opt in standStateOptions"
:disabled="opt.value !== 'ZTXXYX' && opt.value !== standState && modalshowtitle !== '编辑国内标准'"
:key="opt.value"
:value="opt.value === undefined ? '' :opt.value" :label="opt.label"
>
{{ opt.label }}
</el-option>
</el-select>
</el-form-item>
<custom-date-pick-with-text2
:config="{
attrName: '发布日期',
attrField: 'issueTime'
}"
v-model="sarStandardsInfoEO.issueTime"
:disabled="formdisableflag"
></custom-date-pick-with-text2>
<!--</el-form-item>-->
<el-form-item
prop="isRelateAccess"
label-width="150px"
class="add-form-item"
>
<template slot="label">是否纳入认证清单</template>
<el-select v-model="sarStandardsInfoEO.isRelateAccess" @change="isRegulationsChange">
<el-option value="1" label="是" key="1"></el-option>
<el-option value="2" label="否" key="2"></el-option>
</el-select>
</el-form-item>
<el-form-item
prop="standSystem"
label-width="150px"
class="add-form-item"
>
<template slot="label">标准体系</template>
<tree-select
:data="standSystemOptions"
:defaultProps="defaultProps" :checkedKeys="defaultCheckedKeys"
:nodeKey="nodeKey" @popoverHide="popoverHide"></tree-select>
</el-form-item>
</template>
<template v-for="field in displayLocation.child">
<template v-if="field.attrField === 'EOPSSRQ'">
<custom-eop-date-pick
@@ -1013,6 +1053,7 @@ import CustomRoleTree from '@/components/CustomFormComponents/roleTree'
import Bus from '@/common/eventHub'
import CustomDatePickWithText2 from '@/components/CustomFormComponents/DatePickerWithText2'
import { interfaceUrl } from '@/sysConfig'
import TreeSelect from '@/components/treeSelect/treeSelect.vue';
export default {
name: 'domesticStandardsAndRegulations',
@@ -1032,7 +1073,8 @@ export default {
CustomDatePickWithText,
CustomSVPPS,
CustomRoleTree,
CustomDatePickWithText2
CustomDatePickWithText2,
TreeSelect
},
data () {
return {
@@ -1041,6 +1083,12 @@ export default {
children: 'children'
},
treeList: [],
defaultProps: {
children: 'children',
label: 'menuName'
},
nodeKey: 'id',
defaultCheckedKeys: [],
exportLoading : false,
visibleOrgTable: false,
orgTableVal: '',
@@ -1084,7 +1132,7 @@ export default {
},
productModelAdd: {
id : "",
sorDivide : null,
sorDivide : "INLAND_STAND",
menuName : "",
parentId : null,
parentIds : null,
@@ -1138,11 +1186,17 @@ export default {
stahndinfoList: [],
tableFlag: '',
countryOptions: [],
cysdOptions: [], // 我司参与深度下拉框
sycpxOptions: [], // 适用产品线下拉框
zrbmOptions: [], // 责任部门下拉框
zrgcsOptions: [], // 责任工程师下拉框
txlbOptions: [], // 体系类别下拉框
regionOptions: [], // 区域
standSortOptions: [], // 标准类别下拉框
standSortConfigOptions: [], // 标准类别下拉框
applyArcticOptions: [], // 适用车型下拉框
standStateOptions: [], // 文本状态下拉框
standSystemOptions: [], // 标准体系下拉框
standNatureOptions: [], // 标准性质下拉框
adoptExtentOptions: [], // 采标程度下拉框
emergyKindOptions: [], // 能源种类下拉框
@@ -1247,6 +1301,7 @@ export default {
applyArctic: '',
standNumber: '',
standYear: '',
standSystem: '',
standName: '',
standEnName: '',
standState: '',
@@ -1436,16 +1491,16 @@ export default {
{required: true, message: '中文名称不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '中文名称不能超过500个字符', trigger: 'change'}
],
standEnName: [
{required: true, message: '英文名称不能为空', trigger: 'change'},
{type: 'string', max: 1000, message: '英文名称不能超过1000个字符', trigger: 'change'}
],
isRelateAccess: [
{ required: true, message: '重要度不能为空', trigger: 'change' }
],
issueTime:[
{required: true, message: '发布日期不能为空', trigger: 'change'}
]
// standEnName: [
// {required: true, message: '英文名称不能为空', trigger: 'change'},
// {type: 'string', max: 1000, message: '英文名称不能超过1000个字符', trigger: 'change'}
// ],
// isRelateAccess: [
// { required: true, message: '重要度不能为空', trigger: 'change' }
// ],
// issueTime:[
// {required: true, message: '发布日期不能为空', trigger: 'change'}
// ]
},
sarStandardsInfoRules: {
standSort: [
@@ -1598,6 +1653,11 @@ export default {
}
},
methods: {
popoverHide (checkedIds, checkedData) {
console.log(checkedData)
this.sarStandardsInfoEO.standSystem = checkedData.id
console.log(this.sarStandardsInfoEO.standSystem);
},
closeModal () {
this.productModal = false
this.closeDrawer()
@@ -1833,7 +1893,9 @@ export default {
const [displayLocation] = values
const formFieldList = this.formFieldList
this.sarStandardsInfoEO = JSON.parse(JSON.stringify(item))
this.sarStandardsInfoEO.standSort = item.standSort
console.log(this.sarStandardsInfoEO)
this.defaultCheckedKeys = [this.sarStandardsInfoEO.standSystem];
this.sarStandardsInfoEO.standSort = item.standSort
if (this.sarStandardsInfoEO.putTime != null && this.sarStandardsInfoEO.putTime !== '') {
this.sarStandardsInfoEO.putTime = this.sarStandardsInfoEO.putTime.replace(new RegExp(/-/gm), '/')
this.sarStandardsInfoEO.putTime = new Date(this.sarStandardsInfoEO.putTime)
@@ -2124,6 +2186,16 @@ export default {
}
})
},
// 查询所有菜单
selectStandardMenu () {
this.$http.get('lawss/sarMenuStandard', {
dicId: this.dictionaryId
}, {}, res => {
if (res.ok) {
this.data = res.data
}
})
},
// 树-删除
sureDeleteSarMenu () {
this.$confirm('是否删除?', '提示', {
@@ -2582,6 +2654,7 @@ export default {
if (flag) {
// 时间格式修改
let nowstandinfo = JSON.parse(JSON.stringify(this.sarStandardsInfoEO))
console.log(nowstandinfo)
if (nowstandinfo.putTime != null && nowstandinfo.putTime !== '') {
nowstandinfo.putTime = this.$dateFormat(this.sarStandardsInfoEO.putTime, 'yyyy-MM-dd hh:mm:ss')
}
@@ -2611,7 +2684,9 @@ export default {
sarStandAttrObj[item.attrField] = nowstandinfo[item.attrField]
})
nowstandinfo['sarStandAttrEOStr'] = JSON.stringify(sarStandAttrObj).replace(/"/g, "'")
this.$http.postData(this.addOrUPdateFlag === 1 ? 'sarStandardsInfo/sar-standards-info/addarStandardsInfo' : 'lawss/sarStandardsInfo/updateSarStandardsInfo', nowstandinfo, {
console.log(formFieldList)
console.log(nowstandinfo)
this.$http.postData(this.addOrUPdateFlag === 1 ? 'sarStandardsInfo/sar-standards-info/addarStandardsInfo' : 'sarStandardsInfo/sar-standards-info/updateSarStandardsInfo', nowstandinfo, {
_this: this
}, res => {
this.isSubmit = false
@@ -3596,7 +3671,7 @@ export default {
* 动态改变必填项
* */
isRegulationsChange (val) {
if (val === '0') {
if (val === '2') {
const formFieldList = this.formFieldList
const rules = {...this.defaultAddFormFieldRules}
formFieldList.forEach((item) => {
@@ -3807,28 +3882,31 @@ export default {
}
}
},
async mounted () {
created(){
},
async mounted () {
// 进入页面后查询树形结构目录
await this.selectMenu()
// 进入页面后查询标准体系树形结构目录
await this.selectStandardMenu()
this.treeReload = true
// 从数据库中查询各下拉框数据
this.$http.get('sys/dictype/getDicTypeListCode', '', {
_this: this
}, res => {
this.allSelectOptions = res.data || {}
this.countryOptions = res.data.COUNTRY
this.regionOptions = res.data.REGION // 区域
this.standSortOptions = res.data.STANDCLASSIFY
this.applyArcticOptions = res.data.PRODUCTTYPE // 根据需求文档,产品类别对应标准属性中的“适用车型”
this.standStateOptions = res.data.STANDSTATE
this.standNatureOptions = res.data.SARPROPERTY // 标准性质
this.adoptExtentOptions = res.data.DEGREESTANDARD
this.emergyKindOptions = res.data.ENERGYTYPES
this.applyAuthOptions = res.data.PROVETYPE // 适用认证下拉框
this.categoryOptions = res.data.CATEGORY // 能源种类
this.assemClassOptions = res.data.ASSEMCLASSIFY // 总成分类
this.categoryConfigOptions = res.data.CATEGORY
this.standAttributeList = res.data.RULETYPE
this.allSelectOptions = res.data || {}
this.standSortOptions = res.data.STANDCLASSIFY // 标准类别
this.standNatureOptions = res.data.SARPROPERTY // 标准性质
this.standStateOptions = res.data.WBZTCLASS // 文本状态
this.standSystemOptions = res.data.BZTXCLASS // 标准体系
this.applyArcticOptions = res.data.ENERGYTYPES // 适用车型
this.categoryOptions = res.data.NYLXCLASS // 能源类型
this.applyAuthOptions = res.data.SYRZCLASS // 适用认证
this.cysdOptions = res.data.WSCYSD // 我司参与深度
this.sycpxOptions = res.data.SYCPXCLASS // 适用产品线
this.zrbmOptions = res.data.ZRBMCLASS // 责任部门
this.zrgcsOptions = res.data.ZRGCSCLASS // 责任工程师
this.txlbOptions = res.data.TXLBCLASS // 体系类别
this.getGzzOption()
}, e => {
})
@@ -2983,7 +2983,7 @@ export default {
}
formData['attrSearchStr'] = JSON.stringify(attrSearchMap)
this.SarExportSearchEo = item || this.sarBussionessSearch
this.$http.get('lawss/sarStandardsInfo/getSarStandardsInfoPage', formData, {
this.$http.get('sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage', formData, {
_this: this, loading: 'loading'
}, res => {
for (let i = 0; i < res.data.list.length; i++) {
@@ -13,6 +13,32 @@
@node-click="treeClick"
default-expand-all
:expand-on-click-node="false">
<span class="custom-tree-node" slot-scope="{ node, data }" @mouseenter="mouseenter(data)" @mouseleave="mouseleave(data)">
<span> {{ node.label}} </span>
<span>
<el-button
type="text"
size="mini"
v-show="data.show"
@click="() => append(data)">
新增
</el-button>
<el-button
type="text"
size="mini"
v-show="data.show"
@click="() => update(data)">
编辑
</el-button>
<el-button
type="text"
size="mini"
v-show="data.showDel"
@click="() => remove(node, data)">
删除
</el-button>
</span>
</span>
</el-tree>
</div>
<div class="tree-collapse" @click="treeCollapse" :class="{ 'tree-close': sideClose }">
@@ -55,14 +81,16 @@
type="primary"
class="common-button-primary"
size="mini"
v-btn-permission="'366c89d1c54465faca96aaed26a158b1'"
@click="searchBtnClick(standCommonlySearch)">
</el-button>
<el-button
class="common-button-default"
icon="el-icon-refresh-left"
size="mini"
v-btn-permission="'31ac9f600d8a3072ba088f1c106df359'"
@click="clearAllSearch('standCommonlySearch')"></el-button>
<el-button type="primary" class="common-button-primary" size="mini" @click="selectMoreBtn"><i class="iconfont">&#xe7a5;</i>高级查询</el-button>
<el-button type="primary" class="common-button-primary" size="mini" @click="selectMoreBtn"><i class="iconfont" v-btn-permission="'c9390928e5a3107956c7d43d8bde5cba'">&#xe7a5;</i>高级查询</el-button>
</el-form-item>
</el-form>
</div>
@@ -73,38 +101,38 @@
</div>
</table-tools-bar>
<div class="action-bar">
<el-button type="primary"
class="common-button-primary add-button"
size="mini"
@click="addModal"
v-btn-permission="'ceb5fb1e00'"
:disabled="addBtnDisabled"><i class="iconfont">&#xe84e;</i>新增</el-button>
<el-button class="common-button-default in-button"
size="mini"
:loading="searching"
@click="addImportModal(1)"
v-btn-permission="'FQ5ECZ286K'"><i class="iconfont">&#xe6de;</i>导入</el-button>
<el-button class="common-button-default export-button"
size="mini"
@click="exportStandard()"
title="不勾选时默认导出所有筛选项;勾选时仅导出勾选项"
v-btn-permission="'J2X4KHNN4N'"><i class="iconfont">&#xe6e9;</i>导出</el-button>
<el-button class="common-button-default delete-button"
:loading="delLoading"
size="mini"
@click="deleteStand(2)"
v-btn-permission="'YZ2A6NPGFP'"><i class="iconfont">&#xe61b;</i>批量删除</el-button>
<el-button class="common-button-default"
size="mini"
@click="deleteStandFromKind(2)"
v-btn-permission="'XSS8C793DQ'"><i class="iconfont">&#xe611;</i>移除标准</el-button>
<el-button class="common-button-default"
size="mini" :loading="searching"
@click="uploadImportModal(1)"
v-btn-permission="'4mFaJU3fTS'"><i class="iconfont">&#xe825;</i>模板下载</el-button>
<el-button class="common-button-default"
size="mini" @click="configurationStandard"
v-btn-permission="'98RZSZMZVQ'"><i class="iconfont">&#xe669;</i>配置标准</el-button>
<el-button type="primary"
class="common-button-primary add-button"
size="mini"
@click="addModal"
v-btn-permission="'ceb5fb1e00'"
:disabled="addBtnDisabled"><i class="iconfont">&#xe84e;</i>新增</el-button>
<el-button class="common-button-default in-button"
size="mini"
:loading="searching"
@click="addImportModal(1)"
v-btn-permission="'FQ5ECZ286K'"><i class="iconfont">&#xe6de;</i>导入</el-button>
<el-button class="common-button-default export-button"
size="mini"
@click="exportStandard()"
title="不勾选时默认导出所有筛选项;勾选时仅导出勾选项"
v-btn-permission="'8871ed1be74cf65851659514880bb50a'"><i class="iconfont">&#xe6e9;</i>导出</el-button>
<el-button class="common-button-default delete-button"
:loading="delLoading"
size="mini"
@click="deleteStand(2)"
v-btn-permission="'4d01342db0f56f01bfceaee7b46904f4'"><i class="iconfont">&#xe61b;</i>批量删除</el-button>
<el-button class="common-button-default"
size="mini"
@click="deleteStandFromKind(2)"
v-btn-permission="'29bf24bbd156c06f136cc89b1c7b2bb0'"><i class="iconfont">&#xe611;</i>移除标准</el-button>
<el-button class="common-button-default"
size="mini" :loading="searching"
@click="uploadImportModal(1)"
v-btn-permission="'4mFaJU3fTS'"><i class="iconfont">&#xe825;</i>模板下载</el-button>
<el-button class="common-button-default"
size="mini" @click="configurationStandard"
v-btn-permission="'590049684c0af005c6b3d1f0ebcf897e'"><i class="iconfont">&#xe669;</i>配置标准</el-button>
</div>
<div class="content">
<div class="table-wrap">
@@ -189,20 +217,20 @@
<el-dropdown-item
v-if="scope.row.collectBtn"
:command="[scope.row, '收藏']"
v-btn-permission="'8XUDZZEERN'"
v-btn-permission="'f9745194958bc9ed3ee5127459795dbc'"
>
收藏
</el-dropdown-item>
<el-dropdown-item
v-else
:command="[scope.row, '取消收藏']"
v-btn-permission="'8XUDZZEERN'"
v-btn-permission="'47e155667f521467ed941c89d118e770'"
>
取消收藏
</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '编辑']" v-btn-permission="'PVSCKGE7XU'">编辑</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '分享']" v-btn-permission="'LTS4PZ2AR7'">分享</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '删除']" v-btn-permission="'YZ2A6NPGFP'">删除</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '编辑']" v-btn-permission="'e8d690904ee1895dd0d17d9c794fbcd7'">编辑</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '分享']" v-btn-permission="'413e676a155d6eb2dfbe08df8cbcf682'">分享</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '删除']" v-btn-permission="'413e676a155d6eb2dfbe08df8cbcf682'">删除</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
@@ -303,86 +331,132 @@
:rules="sarStandardsInfoRules"
class="label-input-form"
>
<el-form-item
prop="isRelateAccess"
label-width="150px"
class="add-form-item"
title="A类必填项多,仅A类可纳入法规清单。"
>
<template slot="label">重要度<i class="el-icon-warning-outline"></i></template>
<el-select v-model="sarStandardsInfoEO.isRelateAccess" @change="isRegulationsChange">
<el-option value="1" label="A" key="1"></el-option>
<el-option value="0" label="B" key="0"></el-option>
</el-select>
</el-form-item>
<el-form-item label="标准类别" prop="standSort" label-width="150px" class="add-form-item">
<el-select v-model="sarStandardsInfoEO.standSort" filterable>
<el-option
v-for="item in standSortOptions"
placeholder="请选择"
:key="item.value"
:value="item.value"
:label="item.label"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="标准编号" prop="standNumber" label-width="150px" class="add-form-item">
<el-input v-model="sarStandardsInfoEO.standNumber"
placeholder="请输入标准编号"
clearable></el-input>
</el-form-item>
<el-form-item label="标准年份/系列" prop="standYear" label-width="150px" class="add-form-item">
<el-input v-model="sarStandardsInfoEO.standYear"
placeholder="请输入标准年份/系列"
clearable></el-input>
</el-form-item>
<el-form-item label="中文名称" prop="standName" label-width="150px" class="add-form-item">
<el-input v-model="sarStandardsInfoEO.standName"
placeholder="请输入标准名称"
clearable></el-input>
</el-form-item>
<el-form-item label="英文名称" prop="standEnName" label-width="150px" class="add-form-item">
<el-input v-model="sarStandardsInfoEO.standEnName"
placeholder="请输入标准英文名称"
clearable></el-input>
</el-form-item>
<el-form-item title="“计划修订”、“修订中”均为现行有效版本;“已修订”标准的有效性根据实际实施情况判定。"
prop="standState" label-width="150px" class="add-form-item">
<template slot="label">标准状态<i class="el-icon-warning-outline"></i></template>
<el-select v-model="sarStandardsInfoEO.standState"
placeholder="请选择标准状态"
clearable>
<el-option
v-for="opt in standStateOptions"
:disabled="opt.value !== 'ZTXXYX' && opt.value !== standState && modalshowtitle !== '编辑海外标准'"
:key="opt.value"
:value="opt.value === undefined ? '' :opt.value" :label="opt.label"
>
{{ opt.label }}
</el-option>
</el-select>
</el-form-item>
<custom-date-pick-with-text2
:config="{
attrName: '发布日期',
attrField: 'issueTime'
}"
v-model="sarStandardsInfoEO.issueTime"
:disabled="formdisableflag"
></custom-date-pick-with-text2>
<el-form-item label="文本说明" prop="synopsis" label-width="150px" class="add-form-item">
<el-input
type="text"
v-model="sarStandardsInfoEO.synopsis"
placeholder="请输入"
clearable
></el-input>
</el-form-item>
<!-- <el-form-item-->
<!-- prop="isRelateAccess"-->
<!-- label-width="150px"-->
<!-- class="add-form-item"-->
<!-- title="A类必填项多,仅A类可纳入法规清单。"-->
<!-- >-->
<!-- <template slot="label">重要度<i class="el-icon-warning-outline"></i></template>-->
<!-- <el-select v-model="sarStandardsInfoEO.isRelateAccess" @change="isRegulationsChange">-->
<!-- <el-option value="1" label="A" key="1"></el-option>-->
<!-- <el-option value="0" label="B" key="0"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="适用区域" prop="country" label-width="150px" class="add-form-item form-item-disabled">-->
<!-- <el-select v-model="sarStandardsInfoEO.country" disabled >-->
<!-- <el-option v-for="opt in countryOptions" :value="opt.value === undefined ? '' :opt.value" :key="opt.value" :label="opt.label">{{ opt.label }}</el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="文本说明" prop="synopsis" label-width="150px" class="add-form-item">-->
<!-- <el-input-->
<!-- type="text"-->
<!-- v-model="sarStandardsInfoEO.synopsis"-->
<!-- placeholder="请输入"-->
<!-- clearable-->
<!-- ></el-input>-->
<!-- </el-form-item>-->
<!-- 动态数据-->
<template v-for="(displayLocation, index) in dynamicFormField">
<el-col :span="24" :key="index">
<div class="divider-line">{{ displayLocation.label }}</div>
</el-col>
<template v-if="index === 0" >
<el-form-item label="标准类别" prop="standSort" label-width="150px" class="add-form-item">
<el-select v-model="sarStandardsInfoEO.standSort" filterable>
<el-option
v-for="item in standSortOptions"
placeholder="请选择"
:key="item.value"
:value="item.value"
:label="item.label"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="标准编号" prop="standNumber" label-width="150px" class="add-form-item">
<el-input v-model="sarStandardsInfoEO.standNumber"
placeholder="请输入标准编号"
clearable></el-input>
</el-form-item>
<el-form-item label="标准年份" prop="standYear" label-width="150px" class="add-form-item">
<el-input v-model="sarStandardsInfoEO.standYear"
placeholder="请输入标准年份"
clearable></el-input>
</el-form-item>
<el-form-item label="标准中文名称" prop="standName" label-width="150px" class="add-form-item">
<el-input v-model="sarStandardsInfoEO.standName"
placeholder="请输入中文名称"
clearable></el-input>
</el-form-item>
<el-form-item label="标准英文名称" prop="standEnName" label-width="150px" class="add-form-item">
<el-input v-model="sarStandardsInfoEO.standEnName"
placeholder="请输入标准英文名称"
clearable></el-input>
</el-form-item>
<el-form-item prop="standNature" label-width="150px" class="add-form-item">
<template slot="label">标准性质</template>
<el-select v-model="sarStandardsInfoEO.standNature"
placeholder="请选择标准性质"
clearable>
<el-option
v-for="item in standNatureOptions"
placeholder="请选择"
:key="item.value"
:value="item.value"
:label="item.label"
>
{{ item.label }}
</el-option>
</el-select>
</el-form-item>
<el-form-item title="“计划修订”、“修订中”均为现行有效版本;“已修订”标准的有效性根据实际实施情况判定。"
prop="standState" label-width="150px" class="add-form-item">
<template slot="label">文本状态<i class="el-icon-warning-outline"></i></template>
<el-select v-model="sarStandardsInfoEO.textStatus"
placeholder="请选择文本状态"
clearable>
<el-option
v-for="opt in standStateOptions"
:disabled="opt.value !== 'ZTXXYX' && opt.value !== standState && modalshowtitle !== '编辑国内标准'"
:key="opt.value"
:value="opt.value === undefined ? '' :opt.value" :label="opt.label"
>
{{ opt.label }}
</el-option>
</el-select>
</el-form-item>
<custom-date-pick-with-text2
:config="{
attrName: '发布日期',
attrField: 'issueTime'
}"
v-model="sarStandardsInfoEO.issueTime"
:disabled="formdisableflag"
></custom-date-pick-with-text2>
<!--</el-form-item>-->
<el-form-item
prop="isRelateAccess"
label-width="150px"
class="add-form-item"
>
<template slot="label">是否纳入认证清单</template>
<el-select v-model="sarStandardsInfoEO.isRelateAccess" @change="isRegulationsChange">
<el-option value="1" label="是" key="1"></el-option>
<el-option value="2" label="否" key="2"></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item-->
<!-- prop="standSystem"-->
<!-- label-width="150px"-->
<!-- class="add-form-item"-->
<!-- >-->
<!-- <template slot="label">标准体系</template>-->
<!-- <tree-select-->
<!-- :data="standSystemOptions"-->
<!-- :defaultProps="defaultProps" :checkedKeys="defaultCheckedKeys"-->
<!-- :nodeKey="nodeKey" @popoverHide="popoverHide"></tree-select>-->
<!-- </el-form-item>-->
</template>
<template v-for="field in displayLocation.child">
<template v-if="field.attrField === 'EOPSSRQ'">
<custom-eop-date-pick
@@ -855,6 +929,64 @@
<el-button size="mini" class="common-button-default" icon="el-icon-close" @click="treeCancel">取消</el-button>
</div>
</el-drawer>
<!-- 新建抽屉 -->
<el-drawer
:wrapperClosable="false"
:title="productTitle"
:visible.sync="productModal"
size="800px"
:before-close="closeDrawer"
label-width="130px"
>
<div class="demo-drawer-content">
<el-form :model="productModelAdd"
ref="productModelAdd"
:rules="productRules"
class="label-input-form"
label-width="130px">
<el-row>
<el-col>
<el-form-item label="菜单名称" prop="menuName" class="add-form-item">
<el-input v-model.trim="productModelAdd.menuName" placeholder="请输入菜单名称" clearable></el-input>
</el-form-item>
</el-col>
<el-col>
<el-form-item label="排序号" prop="displaySeq" class="add-form-item">
<el-input v-model.number="productModelAdd.displaySeq"
number
placeholder="请输入排序号"
:maxlength="4"
clearable></el-input>
</el-form-item>
</el-col>
<el-col>
<el-form-item v-if="modalType === 2" label="上级菜单" prop="parentIdsName" class="add-form-item">
<el-input v-model="productModelAdd.parentIdsName" disabled
clearable></el-input>
</el-form-item>
</el-col>
<el-col>
<el-form-item label="描述" prop="remarks" class="add-form-item">
<el-input v-model.trim="productModelAdd.remarks"
placeholder="请输入描述"
clearable></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="demo-drawer-footer">
<el-button
class="common-button-primary"
icon="el-icon-check"
type="primary"
@click="saveProduct('productModelAdd')">提交</el-button>
<el-button
class="common-button-default"
icon="el-icon-close"
@click="closeModal">取消</el-button>
</div>
</el-drawer>
<!-- 导入失败 -->
<el-dialog :visible.sync="importFailed" :close-on-click-modal="false" width="400px">
<p slot="title" style="color:#f60">
@@ -901,6 +1033,7 @@ import CustomSVPPS from '@/components/CustomFormComponents/SVPPS'
import CustomRoleTree from '@/components/CustomFormComponents/roleTree'
import CustomDatePickWithText2 from '@/components/CustomFormComponents/DatePickerWithText2'
import { interfaceUrl } from "@/sysConfig";
import TreeSelect from '@/components/treeSelect/treeSelect.vue';
export default {
name: 'foreignStandardsAndRegulations',
@@ -920,7 +1053,8 @@ export default {
CustomDatePickWithText,
CustomSVPPS,
CustomRoleTree,
CustomDatePickWithText2
CustomDatePickWithText2,
TreeSelect
},
data () {
return {
@@ -929,6 +1063,15 @@ export default {
label: 'menuName',
children: 'children'
},
defaultProps: {
children: 'children',
label: 'menuName'
},
nodeKey: 'id',
defaultCheckedKeys: [],
productModal: false, // 模态框是否打开
modalType: '',
productTitle: '', // 模态框标题
menuTreeLoading: true,
orderBy:'',
nowOrder:'',
@@ -1004,6 +1147,11 @@ export default {
countryOptions: [],
regionOptions: [], // 区域
standSortOptions: [], // 标准类别下拉框
standSystemOptions: [], // 标准体系下拉框
sycpxOptions: [], // 适用产品线下拉框
zrbmOptions: [], // 责任部门下拉框
zrgcsOptions: [], // 责任工程师下拉框
txlbOptions: [], // 体系类别下拉框
standSortConfigOptions: [], // 标准类别下拉框
applyArcticOptions: [], // 适用车型下拉框
standStateOptions: [], // 标准状态下拉框
@@ -1229,6 +1377,52 @@ export default {
menuModalTitle: '',
menuModalFlag: false,
deleteMenuModal: false,
// 规范
productRules: {
menuName: [
{required: true, message: '一级菜单不能为空', trigger: 'blur'},
{type: 'string', max: 100, message: '最多输入100位', trigger: 'blur'}
],
displaySeq: [
{type: 'number', required: true, message: '排序号不能为空且为正整数', trigger: 'blur'},
{type: 'string', validator: this.verify.validStandNumInCompile2, trigger: 'blur'}
],
remarks: [
{type: 'string', max: 500, message: '最多输入500位', trigger: 'blur'}
],
dicTypeName: [
{required: true, message: '选项不能为空', trigger: 'blur'},
{type: 'string', max: 100, message: '最多输入100位', trigger: 'blur'}
],
showIndex: [
{type: 'number', required: true, message: '排序号不能为空且为正整数', trigger: 'blur'},
{type: 'string', validator: this.verify.validStandNumInCompile2, trigger: 'blur'}
],
describes: [
{type: 'string', max: 500, message: '最多输入500位', trigger: 'blur'}
]
},
productModelAdd: {
id : "",
sorDivide : "FOREIGN_STAND",
menuName : "",
parentId : null,
parentIds : null,
parentIdsName : "",
displaySeq : "",
validFlag : "",
creationTime : "",
modifyTime : "",
remarks : "",
children : [],
// 模态框信息
dicTypeName: '',
showIndex: '',
// 描述
describes: '',
// 唯一辨识
dicId: ""
},
sarMenu: {
id: '',
parentId: '',
@@ -1454,6 +1648,77 @@ export default {
watch: {
},
methods: {
popoverHide (checkedIds, checkedData) {
console.log(checkedIds);
console.log(checkedData);
this.sarStandardsInfoEO.standSystem = checkedData.id
console.log(this.sarStandardsInfoEO.standSystem);
},
closeModal () {
this.productModal = false
this.closeDrawer()
},
// 提交新增/修改
saveProduct (name) {
this.$refs[name].validate((valid) => {
if (valid) {
if (this.modalType === 1) {
this.$http.postData('sarResource/ts-resource/add', this.productModelAdd, {
_this: this
}, res => {
if (res.ok) {
this.selectMenu()
this.productModal = false
this.productModelAdd = {
// 模态框信息
dicTypeName: '',
showIndex: '',
// 描述
describes: '',
// 唯一辨识
dicId: this.$route.params.id
}
} else {
this.productModal = true
}
}, e => {})
} else if (this.modalType === 2) {
this.$http.putData('sarResource/ts-resource', this.productModelAdd, {
_this: this
}, res => {
this.selectMenu()
this.productModal = false
this.productModelAdd = {
// 模态框信息
dicTypeName: '',
showIndex: '',
// 描述
describes: '',
// 唯一辨识
dicId: this.$route.params.id
}
}, e => {
})
}
} else {
}
})
},
closeDrawer () {
this.$nextTick(() => {
this.$refs['productModelAdd'].resetFields()
this.productModelAdd = {
// 模态框信息
dicTypeName: '',
showIndex: '',
// 描述
describes: '',
// 唯一辨识
dicId: this.$route.params.id
}
})
this.productModal = false
},
// 树点击
isTreeOk (checkedList) {
this.shareStandardSelect = []
@@ -1596,6 +1861,7 @@ export default {
const [displayLocation] = values
const formFieldList = this.formFieldList
this.sarStandardsInfoEO = JSON.parse(JSON.stringify(item))
this.defaultCheckedKeys = [this.sarStandardsInfoEO.standSystem];
this.sarStandardsInfoEO.standSort = item.standSort
if (this.sarStandardsInfoEO.putTime != null && this.sarStandardsInfoEO.putTime !== '') {
this.sarStandardsInfoEO.putTime = this.sarStandardsInfoEO.putTime.replace(new RegExp(/-/gm), '/')
@@ -1639,6 +1905,112 @@ export default {
})
})
},
// 查询二级菜单
selectChildMenu (row) {
this.$http.get('sarResource/ts-resource/getMenuById', {
menuId: row.id
}, {}, res => {
if (res.ok) {
if(this.modalType === 1){
let idsName = ""
if(row.parentIds !== null){
if(row.parentIds.indexOf(res.data.id) != -1){
this.productModelAdd.parentIds = row.parentIds
}else {
this.productModelAdd.parentIds = row.parentIds + ',' + res.data.id
idsName = row.parentIdsName + ',' + res.data.menuName
}
}else {
this.productModelAdd.parentIds = res.data.id
idsName = res.data.menuName;
}
this.productModelAdd.parentId = res.data.id
this.productModelAdd.parentIdsName = idsName
this.$forceUpdate()
}else {
this.productModelAdd = res.data
}
}
})
},
update(data) {
this.modalType = 2
this.selectChildMenu(data)
this.productModal = true
// 取消所有的选中效果
this.handleSelectAll(false)
this.productTitle = '编辑信息'
// const newChild = { id: this.id++, label: 'testtest', children: [] };
// if (!data.children) {
// this.$set(data, 'children', []);
// }
// data.children.push(newChild);
},
append(data) {
this.modalType = 1
this.selectChildMenu(data)
this.productModal = true
// 取消所有的选中效果
this.handleSelectAll(false)
this.productTitle = '新增下级菜单信息'
this.productModelAdd.dicTypeCode = ''
// const newChild = { id: this.id++, label: 'testtest', children: [] };
// if (!data.children) {
// this.$set(data, 'children', []);
// }
// data.children.push(newChild);
},
remove(node, data) {
this.$confirm('是否删除菜单?', '提示', {
confirmButtonText: '确定',
confirmButtonClass: 'common-button-primary',
cancelButtonText: '取消',
roundButton: true,
type: 'warning'
}).then(() => {
this.$http.delete("sarResource/ts-resource", {
menuId: data.id
}, res => {
}, e => {
if(e.ok){
this.$message({
type: 'success',
message: "删除成功"
})
this.selectMenu()
}else {
this.$message({
type: 'warning',
message: e.message
})
}
})
}).catch(() => {
this.$refs.selections.clearSelection()
this.$message({
type: 'info',
message: '已取消删除'
})
})
// const parent = node.parent;
// const children = parent.data.children || parent.data;
// const index = children.findIndex(d => d.id === data.id);
// children.splice(index, 1);
},
// 树节点鼠标移入移出
mouseenter(data){
console.log(data)
this.$set(data, 'show', true)
if(data.parentId !== null){
this.$set(data, 'showDel', true)
}
},
mouseleave(data){
this.$set(data, 'show', false)
this.$set(data, 'showDel', false)
},
treeClick (treeNode) {
this.selectSarMenu = treeNode
this.standCommonlySearch.menuId = treeNode.id
@@ -1884,15 +2256,14 @@ export default {
if (this.saveExportType === 'apart') {
if (this.selectedList != null && this.selectedList !== '') {
const exportURL = interfaceUrl + 'sarStandardsInfo/sar-standards-info/exportStandardsInfoExcel?' +
'exportType' + this.saveExportType + '&exportContent=' + this.selectedList.join(',') + '&exportName=' + this.exportName + '&standType=' + this.standType
'exportType=' + this.saveExportType + '&exportContent=' + this.selectedList.join(',') + '&exportName=' + this.exportName + '&standType=' + this.standType
window.open(exportURL)
this.$message.success('导出信息成功')
}
} else if (this.saveExportType === 'all') {
let exportEOStr = JSON.stringify(this.SarExportSearchEo)
exportEOStr = exportEOStr.replace(/""/g, null)
window.open('/api/lawss/sarStandardsInfo/exportStandardsInfoExcel?exportType=' + this.saveExportType + '&exportContent=' + exportEOStr + '&exportName=' + this.exportName + '&standType=' + this.standType)
window.open(interfaceUrl+'sarStandardsInfo/sar-standards-info/exportStandardsInfoExcel?exportType=' + this.saveExportType + '&exportContent=' + exportEOStr + '&exportName=' + this.exportName + '&standType=' + this.standType)
this.$message.success('导出信息成功')
}
this.exportModelFlag = false
@@ -2193,7 +2564,7 @@ export default {
// return this.$message.warning('实施日期必须有一项为日期格式')
// }
this.isSubmit = true
this.$http.postData(this.addOrUPdateFlag === 1 ? 'lawss/sarStandardsInfo/addarStandardsInfo' : 'lawss/sarStandardsInfo/updateSarStandardsInfo', nowstandinfo, {
this.$http.postData(this.addOrUPdateFlag === 1 ? 'sarStandardsInfo/sar-standards-info/addarStandardsInfo' : 'sarStandardsInfo/sar-standards-info/updateSarStandardsInfo', nowstandinfo, {
_this: this
}, res => {
this.isSubmit = false
@@ -3414,16 +3785,21 @@ export default {
_this: this
}, res => {
this.allSelectOptions = res.data || {}
this.standSortOptions = res.data.STANDCLASSIFY // 标准类别
this.standNatureOptions = res.data.SARPROPERTY // 标准性质
this.standStateOptions = res.data.WBZTCLASS // 文本状态
this.standSystemOptions = res.data.BZTXCLASS // 标准体系
this.categoryOptions = res.data.NYLXCLASS // 能源类型
this.applyAuthOptions = res.data.SYRZCLASS // 适用认证
this.sycpxOptions = res.data.SYCPXCLASS // 适用产品线
this.zrbmOptions = res.data.ZRBMCLASS // 责任部门
this.zrgcsOptions = res.data.ZRGCSCLASS // 责任工程师
this.txlbOptions = res.data.TXLBCLASS // 体系类别
this.countryOptions = res.data.COUNTRY
this.regionOptions = res.data.REGION // 区域
this.standSortOptions = res.data.STANDCLASSIFY
this.applyArcticOptions = res.data.PRODUCTTYPE // 根据需求文档,产品类别对应标准属性中的“适用车型”
this.standStateOptions = res.data.STANDSTATE
this.standNatureOptions = res.data.SARPROPERTY // 标准性质
this.adoptExtentOptions = res.data.DEGREESTANDARD
this.emergyKindOptions = res.data.ENERGYTYPES
this.applyAuthOptions = res.data.PROVETYPE // 适用认证下拉框
this.categoryOptions = res.data.CATEGORY // 能源种类
this.assemClassOptions = res.data.ASSEMCLASSIFY // 总成分类
this.categoryConfigOptions = res.data.CATEGORY
this.standAttributeList = res.data.RULETYPE
@@ -3470,7 +3846,7 @@ export default {
position: relative;
.tree-content {
background: #fff;
width: 16%;
width: 20%;
position: relative;
.tree {
width: calc(~'100% - 15px');
@@ -74,8 +74,7 @@
<div class="container">
<div class="non-content">
<el-tabs v-model="ifMaintaince" @tab-click="handleClick" style="height: 100%">
<el-tab-pane label="已维护" name="Maintenance">
</el-tab-pane>
<el-tab-pane label="已维护" name="Maintenance"></el-tab-pane>
<el-tab-pane label="未维护" name="notMaintenance"></el-tab-pane>
</el-tabs>
</div>
@@ -319,6 +318,133 @@ export default {
ifMaintaince:"Maintenance",
deptUser: [],
localProEO: {
// 项目相关人员
userEOList: [],
// 产品代码
produceCode: '',
// 项目阶段
productStage: '',
// 整车项目编号
zhengcarNo: '',
// 整车SOP时间
zhengcarSopTime: '',
// 项目编号
productNo: '',
// 项目类型
productTypeCode: '',
// 生产基地
producePlace: '',
// 基础车型
baseCartype: '',
// 左驾右驾
leftRight: '',
// 项目经理
productManager: '',
productManagerShow: '',
// 是否纳入开发
isDevelop: '',
energyKind: '',
// 平台
flatform: '',
// 项目名称
productName: '',
// 车型系列
productSet: '',
// 项目类别
productType: '',
// 项目状态
productBrand: '',
// SOP时间
sopTime: '',
// 阀点
pointTime: [],
// 计划通过时间
planPassTime: '',
// 实际通过时间
actualPassTime: '',
// 目标市场
targetMarket: '',
// 公告车型号
carModel: '',
// 项目相关人员id
relatePerson: '',
// eop信息
eopTime: '',
// 项目相关信息
saleMarket: '',
// 判断是国内还是海外
prodectCode: '',
// carModeFile: ''
// carModeFileList: ''
// 相关人员信息
relatePersonShow: ''
// 相关人员姓名
},
// 新增编辑弹窗里的数据
localProEODefault: {
// 项目相关人员
userEOList: [],
// 产品代码
produceCode: '',
// 项目阶段
productStage: '',
// 整车项目编号
zhengcarNo: '',
// 整车SOP时间
zhengcarSopTime: '',
// 项目编号
productNo: '',
// 项目类型
productTypeCode: '',
// 生产基地
producePlace: '',
// 基础车型
baseCartype: '',
// 左驾右驾
leftRight: '',
// 项目经理
productManager: '',
productManagerShow: '',
// 是否纳入开发
isDevelop: '',
energyKind: '',
// 平台
flatform: '',
// 项目名称
productName: '',
// 车型系列
productSet: '',
// 项目类别
productType: '',
// 项目状态
productBrand: '',
// SOP时间
sopTime: '',
// 阀点
pointTime: [],
// 计划通过时间
planPassTime: '',
// 实际通过时间
actualPassTime: '',
// 目标市场
targetMarket: '',
// 公告车型号
carModel: '',
// 项目相关人员id
relatePerson: '',
// eop信息
eopTime: '',
// 项目相关信息
saleMarket: '',
// 判断是国内还是海外
prodectCode: '',
// carModeFile: ''
// carModeFileList: ''
// 相关人员信息
relatePersonShow: ''
// 相关人员姓名
},
//查询3类
projectLibrarySearch: {
// 项目名称
@@ -327,6 +453,7 @@ export default {
projectClassification: '',
// 项目状态
projectStatus: '',
page:'',
},
//查询3类
projectLibrarySearchDefault: {
@@ -336,6 +463,7 @@ export default {
projectClassification: '',
// 项目状态
projectStatus: '',
page:'',
},
// 查询条件
localProTableSearch: {
@@ -348,6 +476,8 @@ export default {
productName: '',
productBrand: '',
advanceSearchVOStr: '',
// 查询类型
prodectCode:'',
// 产品平台
projectPlatfor:'',
// 产品线
@@ -378,6 +508,8 @@ export default {
productName: '',
productBrand: '',
advanceSearchVOStr: '',
// 查询类型
prodectCode:'',
// 产品平台
projectPlatfor:'',
// 产品线
@@ -1133,7 +1265,6 @@ export default {
// 查询本地产品
getLocalProductTable () {
this.localProTableSearch.prodectCode = this.ifMaintaince
// console.log(this.localProTableSearch.prodectCode)
this.localProTableSearch.dataType = this.insideTabsActiveName
this.SarExportSearchEo = this.localProTableSearch
this.$http.get('sarStandProjectLibrary/queryProject',{
@@ -131,7 +131,8 @@ export default {
form: {
cid: this.$route.query.item.cid,
page: 1,
size: this.$store.getters.userInfo.configContent
size: this.$store.getters.userInfo.configContent,
userId: this.$store.getters.userInfo.userId,
} // 详情数据
}
},
@@ -146,7 +146,7 @@ export default {
menuId: 'nomenu',
standType: 'ALL'
}
this.$http.get('lawss/sarStandardsInfo/getSarStandardsInfoPage',
this.$http.get('sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage',
formData,
{
_this: this,
+36
View File
@@ -501,6 +501,42 @@ const routes = [
title: '标准调研流程'
}
},
{
path: '/bzzqyjStep6',
name: 'bzzqyjStep6',
component: () => import('@/pages/processCenter/pages/creatProcess/bzzqyj/step6.vue'),
meta: {
requireAuth: true,
title: '标准调研流程'
}
},
{
path: '/bzzqyjStep7',
name: 'bzzqyjStep7',
component: () => import('@/pages/processCenter/pages/creatProcess/bzzqyj/step7.vue'),
meta: {
requireAuth: true,
title: '标准调研流程'
}
},
{
path: '/bzzqyjStep8',
name: 'bzzqyjStep8',
component: () => import('@/pages/processCenter/pages/creatProcess/bzzqyj/step8.vue'),
meta: {
requireAuth: true,
title: '标准调研流程'
}
},
{
path: '/bzzqyjStep9',
name: 'bzzqyjStep9',
component: () => import('@/pages/processCenter/pages/creatProcess/bzzqyj/step9.vue'),
meta: {
requireAuth: true,
title: '标准调研流程'
}
},
{
path: '/bzdyStep4',
name: 'bzdyStep4',