表单项组件化、政策入库流程重构

This commit is contained in:
zyn
2023-09-25 16:58:30 +08:00
parent 24577c7f3a
commit 37a3124c3a
25 changed files with 2888 additions and 12 deletions
@@ -57,7 +57,7 @@
<p class="half"><label style=" margin-right: 95px;">是否纳入认证清单</label><span>{{ sarStandardsInfoEO.isRelateAccess === '1' ? '是' : (sarStandardsInfoEO.isRelateAccess ? '否':'-')}}</span></p>
<p class="half"><label style=" margin-right: 190px;">年度</label><span>{{ sarStandardsInfoEO.lawsYear || '-' }}</span></p>
<p class="half"><label style=" margin-right: 95px;">福田转发通知文号</label><span>{{ sarStandardsInfoEO.lawsNotisyncNum || '-' }}</span></p>
<p class="half"><label style=" margin-right: 125px;">通知文号链接</label><span>{{ sarStandardsInfoEO.NotisyncNumLink || '-' }}</span></p>
<p class="half"><label style=" margin-right: 125px;">通知文号链接</label><span>{{ sarStandardsInfoEO.notisyncNumLink || '-' }}</span></p>
<p class="half"><label style=" margin-right: 157px;">信息简报</label><span>{{ sarStandardsInfoEO.lawsBulletin || '-' }}</span></p>
<p class="half"><label style=" margin-right: 190px;">标签</label><span>{{ sarStandardsInfoEO.lawsLabel || '-' }}</span></p>
<p class="half"><label style=" margin-right: 62px;">备注最终政策发布</label><span>{{ sarStandardsInfoEO.lawsRemark || '-' }}</span></p>
@@ -219,8 +219,8 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="通知文号链接" prop="NotisyncNumLink" label-width="150px" class="add-form-item">
<el-input v-model="sarLawsStandEO.NotisyncNumLink"
<el-form-item label="通知文号链接" prop="notisyncNumLink" label-width="150px" class="add-form-item">
<el-input v-model="sarLawsStandEO.notisyncNumLink"
placeholder="请输入通知文号链接"
clearable></el-input>
</el-form-item>
@@ -443,12 +443,12 @@
</template>
<!--实施日期-多个日期标签-->
<template v-else-if="field.attrField === 'SSRQLAWS'">
<cus-tom-data-picker-group
<DatePickerGroupFormItem
:key="field.attrField"
:config="field"
v-model="sarLawsStandEO[field.attrField]"
:disabled="formdisableflag"
></cus-tom-data-picker-group>
></DatePickerGroupFormItem>
</template>
<!--单日期选择-->
<template v-else-if="field.attrType === 'DATE_PICKER'">
@@ -551,8 +551,9 @@
import CustomSVPPS from '@/components/CustomFormComponents/SVPPS'
import CustomInputForStandards from '@/components/CustomFormComponents/InputForStandardsForLaws'
import CustomInput from '@/components/CustomFormComponents/Input'
import CusTomDataPickerGroup
from "@/pages/regulatoryRepository/localProductsOrProjectLibrary/components/DatePickerGroup";
// import CusTomDataPickerGroup
// from "@/pages/regulatoryRepository/localProductsOrProjectLibrary/components/DatePickerGroup";
import DatePickerGroupFormItem from "@/components/hzwlComponents/DatePickerGroupFormItem";
import CustomDatePick from '@/components/CustomFormComponents/DatePicker'
import CustomFile from '@/components/CustomFormComponents/File'
import CustomTextarea from '@/components/CustomFormComponents/Textarea'
@@ -1022,7 +1023,8 @@ export default {
CustomSVPPS,
CustomInputForStandards,
CustomInput,
CusTomDataPickerGroup,
// CusTomDataPickerGroup,
DatePickerGroupFormItem,
CustomDatePick,
CustomFile,
CustomTextarea,
@@ -1629,8 +1631,6 @@ export default {
})
},
choice(type, title, nameId) {
console.log(nameId)
// 管理员(admin),张兰英(zhanglanying) => ['admin', 'zhanglanying']
this.nodeList = []
if (nameId) {
let nameId1 = nameId.split(',')
@@ -1642,6 +1642,7 @@ export default {
idList.push(b)
})
idList = idList.join(',')
// 管理员(admin),张兰英(zhanglanying) => ['admin', 'zhanglanying']
this.nodeList = idList.split(',')
}
this.choiceTitle = title
@@ -1677,6 +1678,7 @@ export default {
}
this.$set(this.sarLawsStandEO, field, nameList)
if (this.choiceTitle === '选择投稿人') {
// 带入投稿单位
this.sarLawsStandEO.TGDWLAWSID = this.unique(data.map(item => item.topUnitId)).join(",")
this.sarLawsStandEO.TGDWLAWS = this.unique(data.map(item => item.topUnit)).join(",")
}
@@ -0,0 +1,222 @@
<template>
<div>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="12">
<SelectFormItem label="1级政策分类"
prop="lawsTypeFirstLevel"
v-model="form.lawsTypeFirstLevel"
:disabled="disabled"
:options="dict.lawsTypeFirstLevelOptions || []">
</SelectFormItem>
</el-col>
<el-col :span="12">
<SelectFormItem label="2级政策分类"
prop="lawsTypeSecondLevel"
v-model="form.lawsTypeSecondLevel"
:disabled="disabled"
:options="dict.lawsTypeSecondLevelOptions || []">
</SelectFormItem>
</el-col>
<el-col :span="12">
<SelectFormItem label="3级政策分类"
prop="lawsTypeThirdLevel"
v-model="form.lawsTypeThirdLevel"
:disabled="disabled"
:options="dict.lawsTypeThirdLevelOptions || []">
</SelectFormItem>
</el-col>
<el-col :span="12">
<SelectFormItem label="4级政策分类"
prop="lawsTypeFourthLevel"
v-model="form.lawsTypeFourthLevel"
:disabled="disabled"
:options="dict.lawsTypeFourthLevelOptions || []">
</SelectFormItem>
</el-col>
<el-col :span="12">
<InputFormItem label="政策名称"
prop="lawsName"
v-model="form.lawsName"
:disabled="disabled">
</InputFormItem>
</el-col>
<el-col :span="12">
<InputFormItem label="英文名称"
prop="lawsEnName"
v-model="form.lawsEnName"
:disabled="disabled">
<el-button :disabled="disabled"
type="primary"
style="height: 40px;margin-top: 5px;"
@click="handleSearch">
根据编号名称文本状态查询
</el-button>
</InputFormItem>
</el-col>
<el-col :span="12">
<InputFormItem label="政策文号"
prop="lawsNo"
v-model="form.lawsNo"
:disabled="disabled">
</InputFormItem>
</el-col>
<el-col :span="12">
<DatePickerFormItem label="发文日期"
prop="issueTime"
v-model="form.issueTime" >
</DatePickerFormItem>
</el-col>
<el-col :span="12">
<InputFormItem label="发文单位"
prop="issueCompany"
v-model="form.issueCompany"
:disabled="disabled">
</InputFormItem>
</el-col>
<el-col :span="12">
<DataRangePickerFormItem label="征集意见周期"
prop="commentCycleDate"
:startTime.sync="form.commentCycleStart"
:endTime.sync="form.commentCycleEnd">
</DataRangePickerFormItem>
</el-col>
<el-col :span="12">
<SelectFormItem label="文本状态"
prop="lawsTextState"
v-model="form.lawsTextState"
:disabled="disabled"
:options="dict.lawsTextStateOptions || []">
</SelectFormItem>
</el-col>
<el-col :span="12">
<SelectMultipleFormItem label="适用车型"
prop="lawsSycx"
v-model="form.lawsSycx"
:disabled="disabled"
:options="dict.lawsSycxOptions || []">
</SelectMultipleFormItem>
</el-col>
<el-col :span="12">
<SelectFormItem label="是否纳入认证清单"
prop="isRelateAccess"
v-model="form.isRelateAccess"
:disabled="disabled"
:options="isRelateAccessOptions || []">
</SelectFormItem>
</el-col>
<el-col :span="12">
<SelectFormItem label="年度"
prop="lawsYear"
v-model="form.lawsYear"
:disabled="disabled"
:options="dict.lawsYearOptions || []">
</SelectFormItem>
</el-col>
<el-col :span="12">
<InputFormItem label="福田转发通知文号"
prop="lawsNotisyncNum"
v-model="form.lawsNotisyncNum"
:disabled="disabled">
</InputFormItem>
</el-col>
<el-col :span="12">
<InputFormItem label="通知文号链接"
prop="notisyncNumLink"
v-model="form.notisyncNumLink"
:disabled="disabled">
</InputFormItem>
</el-col>
<el-col :span="12">
<InputFormItem label="信息简报"
prop="lawsBulletin"
v-model="form.lawsBulletin"
:disabled="disabled">
</InputFormItem>
</el-col>
<el-col :span="12">
<SelectMultipleFormItem label="标签"
prop="lawsLabel"
v-model="form.lawsLabel"
:disabled="disabled"
:options="dict.lawsLabelOptions || []">
</SelectMultipleFormItem>
</el-col>
<el-col :span="12">
<InputFormItem label="备注(最终政策发布)"
prop="lawsRemark"
v-model="form.lawsRemark"
:disabled="disabled">
</InputFormItem>
</el-col>
</el-row>
</div>
<SearchResult ref="SearchResultRef" :dict="dict" @dragIn="dragIn"></SearchResult>
</div>
</template>
<script>
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
import SelectFormItem from '@/components/hzwlComponents/SelectFormItem'
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
import DatePickerFormItem from '@/components/hzwlComponents/DatePickerFormItem'
import DataRangePickerFormItem from '@/components/hzwlComponents/DataRangePickerFormItem'
import SelectMultipleFormItem from '@/components/hzwlComponents/SelectMultipleFormItem'
import SearchResult from './SearchResult'
export default {
name: "Basic",
components: {
ProcessTitle,
SelectFormItem,
InputFormItem,
DatePickerFormItem,
DataRangePickerFormItem,
SelectMultipleFormItem,
SearchResult
},
data () {
return {
isRelateAccessOptions: [
{
label: '是',
value: '1'
},
{
label: '否',
value: '2'
}
]
}
},
props: {
form: {
type: Object,
required: true
},
disabled: {
type: Boolean,
default: () => false
},
dict: {
type: Object,
required: true
}
},
methods: {
handleSearch () {
this.$refs.SearchResultRef.open()
},
dragIn (form) {
this.$emit('dragIn', form)
}
}
}
</script>
<style scoped>
</style>
@@ -0,0 +1,80 @@
<template>
<div>
<ProcessTitle>
<template slot="title">实施日期</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="12">
<DatePickerGroupFormItem
label="实施日期(标准文本)"
prop="SSRQLAWS"
v-model="form.SSRQLAWS"
:disabled="disabled"
></DatePickerGroupFormItem>
</el-col>
<el-col :span="12">
<DatePickerFormItem label="新认证实施日期"
prop="XRZSSRQLAWS"
v-model="form.XRZSSRQLAWS"
:disabled="disabled">
</DatePickerFormItem>
</el-col>
<el-col :span="12">
<DatePickerFormItem label="新生产实施日期"
prop="ZCXSSRQLAWS"
v-model="form.ZCXSSRQLAWS"
:disabled="disabled" >
</DatePickerFormItem>
</el-col>
<el-col :span="12">
<DatePickerFormItem label="在用车实施日期"
prop="XCXSSRQLAWS"
v-model="form.XCXSSRQLAWS"
:disabled="disabled">
</DatePickerFormItem>
</el-col>
<el-col :span="12">
<DatePickerFormItem label="生效日期"
prop="SXRQLAWS"
v-model="form.SXRQLAWS"
:disabled="disabled" >
</DatePickerFormItem>
</el-col>
</el-row>
</div>
</div>
</template>
<script>
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
import DatePickerGroupFormItem from "@/components/hzwlComponents/DatePickerGroupFormItem";
import DatePickerFormItem from '@/components/hzwlComponents/DatePickerFormItem'
export default {
name: "EffectiveDate",
components: {
ProcessTitle,
DatePickerGroupFormItem,
DatePickerFormItem
},
props: {
form: {
type: Object,
required: true
},
disabled: {
type: Boolean,
default: () => false
},
dict: {
type: Object,
required: true
}
}
}
</script>
<style scoped>
</style>
@@ -0,0 +1,47 @@
<template>
<el-timeline>
<el-form
ref="userForm"
:model="roleForm"
:rules="roleRules"
class="label-input-form">
</el-form>
<TimeLineFormItem
prop="prcCreateUserName"
timestamp="发起流程"
title="流程发起人"
:id.sync="roleForm.prcCreateUser"
:name.sync="roleForm.prcCreateUserName"
disabled />
<TimeLineFormItem
prop="jlUserName"
timestamp="选择政策业务经理"
title="政策业务经理"
:id.sync="roleForm.jlUserId"
:name.sync="roleForm.jlUserName"
/>
</el-timeline>
</template>
<script>
import TimeLineFormItem from '@/components/hzwlComponents/TimeLineFormItem'
export default {
name: "PersonInfo",
components: {
TimeLineFormItem
},
props: {
roleForm: {
type: Object
},
roleRules: {
type: Object
}
},
}
</script>
<style scoped>
</style>
@@ -0,0 +1,94 @@
<template>
<div>
<ProcessTitle>
<template slot="title">适用范围</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="12">
<SelectFormItem label="我司参与深度"
prop="CYSDLAWS"
v-model="form.CYSDLAWS"
:disabled="disabled"
:options="dict.CYSDLAWSOptions || []">
</SelectFormItem>
<DepartmentFormItem label="投稿单位"
prop="TGDWLAWS"
v-model="form.TGDWLAWS"
:ids.sync="form.TGDWLAWSID"
:disabled="disabled">
</DepartmentFormItem>
<DepartmentFormItem label="责任部门"
prop="ZRBMLAWS"
v-model="form.ZRBMLAWS"
:ids.sync="form.ZRBMLAWSID"
:disabled="disabled">
</DepartmentFormItem>
</el-col>
<el-col :span="12">
<personFormItem label="投稿人"
prop="TGRLAWS"
v-model="form.TGRLAWS"
@change="TGRLAWSChange"
:disabled="disabled">
</personFormItem>
<SelectMultipleFormItem label="适用认证"
prop="SYRZLAWS"
v-model="form.SYRZLAWS"
:disabled="disabled"
:options="dict.syrzOptions || []">
</SelectMultipleFormItem>
<personFormItem label="责任工程师"
prop="ZRGCSLAWS"
v-model="form.ZRGCSLAWS"
:disabled="disabled">
</personFormItem>
</el-col>
</el-row>
</div>
</div>
</template>
<script>
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
import SelectFormItem from '@/components/hzwlComponents/SelectFormItem'
import personFormItem from '@/components/hzwlComponents/personFormItem'
import DepartmentFormItem from '@/components/hzwlComponents/DepartmentFormItem'
import SelectMultipleFormItem from '@/components/hzwlComponents/SelectMultipleFormItem'
export default {
name: "Range",
components: {
ProcessTitle,
SelectFormItem,
personFormItem,
DepartmentFormItem,
SelectMultipleFormItem
},
props: {
form: {
type: Object,
required: true
},
disabled: {
type: Boolean,
default: () => false
},
dict: {
type: Object,
required: true
}
},
methods: {
TGRLAWSChange (val) {
if (val) {
this.form.TGDWLAWSID = val.ids
this.form.TGDWLAWS = val.names
}
},
}
}
</script>
<style scoped>
</style>
@@ -0,0 +1,69 @@
<template>
<div>
<ProcessTitle>
<template slot="title">关联信息</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="12">
<InputForStandardsForLaws
label="代替文件号"
prop="DTWJHLAWS"
v-model="form.DTWJHLAWS"
:disabled="disabled"
labelWidth="210px"
></InputForStandardsForLaws>
<UploadFormItem
label="关联文件"
prop="GLWJLAWS"
:ids.sync="form.GLWJLAWS"
:names.sync="form.GLWJLAWSName"
:disabled="disabled">
</UploadFormItem>
</el-col>
<el-col :span="12">
<InputForStandardsForLaws
label="引用标准&政策"
prop="YYBZZCLAWS"
v-model="form.YYBZZCLAWS"
:disabled="disabled"
labelWidth="210px"
></InputForStandardsForLaws>
</el-col>
</el-row>
</div>
</div>
</template>
<script>
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
import InputForStandardsForLaws from '@/components/hzwlComponents/InputForStandardsForLaws'
import UploadFormItem from "@/components/hzwlComponents/UploadFormItem";
export default {
name: "RelatesInfo",
components: {
ProcessTitle,
InputForStandardsForLaws,
UploadFormItem
},
props: {
form: {
type: Object,
required: true
},
disabled: {
type: Boolean,
default: () => false
},
dict: {
type: Object,
required: true
}
},
}
</script>
<style scoped>
</style>
@@ -0,0 +1,297 @@
<template>
<el-drawer
ref="standard"
title="查询结果"
size="1300px"
:visible.sync="standardDrawer"
direction="rtl"
:before-close="handleReviseDrawerClose">
<div class="standard-content">
<div class="content">
<div class="standard-table-search">
<el-form :model="SearchForm" inline class="label-input-form search-area">
<el-form-item label="政策编号" style="margin-right:-20px" prop="lawsNumber" class="search-item" >
<el-input :disabled="disabled"
v-model="SearchForm.lawsNumber"
clearable placeholder="根据编号查找"
:maxlength="100"
@keyup.enter.native="getData"/>
</el-form-item>
<el-form-item label="政策名称" style="margin-right:-20px" prop="lawsName" class="search-item" >
<el-input :disabled="disabled"
v-model="SearchForm.lawsName"
placeholder="请输入政策名称"
clearable
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="英文名称" style="margin-right:-20px" prop="lawsEnName" class="search-item" >
<el-input :disabled="disabled"
v-model="SearchForm.lawsEnName"
placeholder="请输入英文名称"
clearable
:maxlength="100"></el-input>
</el-form-item>
<el-formItem label="文本状态" prop="lawsTextState" class="search-item">
<el-select :disabled="disabled" v-model="SearchForm.lawsTextState" filterable clearable>
<el-option
v-for="item in dict.lawsTextStateOptions"
placeholder="请选择"
:key="item.value"
:value="item.value"
:label="item.label"
></el-option>
</el-select>
</el-formItem>
<el-form-item>
<el-button :disabled="disabled"
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 5px"
@click="getData">
查询
</el-button>
<el-button :disabled="disabled"
class="common-button-default"
size="mini"
@click="resetSearch">
清空
</el-button>
</el-form-item>
</el-form>
</div>
<div class="standard-table-wrap">
<el-table
ref="reviseDrawerTable"
:data="data"
tooltip-effect="dark"
style="width: 100%;"
border
class="drag-table"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
@selection-change="standSelectChange">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
type="index"
label="序号"
width="80"
align="center"
></el-table-column>
<el-table-column
label="政策编号"
align="center"
>
<template slot-scope="scope">
<a @click="handlePreview(scope.row)">{{ scope.row.lawsNumber }}</a>
</template>
</el-table-column>
<el-table-column
prop="lawsName"
label="政策名称"
align="center">
</el-table-column>
<el-table-column
prop="lawsEnName"
label="英文名称"
align="center">
</el-table-column>
<el-table-column
prop="textStatus"
label="文本状态"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.standStatusShow }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="80">
<template slot-scope="scope">
<el-button :disabled="disabled"
class="opera-btn"
size="mini"
type="primary"
@click="handlePreview(scope.row)">查看
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<pagination
:page="SearchForm.page"
:total="SearchForm.total"
@pageChange="pageChange"
@pageSizeChange="pageSizeChange"></pagination>
<loading :loading="loading">数据获取中</loading>
</div>
</div>
<div class="demo-drawer-footer">
<!--<el-button :disabled="disabled"-->
<!-- round-->
<!-- class="common-button-primary"-->
<!-- icon="el-icon-check"-->
<!-- type="primary"-->
<!-- :loading="drLoading"-->
<!-- @click="handleProcessStandardNext(1)">新增</el-button>-->
<el-button :disabled="disabled"
round
class="common-button-primary"
icon="el-icon-check"
type="primary"
:loading="buttonLoading"
@click="handleProcessStandardNext(2)">带入</el-button>
<el-button :disabled="disabled"
round
class="common-button-default"
icon="el-icon-close"
:loading="buttonLoading"
@click="handleProcessStandardNext(3)">取消</el-button>
</div>
</el-drawer>
</template>
<script>
export default {
name: "SearchResult",
data () {
return {
standardDrawer: false,
SearchForm: {
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
total: 0,
// standType: 'INLAND',
lawsNumber: '',
lawsName: '',
lawsEnName: '',
lawsTextState: ''
},
loading: false,
buttonLoading: false,
data: [],
selectedList: [],
}
},
props: {
disabled: {
type: Boolean,
default: false
},
dict: {
type: Object,
required: true
}
},
methods: {
open () {
this.standardDrawer = true
this.getData()
},
getData () {
this.loading = true
this.$http.get('lawss/sarLawsInfo/page', this.SearchForm, {}, res => {
this.loading = false
if (res.ok) {
this.data = res.data.list
this.SearchForm.total = res.data.count
}
}, e => {
this.loading = false
})
},
resetSearch() {
// this.SearchForm.lawsNumber = ''
// this.SearchForm.lawsName = ''
// this.SearchForm.lawsEnName = ''
// this.SearchForm.lawsTextState = ''
this.SearchForm = {
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
total: 0,
// standType: 'INLAND',
lawsNumber: '',
lawsName: '',
lawsEnName: '',
lawsTextState: ''
}
this.getData()
},
standSelectChange (data) {
this.selectedList = data
},
pageChange (page) {
this.SearchForm.page = page
this.getData()
},
pageSizeChange (pageSize) {
this.SearchForm.pageSize = pageSize
this.getData()
},
// 点击查看
handlePreview (item) {
let routeUrl = this.$router.resolve({
name: 'OtherLawsStandDetails',
params: {
id: item.id,
pageType: 'LAWS_STAND'
}
})
window.open(routeUrl.href, '_blank')
},
handleProcessStandardNext(status) {
switch (status) {
// 新增
case 1:
break
// 带入
case 2:
if (this.selectedList.length === 1) {
this.buttonLoading = true
this.$http.get('lawss/sarLawsInfo/getStandInfoUpdateById', {id: this.selectedList[0].id}, {
_this: this
}, res => {
if(res && res.data){
this.standardDrawer = false
this.buttonLoading = false
const json = Object.assign(res.data, res.data.attrInfoMap);
const form = JSON.parse(JSON.stringify(json))
this.$emit('dragIn', form)
}
})
} else if (this.selectedList.length > 1) {
this.$message.warning('最多可以带入一条政策信息')
} else {
this.$message.warning('请选择要带入的政策信息')
}
break
// 取消
case 3:
this.selectedList = []
this.standardDrawer = false
break
}
},
handleReviseDrawerClose (done) {
done()
},
}
}
</script>
<style scoped lang="less">
.standard-content{
flex: 1;
}
.demo-drawer-footer{
height: 61px!important;
line-height: 60px!important;
}
.pagination{
bottom: 61px;
}
</style>
@@ -0,0 +1,66 @@
<template>
<div>
<ProcessTitle>
<template slot="title">文本信息</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="12">
<UploadFormItem
label="政策文本"
prop="ZCWBLAWS"
:ids.sync="form.ZCWBLAWS"
:names.sync="form.ZCWBLAWSName"
:disabled="disabled">
</UploadFormItem>
<UploadFormItem
label="解读文本"
prop="JDWJLAWS"
:ids.sync="form.JDWJLAWS"
:names.sync="form.JDWJLAWSName"
:disabled="disabled">
</UploadFormItem>
</el-col>
<el-col :span="12">
<UploadFormItem
label="过程文本"
prop="GCWBLAWS"
:ids.sync="form.GCWBLAWS"
:names.sync="form.GCWBLAWSName"
:disabled="disabled">
</UploadFormItem>
</el-col>
</el-row>
</div>
</div>
</template>
<script>
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
import UploadFormItem from "@/components/hzwlComponents/UploadFormItem";
export default {
name: "TextInfo",
components: {
ProcessTitle,
UploadFormItem
},
props: {
form: {
type: Object,
required: true
},
disabled: {
type: Boolean,
default: () => false
},
dict: {
type: Object,
required: true
}
},
}
</script>
<style scoped>
</style>
@@ -0,0 +1,465 @@
<template>
<div class="wrapper">
<ProcessHeader toggle>
<template slot="proName">政策入库流程</template>
<template slot="proNode">发起流程</template>
</ProcessHeader>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
<div class="headerTabsItem" :class="active === '2' ? 'active' : ''" @click="handleTabs('2')">人员信息</div>
</div>
<div class="content">
<el-form v-if="reloadForm"
ref="form"
:model="form"
:rules="rules"
class="label-input-form"
label-width="210px"
>
<div v-show="active === '1'">
<Basic :form="form" :dict="dict" @dragIn="dragIn"></Basic>
<EffectiveDate :form="form" :dict="dict"></EffectiveDate>
<TextInfo :form="form" :dict="dict"></TextInfo>
<Range :form="form" :dict="dict"></Range>
<RelatesInfo :form="form" :dict="dict"></RelatesInfo>
<ReceiptDescription v-model="form.commentText"></ReceiptDescription>
</div>
<div class="block" style="padding-top: 20px;" v-show="active === '2'">
<PersonInfo ref="roleForm" :roleForm="roleForm"></PersonInfo>
</div>
</el-form>
</div>
<ProcessFooter
v-show="!disabled"
show-save
show-submit
:submitLoading="footerLoading"
:saveLoading="footerLoading"
@save="handleSave"
@submit="handleSubmit"
>
</ProcessFooter>
</div>
</template>
<script>
import ProcessHeader from '@/pages/processCenter/pages/components//ProcessHeader'
import ProcessFooter from '@/pages/processCenter/pages/components//ProcessFooter'
import Basic from "./components/Basic";
import EffectiveDate from "./components/EffectiveDate";
import TextInfo from "./components/TextInfo";
import Range from "./components/Range";
import RelatesInfo from "./components/RelatesInfo";
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
import PersonInfo from "./components/PersonInfo";
import {saveTaskFirst, queryTaskFirst, taskDel} from "api/process";
export default {
name: "ZrckStep1",
components: {
ProcessHeader,
ProcessFooter,
Basic,
EffectiveDate,
TextInfo,
Range,
RelatesInfo,
ReceiptDescription,
PersonInfo
},
data () {
const form = {
// 基础信息
lawsTypeFirstLevel: '',
lawsTypeSecondLevel: '',
lawsTypeThirdLevel: '',
lawsTypeFourthLevel: '',
lawsName: '',
lawsEnName: '',
lawsNo: '',
issueTime: '',
issueCompany: '',
commentCycleStart: '',// 征集意见周期
commentCycleEnd: '',// 征集意见周期
lawsTextState: '',
lawsSycx: '',
isRelateAccess: '2',
lawsYear: '',
lawsNotisyncNum: '',
NotisyncNumLink: '',
lawsBulletin: '',
lawsLabel: '',
lawsRemark: '',
// 实施日期
SSRQLAWS: '',
XRZSSRQLAWS: '',
ZCXSSRQLAWS: '',
XCXSSRQLAWS: '',
SXRQLAWS: '',
// 文本信息
ZCWBLAWS: '',
ZCWBLAWSName: '',
JDWJLAWS: '',
JDWJLAWSName: '',
GCWBLAWS: '',
GCWBLAWSName: '',
// 适用范围
CYSDLAWS: '',
TGDWLAWS: '',
TGDWLAWSID: '',
ZRBMLAWS: '',
ZRBMLAWSID: '',
TGRLAWS: '',
SYRZLAWS: '',
ZRGCSLAWS: '',
// 关联信息
DTWJHLAWS: '',
GLWJLAWS: '',
GLWJLAWSName: '',
YYBZZCLAWS: '',
// 回执说明
commentText:''
}
const roleForm = {
jlUserId: '',
jlUserName: '',
prcCreateUser: this.$store.getters.userInfo.userId,
prcCreateUserName: this.$store.getters.userInfo.userName,
}
// 完整校验
const moreSarLawsStandRules = {
lawsTypeFirstLevel: [
{required: true, message: '1级政策分类不能为空', trigger: 'change'}
],
lawsTypeSecondLevel: [
{required: true, message: '2级政策分类不能为空', trigger: 'change'}
],
lawsTypeThirdLevel: [
{required: true, message: '3级政策分类不能为空', trigger: 'change'}
],
lawsTypeFourthLevel: [
{required: true, message: '4级政策分类不能为空', trigger: 'change'}
],
lawsName: [
{required: true, message: '政策名称不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '政策名称不能超过500个字符', trigger: 'change'},
{validator: this.verify.checkSpecialCharacterOftags, trigger: 'change'}
],
lawsEnName: [
// {required: false, message: '英文名称不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '英文名称不能超过500个字符', trigger: 'change'},
{validator: this.verify.valiateEnName, trigger: 'change'}
],
lawsNo: [
// {required: true, type: 'string', message: '政策文号不能为空', trigger: 'change'},
{type: 'string', max: 100, message: '政策文号不能超过100个字符', trigger: 'change'}
],
issueTime: [
{required: true, message: '发文日期不能为空', trigger: 'change'},
],
issueCompany: [
{required: true, type: 'string', message: '发文单位不能为空', trigger: 'change'},
{type: 'string', max: 100, message: '发文单位不能超过100个字符', trigger: 'change'}
],
lawsTextState: [
{required: true, message: '文本状态不能为空', trigger: 'change'}
],
isRelateAccess: [
{required: true, message: '是否纳入认证清单不能为空', trigger: 'change'}
],
lawsYear: [
{required: true, message: '年度不能为空', trigger: 'change'}
],
lawsNotisyncNum: [
{type: 'string', max: 500, message: '福田转发通知文号不能超过500个字符', trigger: 'change'}
],
lawsRemark: [
{type: 'string', max: 500, message: '备注不能超过500个字符', trigger: 'change'}
],
SSRQLAWS: [
{required: true, message: '实施日期不能为空', trigger: 'change'}
]
}
// 认证清单为否 的校验
const littleSarLawsStandRules = {
lawsTypeFirstLevel: [
{required: true, message: '1级政策分类不能为空', trigger: 'change'}
],
lawsTypeSecondLevel: [
{required: true, message: '2级政策分类不能为空', trigger: 'change'}
],
lawsTypeThirdLevel: [
{required: true, message: '3级政策分类不能为空', trigger: 'change'}
],
lawsTypeFourthLevel: [
{required: true, message: '4级政策分类不能为空', trigger: 'change'}
],
lawsName: [
{required: true, message: '政策名称不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '政策名称不能超过500个字符', trigger: 'change'},
{validator: this.verify.checkSpecialCharacterOftags, trigger: 'change'}
],
isRelateAccess: [
{required: true, message: '是否纳入认证清单不能为空', trigger: 'change'}
],
}
return {
active: '1',
dict: {},
form,
roleForm,
disabled: false,
footerLoading: false,
moreSarLawsStandRules,
littleSarLawsStandRules,
rules: {},
reloadForm: true, // 重新渲染表单
bpnId: this.$route.query.bpnId || ''
}
},
created() {
this.getDicTypeListCode()
this.resolveRules()
this.getTaskId()
},
watch: {
'form.isRelateAccess' () {
// 移除校验结果重新生成校验
this.resolveRules()
}
},
methods: {
handleTabs(tab) {
this.active = tab
},
resolveRules () {
this.reloadForm = false
let rules = {}
if (this.form.isRelateAccess === '1') {
// 认证清单为是
rules = this.moreSarLawsStandRules
} else if (this.form.isRelateAccess === '2') {
// 认证清单为否
rules = this.littleSarLawsStandRules
}
this.rules = { ...rules }
this.$nextTick(() => {
this.reloadForm = true
})
},
getTaskId () {
if(this.$route.query.bpnId){
queryTaskFirst({
bpnId: this.$route.query.bpnId
}).then(res => {
this.reloadForm = false
let mes = JSON.parse(res.mes)
this.$set(this, 'form', mes.form)
this.roleForm = mes.roleForm
this.$nextTick(() => {
this.reloadForm = true
})
})
}
},
// 带入流程
dragIn (form) {
this.reloadForm = false
this.$set(this, 'form', Object.assign(this.form, form))
this.$nextTick(() => {
this.reloadForm = true
})
},
//保存
handleSave() {
this.footerLoading = true
let _formData = new FormData()
_formData.append('id', this.bpnId || '')
_formData.append('createUser', this.$store.getters.userInfo.userId)
_formData.append('createUserName', this.$store.getters.userInfo.uName)
_formData.append('prcType', 'laws1')
_formData.append('prcName', '政策入库流程')
_formData.append('json', JSON.stringify({
taskInfo: '申请人发起',
form: this.form,
roleForm: this.roleForm,
}))
saveTaskFirst(_formData).then(res => {
this.footerLoading = false
this.$message.success('保存成功')
this.bpnId = res.result
}).catch(e => {
this.footerLoading = false
})
},
handleSubmit() {
this.$refs['form'].validate((valid) => {
if (valid) {
this.$refs['roleForm'].$refs['userForm'].validate((valid) => {
if (valid) {
this.footerLoading = true
const json = Object.assign(this.form, this.roleForm);
this.$http.post('lawss/activiti/startProcessRollBack', {
createUser: this.$store.getters.userInfo.userId,
createUserName: this.$store.getters.userInfo.userName,
type: 'laws1',
json: JSON.stringify({
form: this.form,
roleForm: this.roleForm
})
}, {}, res => {
if (res.ok) {
this.$http.post('lawss/activiti/completeTask', {
taskIds: res.data,
userId : this.$store.getters.userInfo.userId,
json: JSON.stringify(json)
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message)
this.footerLoading = false
if (this.$route.query.bpnId !== '') {
let taskId = {
id: this.$route.query.bpnId
}
// taskDel(taskId).then(res=>{
// return res
// })
}
// 流程提交之后,应该流转至待办任务页面
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
}
})
}
})
}else {
this.$message.warning('请检查人员信息表单是否填写完整')
}
})
} else {
this.$message.warning('请检查基础信息表单是否填写完整')
}
})
},
getDicTypeListCode () {
// 查询各下拉框数据
this.$http.get('sys/dictype/getDicTypeListCode', '', {
_this: this
}, res => {
// this.$set(this.dict, 'lawsTypeFirstLevelOptions', res.data.lawsTypeFirstLevel)
// this.$set(this.dict, 'lawsTypeSecondLevelOptions', res.data.lawsTypeSecondLevel)
// this.$set(this.dict, 'lawsTypeThirdLevelOptions', res.data.lawsTypeThirdLevel)
// this.$set(this.dict, 'lawsTypeFourthLevelOptions', res.data.lawsTypeFourthLevel)
// this.$set(this.dict, 'lawsTextStateOptions', res.data.lawsTextState)
// this.dict.lawsTypeOptions = res.data.lawsType
this.dict.lawsTypeFirstLevelOptions = res.data.lawsTypeFirstLevel
this.dict.lawsTypeSecondLevelOptions = res.data.lawsTypeSecondLevel
this.dict.lawsTypeThirdLevelOptions = res.data.lawsTypeThirdLevel
this.dict.lawsTypeFourthLevelOptions = res.data.lawsTypeFourthLevel
this.dict.lawsTextStateOptions = res.data.lawsTextState
this.dict.lawsSycxOptions = res.data.lawsSycx
this.dict.lawsYearOptions = res.data.lawsYear
this.dict.lawsLabelOptions = res.data.lawsLabel
this.dict.CYSDLAWSOptions = res.data.CYSDLAWS
this.dict.syrzOptions = res.data.YYRZLAWS
this.dict = { ...this.dict }
// this.allSelectOptions = res.data || {}
//
// this.countryOptions = res.data.COUNTRY
// this.applyCountryOptions = res.data.COUNTRY
// this.regionOptions = res.data.REGION // 区域
// this.standStateOptions = res.data.BUSSSTATE
// this.energyKindOptions = res.data.ENERGYTYPES
// this.standGeneraOptions = res.data.BUSSBIGCLASS
// this.standSubclassOptions = res.data.BUSSFINECLASS
// this.standSortOptions = res.data.STANDCLASSIFY // 标准类别
// this.standNatureOptions = res.data.SARPROPERTY // 标准性质
// this.standStateOptions = res.data.TEXTSTATUSBUSS // 文本状态
// this.standSystemOptions = res.data.TXLBBUSS // 标准体系
// this.applyArcticOptions = res.data.ENERGYTYPES // 适用车型
// this.categoryOptions = res.data.NYLXCLASS // 能源类型
// this.applyAuthOptions = res.data.SYRZCLASS // 适用认证
// this.cysdOptions = res.data.WSCYSD // 我司参与深度
// this.zrgcsOptions = res.data.ZRGCSCLASS // 责任工程师
// this.txlbOptions = res.data.TXLBCLASS // 体系类别
// this.qcdwOptions = res.data.QCDW // 起草单位
// this.qcrOptions = res.data.QCRBUSS // 起草人
// this.nylxOptions = res.data.NYLXCLASS // 能源类型
// this.syrzOptions = res.data.SYRZCLASS // 适用认证
// this.sycpxOptions = res.data.SYCPXCLASS // 适用产品线
// this.zrgcsOptions = res.data.ZRGCSCLASS // 责任工程师
// this.zrbmOptions = res.data.ZRBMCLASS // 责任部门
// this.gkglbmOptions=res.data.GKGLBM //归口管理部门
// this.lawsTypeOptions = res.data.lawsType
// this.lawsTypeFirstLevelOptions = res.data.lawsTypeFirstLevel
// this.lawsTypeSecondLevelOptions = res.data.lawsTypeSecondLevel
// this.lawsTypeThirdLevelOptions = res.data.lawsTypeThirdLevel
// this.lawsTypeFourthLevelOptions = res.data.lawsTypeFourthLevel
// this.lawsTextStateOptions = res.data.lawsTextState
// this.lawsSyqyOptions = res.data.lawsSyqy
// this.lawsSycxOptions = res.data.lawsSycx
// this.lawsYearOptions = res.data.lawsYear
// this.lawsLabelOptions = res.data.lawsLabel
// this.CYSDLAWSOptions = res.data.CYSDLAWS
// this.TGRLAWSOptions = res.data.TGRLAWS
// this.TGDWLAWSOptions = res.data.TGDWLAWS
// this.NYLXLAWSOptions = res.data.NYLXLAWS
// this.YYRZLAWSOptions = res.data.YYRZLAWS
// this.ZRBMLAWSOptions = res.data.ZRBMLAWS
// this.ZRGCSLAWSOptions = res.data.ZRGCSLAWS
}, e => {
})
},
}
}
</script>
<style scoped lang="less">
.wrapper{
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>
@@ -450,7 +450,8 @@ export default {
case 'laws1':
// 政策入库流程
this.$router.push({
name: 'zcrkStep1'
// name: 'zcrkStep1'
name: 'zcrk1'
})
break
case '1':
@@ -4,7 +4,7 @@
<el-form-item
:label="config.attrName"
:prop="config.attrField"
label-width="150px"
label-width="180px"
class="add-form-item"
:class="{'form-item-disabled': disabled}"
>