code init

This commit is contained in:
chenxiaoxi
2021-05-25 18:06:45 +08:00
parent 02698d6dab
commit f54a8d4fa1
1367 changed files with 540755 additions and 21713 deletions
@@ -0,0 +1,793 @@
<!-- 标准法规库 - 动态&资料 -->
<template>
<div class="addDrawer">
<el-drawer
:title="modalshowtitle"
:visible.sync="drawerOpen"
direction="rtl"
@close="closeDrawer"
custom-class="demo-drawer"
ref="drawer"
size="800px"
>
<div class="demo-drawer__content">
<div class="el-drawer-form">
<el-form ref="sarStandardsInfoForm" :model="addForm" :rules="rulesForm" class="label-input-form">
<el-row v-if="modalshowtitle == '编辑'">
<el-col :span="12">
<el-form-item label="序号" label-width="130px" class="add-form-item" prop="rowIndex">
<el-input v-model="addForm.rowIndex" placeholder="请输入" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="编号" prop="country" label-width="130px" class="add-form-item">
<el-input v-model="addForm.snum" placeholder="请输入" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="modalshowtitle == '编辑'">
<el-col :span="12">
<el-form-item label="状态" label-width="130px" class="add-form-item">
<el-select
v-model="addForm.status"
:disabled="addForm.version !== 1 && modalshowtitle === '编辑' "
placeholder="请选择">
<el-option
v-for="item in statusList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="版本" prop="country" label-width="130px" class="add-form-item">
<el-input v-model="addForm.version" placeholder="请输入" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="区域" label-width="130px" prop="region" class="add-form-item">
<search-select
:disabled="addForm.version !== 1 && modalshowtitle === '编辑' "
@on-change="regionChange"
v-model="addForm.region"
placeholder="请选择"
:options="regionList"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="国家" prop="country" label-width="130px" class="add-form-item">
<search-select
:disabled="addForm.version !== 1 && modalshowtitle === '编辑' "
v-model="addForm.country"
placeholder="请选择"
:options="countryList"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="来源类型" prop="sourceType" label-width="130px" class="add-form-item">
<el-select
v-model="addForm.sourceType"
:disabled="addForm.version !== 1 && modalshowtitle === '编辑'"
placeholder="请选择">
<el-option
v-for="item in sourceTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="具体来源" prop="source" label-width="130px" class="add-form-item">
<el-input
v-model="addForm.source"
placeholder="请输入"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="车辆类型" prop="carCategory" label-width="130px" class="add-form-item">
<el-select :disabled="addForm.version !== 1 && modalshowtitle === '编辑' " v-model="addForm.carType" placeholder="请选择">
<el-option
v-for="item in carTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车辆品类" prop="carCategory" label-width="130px" class="add-form-item">
<el-select :disabled="addForm.version !== 1 && modalshowtitle === '编辑' " v-model="addForm.carCategory" placeholder="请选择">
<el-option
v-for="item in carCategoryList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="领域" prop="area" label-width="130px" class="add-form-item">
<el-select
:disabled="addForm.version !== 1 && modalshowtitle === '编辑' "
v-model="addForm.area"
@change="areaChange"
placeholder="请选择"
>
<el-option
v-for="item in areaList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="子领域" prop="subArea" label-width="130px" class="add-form-item">
<search-select
:disabled="addForm.version !== 1 && modalshowtitle === '编辑' "
v-model="addForm.subArea"
placeholder="请选择"
:options="subAreaList"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="一级科目" prop="firSubjects" label-width="130px" class="add-form-item">
<el-input :disabled="addForm.version !== 1 && modalshowtitle === '编辑' " v-model="addForm.firSubjects" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="一级科目要求"
prop="firSubjAsk"
label-width="130px"
class="add-form-item"
>
<el-input
:disabled="addForm.version !== 1 && modalshowtitle === '编辑'"
v-model="addForm.firSubjAsk"
placeholder="请输入"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="二级科目" prop="secSubjects" label-width="130px" class="add-form-item">
<el-input :disabled="addForm.version !== 1 && modalshowtitle === '编辑' " v-model="addForm.secSubjects" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="二级科目要求"
prop="secSubjAsk"
label-width="130px"
class="add-form-item"
>
<el-input
:disabled="addForm.version !== 1 && modalshowtitle === '编辑'"
v-model="addForm.secSubjAsk"
placeholder="请输入"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="三级科目" prop="thirdSubjects" label-width="130px" class="add-form-item">
<el-input :disabled="addForm.version !== 1 && modalshowtitle === '编辑'" v-model="addForm.thirdSubjects" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="三级科目要求"
prop="thirdSubjAsk"
label-width="130px"
class="add-form-item"
>
<el-input
:disabled="addForm.version !== 1 && modalshowtitle === '编辑'"
v-model="addForm.thirdSubjAsk"
placeholder="请输入"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="关联系统" prop="relateSystem" label-width="130px" class="add-form-item">
<search-select
:disabled="addForm.version !== 1 && modalshowtitle === '编辑' "
v-model="addForm.relateSystem"
@on-change="systemChange"
placeholder="请选择"
:options="relateSystemList"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="系统层技术要求"
prop="systemAsk"
label-width="130px"
class="add-form-item"
>
<el-input v-model="addForm.systemAsk" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="关联总成" prop="relateAssem" label-width="130px" class="add-form-item">
<search-select
:disabled="addForm.version !== 1 && modalshowtitle === '编辑' "
@on-change="relateAssemChange"
v-model="addForm.relateAssem"
placeholder="请选择"
:options="relateAssemList"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="总成层级技术要求"
prop="assemAsk"
label-width="130px"
class="add-form-item"
>
<el-input v-model="addForm.assemAsk" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="关联部件" prop="relateParts" label-width="130px" class="add-form-item">
<search-select
:disabled="addForm.version !== 1 && modalshowtitle === '编辑' "
v-model="addForm.relateParts"
placeholder="请选择"
:options="relatePartsList"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="部件层级技术要求"
prop="partsAsk"
label-width="130px"
class="add-form-item"
>
<el-input v-model="addForm.partsAsk" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="已转化的要件书" prop="convertBooks" label-width="130px" class="add-form-item">
<el-input v-model="addForm.convertBooks" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="已转化的企业标准/菜谱/手册"
title="已转化的企业标准/菜谱/手册"
prop="convertStand"
label-width="130px"
class="add-form-item"
>
<el-input v-model="addForm.convertStand" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12" v-if="modalshowtitle == '编辑'">
<el-form-item label="创建日期" prop="creationTime" label-width="130px" class="add-form-item">
<el-input disabled v-model="addForm.creationTime" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效日期" prop="effectiveDate" label-width="130px" class="add-form-item">
<el-date-picker
:disabled="addForm.version !== 1 && modalshowtitle === '编辑' "
value-format="yyyy-MM-dd"
v-model="addForm.effectiveDate"
type="date"
placeholder="选择日期"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="失效日期" prop="expriationDate" label-width="130px" class="add-form-item">
<el-date-picker
:disabled="addForm.version !== 1 && modalshowtitle === '编辑' "
value-format="yyyy-MM-dd"
v-model="addForm.expriationDate"
type="date"
placeholder="选择日期"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="附件" prop="attachFile" label-width="130px" class="add-form-item">
<el-input v-model="addForm.attachFile" v-show="false"></el-input>
<el-button
@click="clickButtonToUpload"
icon="el-icon-upload"
class="form-upload-btn"
>
{{ (addForm.fileIds === null || addForm.fileIds.length === 0) ? '点击上传' : '查看已上传的文件' }}
</el-button>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="备注" prop="reamrk" label-width="130px" class="add-form-item">
<el-input v-model="addForm.reamrk" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="demo-drawer-footer">
<el-button size="small" type="primary" class="searchAngNewBtn" @click="submit">提交</el-button>
<el-button size="small" type="primary" class="searchAngNewBtn" @click="reset">恢复</el-button>
<el-button
size="small"
style="margin-right: 8px"
type="primary"
@click="closeDrawer()"
class="searchAngNewBtn"
>取消</el-button>
</div>
</div>
</el-drawer>
<!-- 导入-->
<el-dialog
:visible.sync="openUpload"
title="导入文件"
width="400px"
>
<el-upload
multiple
drag
show-file-list
:disabled="addForm.version !== 1 && modalshowtitle === '编辑'"
:on-success="uploadSuccess"
:before-upload="beforeUpload"
:on-remove="removeOneFile"
:action="uploadPath"
accept=".PDF, .doc, .docx, .ppt, .pptx"
name="file"
:file-list="defaultFileList"
ref="importFileAboutStand"
>
<div style="padding: 20px 0" v-if="addForm.version !== 1 && modalshowtitle === '编辑'">
<i class="el-icon-upload" style="color: #3399ff"></i>
<p>点击或拖拽上传文件</p>
</div>
<div style="padding: 20px 0" v-else>
<i class="el-icon-upload"></i>
<p>点击或拖拽上传文件</p>
</div>
</el-upload>
</el-dialog>
</div>
</template>
<script>
export default {
name: 'addDrawer',
props: {
drawerOpen: {
type: Boolean,
defaluts: false
},
modalshowtitle: {
type: String,
defaluts: ''
},
rowData: {
type: Object
}
},
data () {
return {
openUpload: false,
formdisableflag: false,
defaultFileList: [], // 默认显示
uploadPath: 'api/att/attFile/upload',
addForm: {
id: '',
rowIndex: '',
snum: '',
status: '',
version: '',
region: '',
country: '',
sourceType: '',
source: '',
attachFile: '',
carType: '',
carCategory: '',
area: '',
subArea: '',
firSubjects: '',
firSubjAsk: '',
secSubjects: '',
secSubjAsk: '',
thirdSubjects: '',
thirdSubjAsk: '',
relateSystem: '',
systemAsk: '',
relateAssem: '',
assemAsk: '',
relateParts: '',
partsAsk: '',
convertBooks: '',
convertStand: '',
creationUser: '',
creationTime: '',
effectiveDate: '',
expriationDate: '',
reamrk: '',
department: '',
fileIds: []
},
// 验证规则
rulesForm: {
region: [
{ required: true, message: '区域不能为空', trigger: 'change' }
],
country: [
{ required: true, message: '国家不能为空', trigger: 'change' }
],
sourceType: [
{ required: true, message: '来源类型不能为空', trigger: 'blur' }
],
source: [
{ required: true, message: '具体来源不能为空', trigger: 'blur' }
],
carCategory: [
{ required: true, message: '车辆品类不能为空', trigger: 'blur' }
],
area: [
{ required: true, message: '领域不能为空', trigger: 'blur' }
],
subArea: [
{ required: true, message: '子领域不能为空', trigger: 'change' }
],
firSubjects: [
{ required: true, message: '一级科目不能为空', trigger: 'blur' }
],
firSubjAsk: [
{ required: true, message: '一级科目要求不能为空', trigger: 'blur' }
],
secSubjects: [
{ required: true, message: '二级科目不能为空', trigger: 'blur' }
],
secSubjAsk: [
{ required: true, message: '二级科目要求不能为空', trigger: 'blur' }
],
thirdSubjects: [
{ required: true, message: '三级科目不能为空', trigger: 'blur' }
],
thirdSubjAsk: [
{ required: true, message: '三级科目要求不能为空', trigger: 'blur' }
],
relateSystem: [
{ required: true, message: '关联系统不能为空', trigger: 'change' }
],
systemAsk: [
{ required: true, message: '系统层技术要求不能为空', trigger: 'blur' }
],
relateAssem: [
{ required: true, message: '关联总成不能为空', trigger: 'change' }
],
assemAsk: [
{ required: true, message: '总成层级技术要求不能为空', trigger: 'blur' }
],
relateParts: [
{ required: true, message: '关联部件不能为空', trigger: 'change' }
],
partsAsk: [
{ required: true, message: '部件层级技术要求不能为空', trigger: 'blur' }
],
convertBooks: [
{ required: true, message: '已转化的要件书不能为空', trigger: 'blur' }
],
convertStand: [
{ required: true, message: '已转化的企业标准不能为空', trigger: 'blur' }
]
},
regionList: [],
countryList: [],
sourceTypeList: [{label: '强制法规', value: 'QZFG'}, {label: '机构测评', value: 'JGPC'}, {label: '市场要求', value: 'SCXQ'}, {label: '顾客需求', value: 'GKXQ'}, {label: '竞争策略', value: 'JZCL'}, {label: '部件专属要求', value: 'ZSXQ'}, {label: '其他', value: 'other'}],
carTypeList: [{label: 'M1', value: 'M1'}, {label: 'M2', value: 'M2'}, {label: 'N1', value: 'N1'}, {label: 'N2', value: 'N2'}],
carCategoryList: [{label: '三厢轿车', value: 'SXJC'}, {label: '两厢轿车', value: 'LXJC'}, {label: '承载式SUV', value: 'CZSUV'}, {label: '非承载式SUV', value: 'FCZSUV'}, {label: '皮卡', value: 'PK'}, {label: '轻客', value: 'QK'}, {label: '轻货', value: 'QH'}],
areaList: [],
subAreaList: [],
relateSystemList: [],
relateAssemList: [],
relatePartsList: [],
departmentList: [],
statusList: [{label: '草稿', value: '1'}, {label: '生效', value: '2'}, {label: '作废', value: '3'}]
}
},
watch: {
drawerOpen: {
handler (value) {
if (this.modalshowtitle === '编辑' && value) {
this.echo()
}
},
immediate: true
}
},
created () {
this.getOptionData()
},
methods: {
// 回显 事件
echo () {
this.$nextTick(() => {
// 请求国家列表之后 执行回显
this.regionChange(this.rowData.region).then(() => {
// 请求子领域列表
this.areaChange(this.rowData.area).then(() => {
// 请求关联总成列表
this.systemChange(this.rowData.relateSystem).then(() => {
// 请求关联部件列表
this.relateAssemChange(this.rowData.relateAssem).then(() => {
Object.keys(this.addForm).forEach(key => {
if (this.rowData[key]) {
this.addForm[key] = this.rowData[key]
}
})
// 回显附件
if (this.rowData.attachFile) {
this.addForm.fileIds = this.rowData.attachFile.split(',')
this.defaultFileList = this.rowData.attachFileList
this.defaultFileList.map((item, index) => {
this.defaultFileList[index].name = item.oldFileName
this.defaultFileList[index].response = {
data: {
id: item.id
}
}
})
}
})
})
})
})
})
},
submit () {
this.$refs['sarStandardsInfoForm'].validate((valid) => {
if (valid) {
let searchData = {}
Object.keys(this.addForm).forEach(key => {
if (!(this.addForm[key] === '' || this.addForm[key] === [])) {
searchData[key] = this.addForm[key]
}
})
searchData['attachFile'] = this.addForm.fileIds.toString()
this.$emit('addData', searchData, this.modalshowtitle === '创建' ? 'add' : 'edit')
}
})
},
reset () {
if (this.modalshowtitle === '新建') {
Object.keys(this.addForm).forEach(key => {
this.addForm[key] = ''
})
this.defaultFileList = []
} else {
this.echo()
}
},
// 关闭新建 抽屉事件
closeDrawer () {
Object.keys(this.addForm).forEach(key => {
this.addForm[key] = ''
})
this.defaultFileList = []
this.countryList = []
this.subAreaList = []
this.relateAssemList = []
this.relatePartsList = []
this.$emit('closeDrawer', false)
this.$nextTick(() => {
this.$refs['sarStandardsInfoForm'].resetFields()
})
},
// 出现上传modal事件
clickButtonToUpload () {
this.openUpload = true
},
// 新增、编辑上传文件之前的钩子
beforeUpload (file) {
var filename = file.name
var index1 = filename.lastIndexOf('.')
var index2 = filename.length
var fileSuffix = filename.substring(index1, index2)
//把后缀转大写
if(fileSuffix !== undefined && fileSuffix !== null){
fileSuffix = fileSuffix.toUpperCase()
}
// 判断上传文件格式
if (fileSuffix === '.PDF' || fileSuffix === '.DOC' || fileSuffix === '.DOCX' || fileSuffix === '.PPT'
|| fileSuffix === '.PPTX'|| fileSuffix === '.XLS'|| fileSuffix === '.XLSX'
|| fileSuffix === '.PNG'|| fileSuffix === '.JPG'|| fileSuffix === '.JPEG') {
return true
} else {
this.$message.error('文件' + file.name + '格式不正确,请上传pdf、doc、docx、ppt、pptx、xls、xlsx、png、jpg、jpeg等文件')
return false
}
// 判断文件上传大小
if (file.size / 1024 / 1024 <= 200) {// eslint-disable-line
return true
} else {
this.$message.error('文件' + file.name + '大小不超过200M')
return false
}
return true
},
uploadSuccess (res, file, fileList) {
if (res.ok) {
this.addForm['fileIds'].push(res.data.id)
this.$message({
message: '文件上传成功',
type: 'success'
})
} else {
this.$message.error(res.message)
}
},
removeOneFile (file, fileList) {
let fileId = file.response.data.id
let index = this.addForm.fileIds.indexOf(fileId)
this.addForm.fileIds.splice(index, 1)
this.defaultFileList = fileList
},
/*
*@description: 获取选项数据
*@modifyContent:
*@author: 刘志超
*@date: 2020-09-27 10:47:29
*/
getOptionData () {
this.$http.get('sys/org/getTree', {}, {_this: this}, res => {
this.departmentList = res.data.map(item => {
return {
label: item.orgName,
value: item.id
}
})
})
this.$http.get('sys/dictype/getDicTypeListCode', {}, {_this: this}, res => {
Object.keys(res.data).forEach(item => {
switch (item) {
case 'REGION' :
this.regionList = res.data[item]
break
case 'COUNTRY' :
// this.countryList = res.data[item]
break
case 'AREA' :
this.areaList = res.data[item]
break
case 'SUBAREA' :
// this.subAreaList = res.data[item]
break
case 'RELATESYSTEM' :
this.relateSystemList = res.data[item]
break
case 'RELATEASSEM' :
// this.relateAssemList = res.data[item]
break
case 'RELATEPARTS' :
// this.relatePartsList = res.data[item]
break
}
})
})
},
/*
*@description: 区域改变
*@modifyContent:
*@author: 刘志超
*@date: 2020-09-27 11:32:22
*/
regionChange (value) {
return new Promise(resolve => {
this.$http.get('sys/dictype/getDicTypeByParentCodes', {
dicTypeCode: value.toString()
}, {
_this: this
}, res => {
if (res.ok) {
this.countryList = res.data
this.addForm.country = ''
resolve()
}
})
})
},
areaChange (value) {
return new Promise(resolve => {
if (this.drawerOpen) {
this.$http.get('sys/dictype/getDicTypeByParentCodes', {
dicTypeCode: value.toString()
}, {
_this: this
}, res => {
if (res.ok) {
this.subAreaList = res.data
this.addForm.subArea = ''
resolve()
}
})
}
})
},
// 关联系统 change 事件
systemChange (value) {
return new Promise(resolve => {
if (this.drawerOpen) {
this.$http.get('sys/dictype/getDicTypeByParentCodes', {
dicTypeCode: value.toString()
}, {
_this: this
}, res => {
if (res.ok) {
this.relateAssemList = res.data
this.addForm.relateAssem = ''
resolve()
}
})
}
})
},
// 关联总成 change事件
relateAssemChange (value) {
return new Promise(resolve => {
if (this.drawerOpen) {
this.$http.get('sys/dictype/getDicTypeByParentCodes', {
dicTypeCode: value.toString()
}, {
_this: this
}, res => {
if (res.ok) {
this.relatePartsList = res.data
this.addForm.relateParts = ''
resolve()
}
})
}
})
}
}
}
</script>