<template>
|
<div class="form-content" v-loading="loading">
|
<div class="title">
|
<SectionTitle title="项目信息"></SectionTitle>
|
</div>
|
<el-form ref="form" :model="form" label-width="120px" size="small" :rules="rules">
|
<el-form-item label="档案编号">
|
<el-input v-model="form.archiveNo" disabled placeholder="系统自动生成"></el-input>
|
</el-form-item>
|
<el-form-item label="产品名称" prop="productName">
|
<el-input v-model="form.productName" :disabled="!isEdit"></el-input>
|
</el-form-item>
|
<el-form-item label="档案类型" prop="archiveType">
|
<el-select v-model="form.archiveType" placeholder="请选择" :disabled="!isEdit" @change="archiveTypeChange">
|
<el-option v-for="(item, index) in archiveTypeList" :key="index" :label="item.itemname" :value="item.itemno">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="档案 " prop="content">
|
<el-select v-model="form.content" placeholder="请选择" :disabled="!isEdit">
|
<el-option v-for="(item, index) in archiveContentList" :key="index" :label="item.itemname" :value="item.itemno">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="创建人" >
|
<el-input v-model="form.createUser" disabled placeholder="系统自动生成"></el-input>
|
</el-form-item>
|
<el-form-item label="创建时间">
|
<el-input v-model="form.createDate" disabled placeholder="系统自动生成"></el-input>
|
</el-form-item>
|
<el-form-item label="档案名称" class="long-item" prop="archiveName">
|
<el-input v-model="form.archiveName" :disabled="!isEdit"></el-input>
|
</el-form-item>
|
<el-form-item label="档案简介" class="long-item" prop="archiveSummary">
|
<el-input v-model="form.archiveSummary" type="textarea" :disabled="!isEdit"></el-input>
|
</el-form-item>
|
</el-form>
|
|
<!-- <el-form
|
v-bind="$attrs"
|
:model="formValues"
|
ref="editForm"
|
:label-width="labelWidth"
|
:inline="inline"
|
:class="`form-cols-${inline ? showColumn : '0'}`"
|
size="small"
|
:rules="formRules"
|
>
|
</el-form> -->
|
</div>
|
</template>
|
<script>
|
// 表单项-目前用于搜索部分
|
import SectionTitle from '../SectionTitle'
|
import {
|
getArchiveDetail,
|
queryDictionaryByCode,
|
addArchiveDetail,
|
editArchiveDetail
|
} from '@comprehensive/serve/public'
|
|
export default {
|
components: {
|
SectionTitle,
|
},
|
data() {
|
return {
|
form: {},
|
type: 'add',
|
isEdit: false,
|
archiveNo: '',
|
loading: false,
|
itemTypeList: [],
|
nodeTypeList: [],
|
signStatusList: [],
|
archiveTypeList: [],
|
archiveContentList: [],
|
rules:{
|
productName: [
|
{ required: true, message: '请输入产品名称', trigger: 'blur' },
|
],
|
archiveType: [
|
{ required: true, message: '请选择档案类型', trigger: 'change' },
|
],
|
content: [
|
{ required: true, message: '请选择档案内容', trigger: 'change' },
|
],
|
archiveName: [
|
{ required: true, message: '请输入档案名称', trigger: 'blur' },
|
],
|
archiveSummary: [
|
{ required: false, message: '请输入档案简介', trigger: 'blur' },
|
],
|
}
|
}
|
},
|
async mounted() {
|
const { type, archiveNo } = this.$route.query
|
this.type = type || 'add'
|
if(type == 'detail') {
|
this.isEdit = false
|
} else {
|
this.isEdit = true
|
}
|
if (archiveNo) this.getDetail(archiveNo)
|
// this.itemTypeList = await this.queryDictionaryByCode('ItemType')
|
// this.nodeTypeList = await this.queryDictionaryByCode('NodeType')
|
// this.signStatusList = await this.queryDictionaryByCode('SignStatus')
|
this.archiveTypeList = await this.queryDictionaryByCode('ArchiveType')
|
this.archiveContentList = await this.queryDictionaryByCode('ArchiveContent')
|
},
|
methods: {
|
onSubmit() {
|
console.log('submit!');
|
},
|
async getDetail(archiveNo) {
|
this.loading = true
|
const res = await getArchiveDetail({
|
archiveNo
|
})
|
this.loading = false
|
const { result } = res
|
this.form = result
|
},
|
queryDictionaryByCode(code) {
|
return new Promise(resolve => {
|
queryDictionaryByCode({
|
codeNo: code
|
}).then(res => {
|
resolve(res.result)
|
})
|
})
|
},
|
async archiveTypeChange() {
|
let value = this.form.archiveType
|
const { result } = await queryDictionaryByCode({
|
"codeNo": "ArchiveContent",
|
"itemAttribute": value
|
})
|
if(this.form.content){
|
this.form.content = ''
|
}
|
this.archiveContentList = result
|
},
|
// 统一输出数据格式,如日期格式化
|
formatInput(val) {
|
const { dateFormate } = this
|
if (Array.isArray(val)) {
|
return val.reduce((pre, curr) => {
|
pre.push(this.formatInput(curr))
|
return pre
|
}, [])
|
}
|
return val instanceof Date ? this.dayjs(val).format(dateFormate) : val
|
},
|
|
// 表单校验,未通过校验返回false,通过返回数据
|
validate() {
|
const { formValues } = this
|
let info = false
|
this.$refs.editForm.validate(valid => {
|
if (valid) {
|
info = formValues
|
}
|
})
|
return info
|
},
|
|
async PARENT_SUBMIT() {
|
let info = await this.$refs['form'].validate()
|
if(!info) return
|
let formData = {
|
...this.form,
|
useType: '02'
|
}
|
// const res = await getArchiveDetail(formData)
|
// debugger
|
let res;
|
if(!this.form.archiveNo) {
|
res = await addArchiveDetail(formData)
|
if(res.code == '00') {
|
this.$message.success('新增成功!')
|
this.$router.go(-1)
|
// this.$router.replace({
|
// path: this.$store.state.product.detailBackRoute
|
// })
|
}
|
}
|
else {
|
res = await editArchiveDetail(formData)
|
if(res.code == '00') {
|
this.$message.success('保存成功!')
|
this.$router.go(-1)
|
}
|
}
|
// const { model, query, detailInfo, contractNoArray } = this
|
// const { applySerialNo } = query
|
// const { mailingNo } = detailInfo
|
// let info = this.$refs.malApply.validate()
|
// if (info) {
|
// // this.loading = true
|
|
// if (info.contractSendType === '02' && contractNoArray.length < 1) {
|
// this.$message.warning('请先选择电子合同!')
|
// return false
|
// }
|
// await model.request({
|
// applySerialNo,
|
// mailingNo,
|
// contractNoArray,
|
// ...info
|
// })
|
// this.isShowSucc = true
|
// // this.loading = false
|
// } else {
|
// this.$message.warning('当前页面存在必填项未录入或数据录取错误,请检查!')
|
// }
|
},
|
resetFields() {
|
this.$refs.editForm.resetFields();
|
},
|
},
|
computed: {
|
}
|
}
|
</script>
|
<style lang="postcss" scoped>
|
.form-content {
|
&>>>.el-form {
|
|
display: flex;
|
justify-content: flex-start;
|
flex-wrap: wrap;
|
|
& .el-form-item {
|
width: 45%;
|
margin: 0 30px 24px 0;
|
|
&.long-item {
|
width: calc(90% + 30px);
|
}
|
|
& .el-select {
|
width: 100%;
|
}
|
}
|
}
|
}
|
</style>
|