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,357 @@
<!-- 标准法规库 - 动态&资料 -->
<template>
<div class="skillReqAdd">
<!-- 表单 -->
<search-form @searchData="search"></search-form>
<!-- table -->
<div class="content">
<div class="action-bar">
<el-button type="primary" size="mini" v-btn-permission="'MP3Y2BAK5V'" @click="addData">新建</el-button>
<el-button
type="primary"
size="mini"
v-btn-permission="'MKVDFIF89FN'"
@click="shengban"
>升版</el-button>
<el-button type="danger" size="mini" v-btn-permission="'MKVDFIF89FN'" @click="zuofei">作废</el-button>
<el-button type="primary" size="mini" v-btn-permission="'MKVDFIF89FN'" @click="edit">编辑</el-button>
<el-button
type="danger"
size="mini"
v-btn-permission="'MKVDFIF89FN'"
@click="deleteFun"
>删除</el-button>
<el-button
type="primary"
size="mini"
v-btn-permission="'MKVDFIF89FN'"
@click="exportFun"
>导出</el-button>
<el-upload
class="upload-demo"
:show-file-list="false"
:on-success="uploadSuccess"
action="api/lawss/sarSkillList/importSarSkillListInfo"
>
<el-button class="uploadBtn" size="small" type="primary">
<span class="uploadText">导入</span>
</el-button>
</el-upload>
</div>
<div class="table-wrapper">
<el-table
border
ref="multipleTable"
:data="tableData"
v-loading="tableLoading"
tooltip-effect="dark"
@selection-change="handleSelectionChange"
style="width: 100%"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
:height="tableHeight"
>
<el-table-column
type="selection"
width="55"
align="center"
fixed="left"
></el-table-column>
<el-table-column
type="index"
width="50"
label="序号"
align="center"
></el-table-column>
<el-table-column
prop="snum"
label="编号"
width="120"
align="center"
></el-table-column>
<el-table-column
prop="version"
label="版本"
width="120"
align="center"
></el-table-column>
<el-table-column
prop="status"
label="状态"
width="120"
align="center"
>
<template slot-scope="scope">
<div>{{ scope.row.status === '1' ? '草稿' : scope.row.status === '2' ? '生效' : '作废'}}</div>
</template>
</el-table-column>
<el-table-column
prop="areaShow"
label="领域"
width="200"
align="center"
></el-table-column>
<el-table-column
prop="subAreaShow"
label="子领域"
width="200"
align="center"
></el-table-column>
<el-table-column
prop="firSubjects"
label="一级科目"
width="200"
align="center"
></el-table-column>
<el-table-column
prop="firSubjAsk"
label="一级科目要求"
width="200"
align="center"
></el-table-column>
<el-table-column
prop="secSubjects"
label="二级科目"
width="200"
align="center"
></el-table-column>
<el-table-column
prop="secSubjAsk"
label="二级科目要求"
width="200"
align="center"
></el-table-column>
<el-table-column
prop="relateSystemShow"
label="关联系统"
width="200"
align="center"
></el-table-column>
<el-table-column
prop="systemAsk"
label="系统层级技术要求"
width="200"
align="center"
></el-table-column>
<el-table-column
prop="department"
label="部门"
width="200"
align="center"
></el-table-column>
</el-table>
<pagination
:page="pageItems"
:total="totalItems"
@pageChange="pageChangeItems"
@pageSizeChange="pageSizeChangeItems"
></pagination>
</div>
</div>
<add-drawer
@addData="addFormData"
@closeDrawer="closeDrawer"
:drawerOpen.sync="drawerOpen"
:modalshowtitle="modalshowtitle"
:rowData="rowData"
size="800px"
></add-drawer>
</div>
</template>
<script>
import searchForm from './searchForm'
import addDrawer from '@/pages/skillReq/SkillReqAdd/addDrawer'
export default {
name: 'SkillReqAdd',
components: {
searchForm,
addDrawer
},
data () {
return {
type: '',
tableLoading: false,
tableData: [],
multipleSelection: [],
drawerOpen: false,
pageItems: 1,
totalItems: 0,
searchDataValue: {},
modalshowtitle: '',
rowData: {},
tableHeight: null
}
},
created () {
this.search()
},
methods: {
// 导出事件
exportFun () {
if (this.multipleSelection.length > 0) {
let idList = []
this.multipleSelection.map(item => {
idList.push(item.id)
})
window.open('/api/lawss/sarSkillList/exportSarSkillListInfos?exportContent=' + idList.join() + '&exportType=apart')
} else {
this.$message.warning('请选择要导出的数据')
}
},
deleteFun () {
if (this.multipleSelection.length > 0) {
this.$http.post('lawss/sarSkillList/deleteList', {
ids: this.multipleSelection.map(item => item.id).toString()
}, {
_this: this
}, res => {
if (res.ok) {
this.search()
}
})
} else {
this.$message.warning('请选择要删除的数据')
}
},
edit () {
if (this.multipleSelection && this.multipleSelection.length === 1) {
if (this.multipleSelection[0].status === '1') {
this.drawerOpen = true
this.modalshowtitle = '编辑'
this.type = 'edit'
this.rowData = this.multipleSelection[0]
} else {
this.$message.warning('只有文件状态为草稿的数据可以编辑')
}
} else {
this.$message.warning('必须且只能勾选一个')
}
},
zuofei () {
if (this.multipleSelection.length > 0) {
this.$http.post('lawss/sarSkillList/destroyList', {
ids: this.multipleSelection.map(item => item.id).toString()
}, {
_this: this
}, res => {
if (res.ok) {
this.search()
}
})
} else {
this.$message.warning('请选择要作废的数据')
}
},
shengban () {
if (this.multipleSelection && this.multipleSelection.length === 1) {
this.$http.post('lawss/sarSkillList/upGradeList', {
id: this.multipleSelection.map(item => item.id).toString()
}, {
_this: this
}, res => {
if (res.ok) {
this.search()
}
})
} else {
this.$message.error('必须且只能勾选一个')
}
},
search (data = {}) {
this.tableLoading = true
data['page'] = 1
data['pageSize'] = 10
this.searchDataValue = data
this.$http.postData('lawss/sarSkillList/page', JSON.stringify(data), {
_this: this,
'Content-Type': 'application/json'
}, res => {
if (res.ok) {
this.tableData = res.data.list.map((item, index) => {
return {
...item,
rowIndex: index + 1
}
})
this.totalItems = res.data.count
this.tableLoading = false
}
})
},
handleSelectionChange (val) {
this.multipleSelection = val
},
pageChangeItems (page) {
this.pageItems = page
},
pageSizeChangeItems (pageSize) {
this.itemsRows = pageSize
this.getTestItemRow()
},
addData () {
this.drawerOpen = true
this.modalshowtitle = '新建'
this.type = 'add'
},
addFormData (data) {
this.$http.postData(this.type === 'add' ? 'lawss/sarSkillList/saveSarSkillList' : 'lawss/sarSkillList/updateSarSkillList', JSON.stringify(data), {
_this: this,
'Content-Type': 'application/json'
}, res => {
if (res.ok) {
this.drawerOpen = false
this.search(this.searchDataValue)
}
})
},
uploadSuccess (res, file, fileList) {
if (res.ok) {
this.$message({
message: '导入成功',
type: 'success'
})
} else {
this.$message.error(res.message)
}
},
// 关闭新增抽屉事件
closeDrawer (isDrawer) {
this.drawerOpen = isDrawer
}
},
mounted () {
this.tableHeight = $('.content').height() - 44
window.onresize = () => {
this.tableHeight = $('.content').height() - 44
}
}
}
</script>
<style lang="less" scoped>
// @import "~@/assets/styles/style";
// @import "~@/assets/styles/mixins";
.skillReqAdd {
height: 100%;
.content {
padding: 0 10px;
height: calc(~'100% - 56px - 216px');
}
.upload-demo {
display: inline-block;
color: #fff;
}
.uploadBtn {
height: 24px;
width: 62px;
background-color: #3391ce;
border-color: #3391ce;
.uploadText {
position: relative;
top: -4px;
}
}
}
</style>
@@ -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>
@@ -0,0 +1,691 @@
<!-- 标准法规库 - 动态&资料 -->
<template>
<div class="searchForm">
<el-form :modal="searchOption" :inline="true" ref="numberValidateForm" class="label-input-form">
<el-form-item label="编号" class="serch-form-item">
<el-input v-model="searchOption.snum" placeholder="根据编号查找"></el-input>
</el-form-item>
<el-form-item label="区域" class="serch-form-item">
<search-select
@on-change="regionChange"
v-model="searchOption.regionList"
placeholder="根据国家查找"
:options="regionList"
/>
</el-form-item>
<el-form-item label="国家" class="serch-form-item">
<search-select
v-model="searchOption.countryList"
placeholder="根据国家查找"
:options="countryList"
/>
</el-form-item>
<el-form-item label="来源类型" class="serch-form-item">
<el-select
v-model="searchOption.sourceTypeList"
collapse-tags
multiple
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-form-item label="具体来源" class="serch-form-item">
<el-input v-model="searchOption.specificSource" placeholder="根据编号查找"></el-input>
</el-form-item>
<el-form-item label="车辆类型" class="serch-form-item">
<el-select v-model="searchOption.carTypeList" collapse-tags multiple 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-form-item label="车辆品类" class="serch-form-item">
<el-select
v-model="searchOption.carCategoryList"
multiple
collapse-tags
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-form-item label="领域" class="serch-form-item">
<el-select
@change="areaChange"
v-model="searchOption.areaList"
multiple
collapse-tags
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-form-item label="子领域" class="serch-form-item">
<el-select
v-model="searchOption.subAreaList"
multiple
filterable
placeholder="请选择"
collapse-tags
>
<el-option
v-for="item in subAreaList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="科目" class="serch-form-item">
<el-input v-model="searchOption.allSubjects" placeholder="根据区域查找"></el-input>
</el-form-item>
<el-form-item label="系统" class="serch-form-item">
<el-select
v-model="searchOption.relateSystemList"
multiple
filterable
placeholder="请选择"
collapse-tags
>
<el-option
v-for="item in relateSystemList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="总成" class="serch-form-item">
<el-select
v-model="searchOption.relateAssemList"
multiple
collapse-tags
placeholder="请选择"
>
<el-option
v-for="item in relateAssemList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="部件" class="serch-form-item">
<el-select
v-model="searchOption.relatePartsList"
multiple
collapse-tags
placeholder="请选择"
>
<el-option
v-for="item in relatePartsList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="部门" class="serch-form-item">
<el-select
v-model="searchOption.departmentList"
multiple
collapse-tags
placeholder="请选择"
>
<el-option
v-for="item in departmentList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="创建日期" class="serch-form-item">
<el-date-picker
v-model="searchOption.createDate"
type="daterange"
size="small"
range-separator="-"
value-format="yyyy-MM-dd"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item label="生效日期" class="serch-form-item">
<el-date-picker
v-model="searchOption.startDate"
type="daterange"
size="small"
range-separator="-"
value-format="yyyy-MM-dd"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item label="失效日期" class="serch-form-item">
<el-date-picker
v-model="searchOption.closeDate"
type="daterange"
size="small"
range-separator="-"
value-format="yyyy/MM/dd"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item label="显示结果" class="serch-form-item">
<el-select v-model="searchOption.status" 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-form-item class="serch-form-item">
<div>
<el-button
icon="el-icon-search"
type="primary"
class="searchAngNewBtn"
@click="searchAll"
></el-button>
<el-button
type="primary"
@click="clearAllSearch('numberValidateForm')"
class="searchAngNewBtn"
>清空查询</el-button>
</div>
</el-form-item>
<!-- <el-row>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="编号" class="serch-form-item">-->
<!-- <el-input v-model="searchOption.snum" placeholder="根据编号查找"></el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="区域" class="serch-form-item">-->
<!-- <search-select-->
<!-- @on-change="regionChange"-->
<!-- v-model="searchOption.regionList"-->
<!-- placeholder="根据国家查找"-->
<!-- :options="regionList"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="国家" class="serch-form-item">-->
<!-- <search-select-->
<!-- v-model="searchOption.countryList"-->
<!-- placeholder="根据国家查找"-->
<!-- :options="countryList"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- <el-row>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="来源类型" class="serch-form-item">-->
<!-- <el-select-->
<!-- v-model="searchOption.sourceTypeList"-->
<!-- collapse-tags-->
<!-- multiple-->
<!-- 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="5">-->
<!-- <el-form-item label="具体来源" class="serch-form-item">-->
<!-- <el-input v-model="searchOption.specificSource" placeholder="根据编号查找"></el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="车辆类型" class="serch-form-item">-->
<!-- <el-select v-model="searchOption.carTypeList" collapse-tags multiple 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-row>-->
<!-- <el-row>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="车辆品类" class="serch-form-item">-->
<!-- <el-select-->
<!-- v-model="searchOption.carCategoryList"-->
<!-- multiple-->
<!-- collapse-tags-->
<!-- 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-col :span="5">-->
<!-- <el-form-item label="领域" class="serch-form-item">-->
<!-- <el-select-->
<!-- @change="areaChange"-->
<!-- v-model="searchOption.areaList"-->
<!-- multiple-->
<!-- collapse-tags-->
<!-- 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="5">-->
<!-- <el-form-item label="子领域" class="serch-form-item">-->
<!-- <el-select-->
<!-- v-model="searchOption.subAreaList"-->
<!-- multiple-->
<!-- filterable-->
<!-- placeholder="请选择"-->
<!-- collapse-tags-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in subAreaList"-->
<!-- :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="5">-->
<!-- <el-form-item label="科目" class="serch-form-item">-->
<!-- <el-input v-model="searchOption.allSubjects" placeholder="根据区域查找"></el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="系统" class="serch-form-item">-->
<!-- <el-select-->
<!-- v-model="searchOption.relateSystemList"-->
<!-- multiple-->
<!-- filterable-->
<!-- placeholder="请选择"-->
<!-- collapse-tags-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in relateSystemList"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="总成" class="serch-form-item">-->
<!-- <el-select-->
<!-- v-model="searchOption.relateAssemList"-->
<!-- multiple-->
<!-- collapse-tags-->
<!-- placeholder="请选择"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in relateAssemList"-->
<!-- :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="5">-->
<!-- <el-form-item label="部件" class="serch-form-item">-->
<!-- <el-select-->
<!-- v-model="searchOption.relatePartsList"-->
<!-- multiple-->
<!-- collapse-tags-->
<!-- placeholder="请选择"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in relatePartsList"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="部门" class="serch-form-item">-->
<!-- <el-select-->
<!-- v-model="searchOption.departmentList"-->
<!-- multiple-->
<!-- collapse-tags-->
<!-- placeholder="请选择"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in departmentList"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="创建日期" class="serch-form-item">-->
<!-- <el-date-picker-->
<!-- v-model="searchOption.createDate"-->
<!-- type="daterange"-->
<!-- size="small"-->
<!-- range-separator="-"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- start-placeholder="开始日期"-->
<!-- end-placeholder="结束日期"-->
<!-- ></el-date-picker>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- <el-row type="flex">-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="生效日期" class="serch-form-item">-->
<!-- <el-date-picker-->
<!-- v-model="searchOption.startDate"-->
<!-- type="daterange"-->
<!-- size="small"-->
<!-- range-separator="-"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- start-placeholder="开始日期"-->
<!-- end-placeholder="结束日期"-->
<!-- ></el-date-picker>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="失效日期" class="serch-form-item">-->
<!-- <el-date-picker-->
<!-- v-model="searchOption.closeDate"-->
<!-- type="daterange"-->
<!-- size="small"-->
<!-- range-separator="-"-->
<!-- value-format="yyyy/MM/dd"-->
<!-- start-placeholder="开始日期"-->
<!-- end-placeholder="结束日期"-->
<!-- ></el-date-picker>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="显示结果" class="serch-form-item">-->
<!-- <el-select v-model="searchOption.status" 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-row>-->
<!-- <el-row>-->
<!-- <el-col :span="6">-->
<!-- <div>-->
<!-- <el-button-->
<!-- icon="el-icon-search"-->
<!-- type="primary"-->
<!-- class="searchAngNewBtn"-->
<!-- @click="searchAll"-->
<!-- ></el-button>-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- @click="clearAllSearch('numberValidateForm')"-->
<!-- class="searchAngNewBtn"-->
<!-- >清空查询</el-button>-->
<!-- </div>-->
<!-- </el-col>-->
<!-- </el-row>-->
</el-form>
</div>
</template>
<script>
export default {
name: 'searchForm',
data () {
return {
searchOption: {
snum: '',
regionList: '',
countryList: '',
sourceTypeList: '',
specificSource: '',
carTypeList: '',
carCategoryList: '',
areaList: '',
subAreaList: '',
allSubjects: '',
relateSystemList: '',
relateAssemList: '',
relatePartsList: '',
departmentList: '',
createDate: '',
startDate: '',
closeDate: '',
status: ''
},
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: ''}, {label: '草稿', value: '1'}, {label: '生效', value: '2'}, {label: '作废', value: '3'}]
}
},
created () {
this.getOptionData()
},
methods: {
searchAll () {
console.log('this.searchOption: ', this.searchOption)
let searchData = {}
Object.keys(this.searchOption).forEach(key => {
if (!(this.searchOption[key] === '' || this.searchOption[key] === [])) {
if (key === 'regionList') {
searchData[key] = [this.searchOption[key]]
return
}
if (key === 'countryList') {
searchData[key] = [this.searchOption[key]]
return
}
searchData[key] = this.searchOption[key]
}
})
console.log('searchData: ', searchData)
searchData['effectiveDate1'] = this.searchOption.startDate[0]
searchData['effectiveDate2'] = this.searchOption.startDate[1]
searchData['expriationDate1'] = this.searchOption.closeDate[0]
searchData['expriationDate2'] = this.searchOption.closeDate[1]
searchData['creationTime1'] = this.searchOption.createDate[0]
searchData['creationTime2'] = this.searchOption.createDate[1]
this.$emit('searchData', searchData)
},
clearAllSearch (formName) {
Object.keys(this.searchOption).forEach(key => {
this.searchOption[key] = ''
})
},
/*
*@description: 获取选项数据
*@modifyContent:
*@author: 刘志超
*@date: 2020-09-27 10:47:29
*/
getOptionData () {
this.$http.get('sys/org/getTree', {}, {_this: this}, res => {
console.log('res: ', res)
this.departmentList = res.data.map(item => {
return {
label: item.orgName,
value: item.id
}
})
})
this.$http.get('sys/dictype/getDicTypeListCode', {}, {_this: this}, res => {
console.log('res: ', 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) {
this.$http.get('sys/dictype/getDicTypeByParentCodes', {
dicTypeCode: value.toString()
}, {
_this: this
}, res => {
if (res.ok) {
this.countryList = res.data
}
})
},
areaChange (value) {
this.$http.get('sys/dictype/getDicTypeByParentCodes', {
dicTypeCode: value.toString()
}, {
_this: this
}, res => {
if (res.ok) {
this.subAreaList = res.data
}
})
}
}
}
</script>
<style lang="less" scoped>
.searchForm {
padding: 0 10px;
.needOpen {
max-height: 75px;
overflow: hidden;
}
.searchRow {
font-size: 15px;
line-height: 35px;
display: flex;
position: relative;
margin-bottom: 5px;
.searchLabel {
flex-shrink: 0;
}
.searchData {
display: flex;
flex-wrap: wrap;
}
.openBtn {
flex-shrink: 0;
align-self: flex-end;
}
span {
margin-right: 15px;
padding: 0px 7px;
border-radius: 2px;
transition: all 0.3s ease;
user-select: none;
margin-bottom: 5px;
}
}
.searchBtn {
margin-top: 20px;
}
.active {
background: #3391ce;
color: #fff;
}
// .serch-form-item .el-form-item__content .el-input__inner{
// width: 200px;
// }
}
</style>
@@ -0,0 +1,201 @@
<!-- 标准法规库 - 动态&资料 -->
<template>
<div class="skillReqSee">
<div class="headerSearch">
<div class="search">
<el-input placeholder="请输入内容" v-model="keywordsValue" class="input-with-select">
<el-button slot="append" icon="el-icon-search" @click="searchData(searchDataValue)"></el-button>
</el-input>
</div>
</div>
<div class="content">
<!-- 左侧tree -->
<div class="contentLeft el-card">
<div>
<laws-tree
ref="layTree"
:zNodes="zNodes"
treeDivId="zNodesS"
checkEnable
:filterNode="false"
@treeOnCheck="(checkedList) => treeOnCheck(checkedList)"
class="ztree"
style="width: 200px;height: 400px;overflow: auto"
showRMenu
></laws-tree>
</div>
</div>
<div class="contentRight el-card">
<!-- 表单 -->
<div class="searchForm">
<search-form @searchData="searchData"></search-form>
</div>
<el-divider></el-divider>
<!-- table -->
<div class="dataTable">
<el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%">
<el-table-column type="index" width="50" label="序号"></el-table-column>
<el-table-column prop="snum" label="编号" min-width="120"></el-table-column>
<el-table-column prop="area" label="领域" min-width="120"></el-table-column>
<el-table-column prop="subArea" label="子领域" min-width="120"></el-table-column>
<el-table-column prop="firSubjects" label="一级科目" min-width="120"></el-table-column>
<el-table-column prop="firSubjAsk" label="一级科目要求" min-width="120"></el-table-column>
<el-table-column prop="secSubjects" label="二级科目" min-width="120"></el-table-column>
<el-table-column prop="secSubjAsk" label="二级科目要求" min-width="120"></el-table-column>
<el-table-column prop="relateSystem" label="关联系统" min-width="120"></el-table-column>
<el-table-column prop="systemAsk" label="系统层级技术要求" min-width="120"></el-table-column>
<el-table-column prop="department" label="部门" min-width="120"></el-table-column>
</el-table>
<pagination
:page="pageItems"
:total="totalItems"
@pageChange="pageChangeItems"
@pageSizeChange="pageSizeChangeItems"
></pagination>
</div>
</div>
</div>
</div>
</template>
<script>
import 'zTree/js/jquery.ztree.core.js'
import 'zTree/js/jquery.ztree.excheck.js'
import 'zTree/js/jquery.ztree.exedit.js'
import searchForm from './searchForm'
export default {
name: 'SkillReqSee',
components: {
searchForm
},
data () {
return {
zNodes: [],
keywordsValue: '',
tableData: [],
multipleSelection: [],
pageItems: 1,
totalItems: 0,
itemsRows: 10,
searchDataValue: {},
relateSystemList: [], // 系统
relateAssemList: [], // 总成
relatePartsList: [] // 部件
}
},
created () {
this.selectMenu()
this.searchData()
},
methods: {
// 查询二级菜单
selectMenu () {
this.$http.get('lawss/sarSkillList/queryTreeSkillList', {}, {
_this: this
}, res => {
let cur = res.data
let str = []
let option = {}
// eslint-disable-next-line no-unused-vars
let saveRoot = {}
for (var i = 0; i < cur.length; i++) {
option = {
id: cur[i].id,
pId: cur[i].parentId,
name: cur[i].dicTypeName,
dicTypeCode: cur[i].dicTypeCode
}
str.push(option)
if (cur[i].parentId == null || cur[i].parentId === '') {
this.saveRootNodes = cur[i].id
saveRoot = cur[i]
}
}
this.zNodes = str
}, e => {
})
},
// 获取选中的tree数组
treeOnCheck (checkedList) {
this.relateSystemList = []
this.relateAssemList = []
this.relatePartsList = []
checkedList.map((item, index) => {
if (item.level === 0) {
this.relateSystemList.push(item.dicTypeCode)
} else if (item.level === 1) {
this.relateAssemList.push(item.dicTypeCode)
} else if (item.level === 2) {
this.relatePartsList.push(item.dicTypeCode)
}
})
this.searchData()
},
pageChangeItems (page) {
this.pageItems = page
},
pageSizeChangeItems (pageSize) {
this.itemsRows = pageSize
this.getTestItemRow()
},
searchData (data = {}) {
data['keywords'] = this.keywordsValue ? this.keywordsValue : ''
data['page'] = 1
data['pageSize'] = 10
data['relateSystemList'] = this.relateSystemList || null // 系统
data['relateAssemList'] = this.relateAssemList || null // 总成
data['relatePartsList'] = this.relatePartsList || null // 部件
this.searchDataValue = data
this.$http.postData('lawss/sarSkillList/page', JSON.stringify(data), {
_this: this,
'Content-Type': 'application/json'
}, res => {
if (res.ok) {
this.tableData = res.data.list
this.totalItems = res.data.count
}
})
}
}
}
</script>
<style lang="less" scoped>
// @import "~@/assets/styles/style";
// @import "~@/assets/styles/mixins";
.skillReqSee {
height: 100%;
display: flex;
flex-direction: column;
.headerSearch {
padding-top: 10px;
text-align: center;
.search {
display: inline-block;
width: 400px;
}
}
.content {
display: flex;
flex-grow: 1;
margin-top: 10px;
.contentLeft {
flex-shrink: 0;
}
.contentRight {
margin-left: 3px;
flex-grow: 1;
.searchForm {
}
.dataTable {
padding: 10px;
}
.pagination {
position: static;
}
}
}
}
</style>
@@ -0,0 +1,433 @@
<!-- 标准法规库 - 动态&资料 -->
<template>
<div class="searchForm" v-loading="loading">
<div
v-for="(item,index) in searchOption"
class="searchRow"
:key="index"
:ref="item.needOpen ? 'searchRowRef' : ''"
:class="{ 'needOpen': item.needOpen && item.enoughData && !item.openStatus}"
>
<span class="searchLabel">{{item.label}}:</span>
<div class="searchData">
<span
v-for="(option, optionIndex) in item.data"
:key="optionIndex"
@click="selectOPtion(option.value,index)"
:class="{ 'active': item.selectValue.includes(option.value) }"
>{{option.label}}</span>
</div>
<span
v-if="item.needOpen && item.enoughData"
class="openBtn"
@click="openRow(item)"
>{{ item.openStatus ? '收缩' : '展开' }}</span>
</div>
<div class="searchRow" style="margin:15px 21px 0 0;border:none;">
<el-form class="label-input-form" style="width: 100%;display: flex;" >
<el-form-item label="科目"
prop="dicTypeName"
class="my-form-item add-form-item">
<el-input v-model="subject" placeholder="请输入内容"></el-input>
</el-form-item>
<el-form-item label="生效日期"
prop="dicTypeName"
class="my-form-item add-form-item">
<el-date-picker
v-model="startDate"
type="daterange"
range-separator="—"
value-format="yyyy-MM-dd"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
</el-form>
<el-button icon="el-icon-search" type="primary" class="searchAngNewBtn" @click="reloadTable()"></el-button>
<el-button type="primary" @click="clearAllSearch()" class="searchAngNewBtn">清空查询</el-button>
</div>
<!-- <div class="searchRow" style="margin:15px 0">-->
<!-- <span class="searchLabel">科目:</span>-->
<!-- <el-input v-model="subject" placeholder="请输入内容" size="small" style="width:200px"></el-input>-->
<!-- </div>-->
<!-- <div class="searchRow">-->
<!-- <span class="searchLabel">生效日期:</span>-->
<!-- <el-date-picker-->
<!-- v-model="startDate"-->
<!-- type="daterange"-->
<!-- size="small"-->
<!-- range-separator="至"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- start-placeholder="开始日期"-->
<!-- end-placeholder="结束日期"-->
<!-- ></el-date-picker>-->
<!-- </div>-->
<!-- <div class="searchBtn">-->
<!-- <el-button icon="el-icon-search" type="primary" class="searchAngNewBtn" @click="reloadTable()"></el-button>-->
<!-- <el-button type="primary" @click="clearAllSearch()" class="searchAngNewBtn">清空查询</el-button>-->
<!-- </div>-->
</div>
</template>
<script>
const all = {label: '全部', value: 'all'}
export default {
name: 'searchForm',
props: {
keywordsValue: ''
},
data () {
return {
subject: '',
startDate: '',
loading: true,
// 搜索行数据
searchOption: [
{
label: '区域',
data: [],
selectValue: ['all']
},
{
label: '国家',
data: [],
// 是否需要展开
needOpen: true,
openStatus: false,
enoughData: false,
selectValue: ['all']
},
{
label: '来源类型',
data: [{label: '全部', value: 'all'}, {label: '强制法规', value: 'QZFG'}, {label: '机构测评', value: 'JGPC'}, {label: '市场要求', value: 'SCXQ'}, {label: '顾客需求', value: 'GKXQ'}, {label: '竞争策略', value: 'JZCL'}, {label: '部件专属要求', value: 'ZSXQ'}, {label: '其他', value: 'other'}],
selectValue: ['all']
},
{
label: '车辆类型',
data: [{label: '全部', value: 'all'}, {label: 'M1', value: 'M1'}, {label: 'M2', value: 'M2'}, {label: 'N1', value: 'N1'}, {label: 'N2', value: 'N2'}],
selectValue: ['all']
},
{
label: '车辆品类',
data: [{label: '全部', value: 'all'}, {label: '三厢轿车', value: 'SXJC'}, {label: '两厢轿车', value: 'LXJC'}, {label: '承载式SUV', value: 'CZSUV'}, {label: '非承载式SUV', value: 'FCZSUV'}, {label: '皮卡', value: 'PK'}, {label: '轻客', value: 'QK'}, {label: '轻货', value: 'QH'}],
selectValue: ['all']
},
{
label: '领域',
data: [],
selectValue: ['all']
},
{
label: '子领域',
data: [],
selectValue: ['all'],
// 是否需要展开
needOpen: true,
enoughData: false,
openStatus: false
},
// {
// label: '系统',
// data: [],
// selectValue: ['all']
// },
// {
// label: '总成',
// data: [],
// selectValue: ['all']
// },
// {
// label: '部件',
// data: [],
// selectValue: ['all']
// },
{
label: '部门',
data: [],
selectValue: ['all']
}
]
}
},
created () {
console.log('Object.keys(searchOption): ', Object.keys(this.searchOption))
this.getOptionData()
// setTimeout(() => {
// this.searchOption[6].data = Array(45).fill('test')
// this.searchOption[6].data = Array(45).fill('test')
// this.ifHaveEnoughData()
// }, 5000)
},
methods: {
/*
*@description: 获取选项数据
*@modifyContent:
*@author: 刘志超
*@date: 2020-09-27 10:47:29
*/
getOptionData () {
this.$http.get('sys/org/getTree', {}, {_this: this}, res => {
console.log('res: ', res)
this.searchOption[7].data = res.data.map(item => {
return {
label: item.orgName,
value: item.id
}
})
this.searchOption[7].data.unshift(all)
})
this.$http.get('sys/dictype/getDicTypeListCode', {}, {_this: this}, res => {
console.log('res: ', res)
Object.keys(res.data).forEach(item => {
switch (item) {
case 'REGION' :
this.searchOption[0].data = res.data[item]
this.searchOption[0].data.unshift(all)
break
case 'COUNTRY' :
this.searchOption[1].data = res.data[item]
this.searchOption[1].data.unshift(all)
break
case 'AREA' :
this.searchOption[5].data = res.data[item]
this.searchOption[5].data.unshift(all)
break
case 'SUBAREA' :
this.searchOption[6].data = res.data[item]
this.searchOption[6].data.unshift(all)
break
// case 'RELATESYSTEM' :
// this.searchOption[7].data = res.data[item]
// this.searchOption[7].data.unshift(all)
// break
// case 'RELATEASSEM' :
// this.searchOption[8].data = res.data[item]
// this.searchOption[8].data.unshift(all)
// break
// case 'RELATEPARTS' :
// this.searchOption[9].data = res.data[item]
// this.searchOption[9].data.unshift(all)
// break
}
})
this.ifHaveEnoughData()
this.loading = false
})
},
/*
*@description: 点击选项
*@modifyContent:
*@author: 刘志超
*@date: 2020-09-18 17:14:17
*/
selectOPtion (value, index) {
let optionArr = this.searchOption[index]['selectValue']
let optionIndex = optionArr.indexOf(value)
// 取消选中
if (optionIndex !== -1) {
// 只有全部不取消
if (!(optionArr.length === 1 && value === 'all')) {
optionArr.splice(optionIndex, 1)
}
// 取消之后没有选中的了,选中全部
if (optionArr.length === 0) {
optionArr.push('all')
}
} else {
if (value === 'all') {
optionArr.splice(0, optionArr.length)
optionArr.push('all')
} else {
optionArr.push(value)
if (optionArr[0] === 'all') {
optionArr.shift()
}
}
}
this.handleOptionClick(optionArr, index)
},
/*
*@description:处理选项点击
*@modifyContent:
*@author: 刘志超
*@date: 2020-09-27 13:50:21
*/
handleOptionClick (value, index) {
console.log('value: ', value)
// 区域
if (index === 0 || index === 5 || index === 7 || index === 8) {
this.loading = true
this.regionChange(value, index)
}
this.reloadTable()
},
/*
*@description: 区域改变
*@modifyContent:
*@author: 刘志超
*@date: 2020-09-27 11:32:22
*/
regionChange (value, index) {
// 全部
if (value[0] === 'all') {
this.$http.get('sys/dictype/getDicTypeListCode', {}, {_this: this}, res => {
console.log('res: ', res)
this.searchOption[index + 1].data = index === 0 ? res.data['COUNTRY'] : res.data['SUBAREA']
this.searchOption[index + 1].data.unshift(all)
this.ifHaveEnoughData()
this.loading = false
})
} else {
this.$http.get('sys/dictype/getDicTypeByParentCodes', {
dicTypeCode: value.toString()
}, {
_this: this
}, res => {
if (res.ok) {
this.searchOption[index + 1].data = res.data
this.searchOption[index + 1].data.unshift(all)
this.searchOption[index + 1].selectValue = ['all']
this.ifHaveEnoughData()
this.loading = false
}
})
}
},
/*
*@description: 搜索数据
*@modifyContent:
*@author: 刘志超
*@date: 2020-09-27 15:38:13
*/
reloadTable () {
let searchdata = this.searchOption.map(item => item.selectValue)
console.log('searchdata: ', searchdata)
let data = {}
const keys = ['regionList', 'countryList', 'sourceTypeList', 'carTypeList', 'carCategoryList', 'areaList', 'subAreaList', 'departmentList']
keys.forEach((key, index) => {
if (searchdata[index][0] !== 'all') {
data[key] = searchdata[index]
}
})
data['allSubjects'] = this.subject ? this.subject : null
console.log('this.startDate: ', this.startDate)
data['effectiveDate1'] = this.startDate[0] ? this.startDate[0] : null
data['effectiveDate2'] = this.startDate[1] ? this.startDate[1] : null
console.log('data: ', data)
this.$emit('searchData', data)
},
/*
*@description: 点击展开
*@modifyContent:
*@author: 刘志超
*@date: 2020-09-18 17:14:33
*/
openRow (item) {
item.openStatus = !item.openStatus
},
/*
*@description:重置
*@modifyContent:
*@author: 刘志超
*@date: 2020-09-18 17:14:52
*/
clearAllSearch () {
Object.keys(this.searchOption).forEach(key => {
this.searchOption[key].selectValue = ['all']
})
this.startDate = ''
this.subject = ''
},
/*
*@description:判断数据是否大于一行
*@modifyContent:
*@author: 刘志超
*@date: 2020-09-18 17:15:55
*/
ifHaveEnoughData () {
this.searchOption[1].enoughData = false
this.searchOption[6].enoughData = false
this.$nextTick(function () {
let cur = this.$refs['searchRowRef']
cur.forEach((dom, index) => {
// 数据足够多的时候才需要显示展开
if (dom.clientHeight > 40) {
// 这里searchOption里的index是写死的
index === 0 ? this.searchOption[1].enoughData = true : this.searchOption[6].enoughData = true
} else {
index === 0 ? this.searchOption[1].enoughData = false : this.searchOption[6].enoughData = false
}
})
})
}
}
}
</script>
<style lang="less" scoped>
.searchForm {
padding: 10px;
.my-form-item {
display: flex;
margin-right: 10px;
margin-bottom: 0;
}
.needOpen {
max-height: 35px;
overflow: hidden;
}
.searchRow {
border-bottom: 1px dashed #efefef;
font-size: 15px;
line-height: 35px;
display: flex;
position: relative;
margin-bottom: 5px;
.searchLabel {
flex-shrink: 0;
flex-basis: 80px;
}
.searchData {
display: flex;
flex-wrap: wrap;
align-items: center;
}
.openBtn {
flex-shrink: 0;
color:#3391ce;
// align-self: flex-end;
}
span {
margin-right: 15px;
padding: 0px 7px;
border-radius: 2px;
transition: all 0.3s ease;
user-select: none;
margin-bottom: 5px;
}
}
.searchBtn {
margin-top: 20px;
}
.active {
background: #3391ce;
color: #fff;
line-height: 24px;
height: 24px;
}
}
</style>
<style lang="less">
.searchForm {
.el-range-separator {
line-height: 32px;
}
}
.el-table th {
background: rgb(248, 248, 249) !important;
}
</style>
+21
View File
@@ -0,0 +1,21 @@
<!-- localTool页面 liuyan -->
<template>
<div class="demo v-class">
<router-view />
</div>
</template>
<script>
export default {
name: 'skillReq',
data () {
return {
//
}
}
}
</script>
<style lang="less" scoped>
.demo{
height: 100%;
}
</style>