|
@ -1,21 +1,20 @@ |
|
|
<template> |
|
|
<template> |
|
|
<div v-show="visible" class="app-container"> |
|
|
<div class="app-container"> |
|
|
<div class="tab-header webtop"> |
|
|
<div class="tab-header webtop"> |
|
|
<div>合同模板</div> |
|
|
<div>合同模板</div> |
|
|
<!-- <div v-else></div> --> |
|
|
|
|
|
<div> |
|
|
<div> |
|
|
<el-button type="primary" size="small" @click="handleCreate()">保存</el-button> |
|
|
<el-button type="primary" size="small" @click="handleCreate()">保存</el-button> |
|
|
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button> |
|
|
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="listconadd"> |
|
|
<div class="listconadd"> |
|
|
<el-form ref="dataForm" :model="temp" label-position="right" label-width="190px" class="formadd widthxiao" :rules="rules"> |
|
|
<el-form ref="dataForm" :model="formobj" label-position="right" label-width="190px" class="formadd widthxiao" :rules="rules"> |
|
|
<div class="titwu">合同模板</div> |
|
|
<div class="titwu">合同模板</div> |
|
|
<el-row class="bordertopline"> |
|
|
<el-row class="bordertopline"> |
|
|
<el-col :span="24"> |
|
|
<el-col :span="24"> |
|
|
<el-form-item prop="contractType"> |
|
|
<el-form-item prop="contractType"> |
|
|
<span slot="label">合同类型</span> |
|
|
<span slot="label">合同类型</span> |
|
|
<el-select v-model="temp.contractType" placeholder="请选择" class="addinputw" @change="typeChange"> |
|
|
<el-select v-model="formobj.contractType" placeholder="请选择" class="addinputw" @change="typeChange"> |
|
|
<el-option v-for="item in typeList" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"/> |
|
|
<el-option v-for="item in typeList" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"/> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
@ -25,8 +24,7 @@ |
|
|
<el-col :span="24"> |
|
|
<el-col :span="24"> |
|
|
<el-form-item prop="templateUrl"> |
|
|
<el-form-item prop="templateUrl"> |
|
|
<span slot="label">选择模板文件</span> |
|
|
<span slot="label">选择模板文件</span> |
|
|
<Upload v-model="list1" :upload-data="{type:'0004'}" /> |
|
|
<Upload ref="fileUpload" style="width: 40%" @fileAdd="fileAdd" @fileDelete="fileDelete"/> |
|
|
<div><span v-show="nameStyle">{{ temp.fileName }}</span><i v-show="deleteTubiaoStyle" class="el-icon-delete" style="color:red;size:10px" @click="deleteJpg(temp.templateUrl)" /></div> |
|
|
|
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-col> |
|
|
</el-col> |
|
|
</el-row> |
|
|
</el-row> |
|
@ -34,7 +32,7 @@ |
|
|
<el-col :span="24"> |
|
|
<el-col :span="24"> |
|
|
<el-form-item prop="fileName"> |
|
|
<el-form-item prop="fileName"> |
|
|
<span slot="label">文件名称</span> |
|
|
<span slot="label">文件名称</span> |
|
|
<el-input v-model="temp.fileName" maxlength="125" placeholder="" class="addinputw" clearable /> |
|
|
<el-input v-model="formobj.fileName" maxlength="125" placeholder="" class="addinputw" readonly/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-col> |
|
|
</el-col> |
|
|
</el-row> |
|
|
</el-row> |
|
@ -42,7 +40,7 @@ |
|
|
<el-col :span="24"> |
|
|
<el-col :span="24"> |
|
|
<el-form-item prop="ver"> |
|
|
<el-form-item prop="ver"> |
|
|
<span slot="label">版本号</span> |
|
|
<span slot="label">版本号</span> |
|
|
<el-input v-model="temp.ver" maxlength="125" placeholder="" class="addinputw" clearable /> |
|
|
<el-input v-model="formobj.ver" maxlength="125" placeholder="" class="addinputw" clearable/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-col> |
|
|
</el-col> |
|
|
</el-row> |
|
|
</el-row> |
|
@ -50,7 +48,7 @@ |
|
|
<el-col :span="24"> |
|
|
<el-col :span="24"> |
|
|
<el-form-item> |
|
|
<el-form-item> |
|
|
<span slot="label">人员类型</span> |
|
|
<span slot="label">人员类型</span> |
|
|
<el-select v-model="temp.objectType" placeholder="请选择" class="addinputw" @change="objectTypeChange"> |
|
|
<el-select v-model="formobj.objectType" placeholder="请选择" class="addinputw" @change="objectTypeChange"> |
|
|
<el-option v-for="items in personnelTypeList" :key="items.dictKey" :label="items.dictValue" :value="items.dictValue"/> |
|
|
<el-option v-for="items in personnelTypeList" :key="items.dictKey" :label="items.dictValue" :value="items.dictValue"/> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
@ -60,7 +58,7 @@ |
|
|
<el-col :span="24"> |
|
|
<el-col :span="24"> |
|
|
<el-form-item> |
|
|
<el-form-item> |
|
|
<span slot="label">项目类型</span> |
|
|
<span slot="label">项目类型</span> |
|
|
<el-select v-model="temp.projectType" placeholder="请选择" class="addinputw" @change="projectTypeChange"> |
|
|
<el-select v-model="formobj.projectType" placeholder="请选择" class="addinputw" @change="projectTypeChange"> |
|
|
<el-option v-for="ite in projectTypeList" :key="ite.dictKey" :label="ite.dictValue" :value="ite.dictValue"/> |
|
|
<el-option v-for="ite in projectTypeList" :key="ite.dictKey" :label="ite.dictValue" :value="ite.dictValue"/> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
@ -70,7 +68,7 @@ |
|
|
<el-col :span="24"> |
|
|
<el-col :span="24"> |
|
|
<el-form-item prop="funNode"> |
|
|
<el-form-item prop="funNode"> |
|
|
<span slot="label">功能节点</span> |
|
|
<span slot="label">功能节点</span> |
|
|
<el-input v-model="temp.funNode" maxlength="125" placeholder="" class="addinputw" clearable /> |
|
|
<el-input v-model="formobj.funNode" maxlength="125" placeholder="" class="addinputw" clearable/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-col> |
|
|
</el-col> |
|
|
</el-row> |
|
|
</el-row> |
|
@ -78,231 +76,158 @@ |
|
|
<el-col :span="24"> |
|
|
<el-col :span="24"> |
|
|
<el-form-item> |
|
|
<el-form-item> |
|
|
<span slot="label">备注</span> |
|
|
<span slot="label">备注</span> |
|
|
<el-input v-model="temp.remarks" maxlength="125" placeholder="" class="addinputw" clearable type="textarea" :rows="3" /> |
|
|
<el-input v-model="formobj.remarks" maxlength="125" placeholder="" clearable type="textarea" :rows="3"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-col> |
|
|
</el-col> |
|
|
</el-row> |
|
|
</el-row> |
|
|
|
|
|
|
|
|
</el-form> |
|
|
</el-form> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<script> |
|
|
<script> |
|
|
import { mapGetters } from 'vuex' |
|
|
|
|
|
import { |
|
|
import { |
|
|
saveTemplate, |
|
|
saveTemplate, |
|
|
getOneTemplate, |
|
|
|
|
|
updateTemplate, |
|
|
updateTemplate, |
|
|
deleteFilesOss, |
|
|
getOneTemplate, |
|
|
} from '@/api/jichuxinxi/contract' |
|
|
} from '@/api/jichuxinxi/contract' |
|
|
import { dictType } from '@/api/salesManagement/orderManagement' |
|
|
import { dictType } from '@/api/salesManagement/orderManagement' |
|
|
import Upload from '@/components/uploadFile/upload.vue' // 上传文件 |
|
|
import Upload from '@/components/uploadFile/HeTongMoBanUpload.vue' // 上传文件 |
|
|
export default { |
|
|
export default { |
|
|
name: 'HetongdanganguanliAdd', |
|
|
name: 'HetongdanganguanliAdd', |
|
|
components: { Upload }, |
|
|
components: { Upload }, |
|
|
data() { |
|
|
data() { |
|
|
return { |
|
|
return { |
|
|
// --按钮菜单------- |
|
|
|
|
|
deleteTubiaoStyle: false, |
|
|
|
|
|
visible: false, |
|
|
|
|
|
nameStyle: false, |
|
|
|
|
|
list1: [], |
|
|
list1: [], |
|
|
projectTypeList: [], |
|
|
projectTypeList: [], |
|
|
typeList: [], |
|
|
typeList: [], |
|
|
personnelTypeList: [], |
|
|
personnelTypeList: [], |
|
|
stateId: 0, |
|
|
stateId: 0, |
|
|
FormLoading: false, |
|
|
formobj: { |
|
|
listLoading: false, |
|
|
sid: '', |
|
|
temp: {}, // 添加和修改 |
|
|
contractType: '', |
|
|
hetongType: [], |
|
|
contractTypeKey: '', |
|
|
dialogStatus: '', // 对话框状态 |
|
|
templateUrl: '', |
|
|
|
|
|
fileName: '', |
|
|
|
|
|
fileType: '', |
|
|
|
|
|
ver: '', |
|
|
|
|
|
objectType: '', |
|
|
|
|
|
objectTypeKey: '', |
|
|
|
|
|
projectType: '', |
|
|
|
|
|
projectTypeKey: '', |
|
|
|
|
|
funNode: '', |
|
|
|
|
|
remarks: '' |
|
|
|
|
|
}, // 添加和修改 |
|
|
rules: { |
|
|
rules: { |
|
|
contractType: [ |
|
|
contractType: [{ required: true, message: '请选着合同类型', trigger: 'change' }], |
|
|
{ required: true, message: '请选着合同类型', trigger: 'change' }, |
|
|
|
|
|
], |
|
|
|
|
|
// templateUrl: [{ required: true, message: '请填写', trigger: 'blur' }], |
|
|
|
|
|
// fileName: [{ required: true, message: '请填写联系电话', trigger: 'blur' }], |
|
|
|
|
|
ver: [{ required: true, message: '请填写版本号', trigger: 'blur' }], |
|
|
ver: [{ required: true, message: '请填写版本号', trigger: 'blur' }], |
|
|
funNode: [ |
|
|
funNode: [{ required: true, message: '请填写功能节点', trigger: 'blur' }] |
|
|
{ required: true, message: '请填写功能节点', trigger: 'blur' }, |
|
|
} |
|
|
], |
|
|
|
|
|
}, |
|
|
|
|
|
// ------------------------------------ |
|
|
|
|
|
} |
|
|
} |
|
|
}, |
|
|
|
|
|
computed: {}, |
|
|
|
|
|
created() { |
|
|
|
|
|
// 初始化变量 |
|
|
|
|
|
this.getType() |
|
|
|
|
|
this.getPeopleType() |
|
|
|
|
|
this.getProjectTypes() |
|
|
|
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
openUpdate(sid, showed) { |
|
|
DictType() { |
|
|
this.deleteTubiaoStyle = false |
|
|
dictType({ type: 'contractType' }).then((response) => { |
|
|
this.nameStyle = true |
|
|
if (response.code === '200' && response.data) { |
|
|
this.stateId = sid |
|
|
this.typeList = response.data |
|
|
if (this.stateId !== '0') { |
|
|
|
|
|
getOneTemplate(this.stateId).then((response) => { |
|
|
|
|
|
if (response.code === '200') { |
|
|
|
|
|
this.$refs['dataForm'].clearValidate() |
|
|
|
|
|
this.temp = response.data |
|
|
|
|
|
if (response.data.templateUrl.indexOf(',') >= 0) { |
|
|
|
|
|
const da = response.data.templateUrl.split(',') |
|
|
|
|
|
for (var i = 0; i < da.length; i++) { |
|
|
|
|
|
// const imgName = da[i].split('/') |
|
|
|
|
|
this.list2.push({ |
|
|
|
|
|
name: response.data.fileName, |
|
|
|
|
|
url: da[i] |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
const imgList = this.list2 |
|
|
|
|
|
this.$refs['uploadImg'].showImg(imgList) |
|
|
|
|
|
console.log('123456', this.list2) |
|
|
|
|
|
} |
|
|
} |
|
|
// const imgName = response.data.appdixUrl.split('/') |
|
|
|
|
|
this.list2.push({ |
|
|
|
|
|
name:response.data.fileName, |
|
|
|
|
|
url:response.data.templateUrl |
|
|
|
|
|
}) |
|
|
}) |
|
|
const imgList = this.list2 |
|
|
dictType({ type: 'personnelType' }).then((response) => { |
|
|
this.$refs['uploadImg'].showImg(imgList) |
|
|
if (response.code === '200' && response.data) { |
|
|
if (response.data.templateUrl) { |
|
|
this.personnelTypeList = response.data |
|
|
this.deleteTubiaoStyle = true |
|
|
|
|
|
} |
|
|
|
|
|
this.visible = true |
|
|
|
|
|
if (showed && typeof showed === 'function') { |
|
|
|
|
|
showed() |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
|
|
|
dictType({ type: 'projectType ' }).then((response) => { |
|
|
|
|
|
if (response.code === '200' && response.data) { |
|
|
|
|
|
this.projectTypeList = response.data |
|
|
} |
|
|
} |
|
|
|
|
|
}) |
|
|
}, |
|
|
}, |
|
|
openCreate(showed) { |
|
|
showAdd() { |
|
|
this.$refs['dataForm'].resetFields() |
|
|
this.$refs['dataForm'].resetFields() |
|
|
this.resetTemp() |
|
|
this.DictType() |
|
|
this.deleteTubiaoStyle = false |
|
|
|
|
|
this.nameStyle = false |
|
|
|
|
|
this.stateId = '0' |
|
|
|
|
|
this.visible = true |
|
|
|
|
|
if (showed && typeof showed === 'function') { |
|
|
|
|
|
showed() |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
}, |
|
|
// ----------------------------------方法-------------------- |
|
|
showEdit(row) { |
|
|
deleteJpg(val) { |
|
|
console.log(row) |
|
|
deleteFilesOss(val).then((re) => { |
|
|
this.DictType() |
|
|
if (re.code === '200') { |
|
|
getOneTemplate(row).then((res) => { |
|
|
this.$notify({ |
|
|
if (res.code === '200') { |
|
|
title: '提示', |
|
|
this.formobj = res.data |
|
|
message: '删除成功', |
|
|
this.$refs['fileUpload'].show(this.formobj.fileName) |
|
|
type: 'success', |
|
|
|
|
|
duration: 2000, |
|
|
|
|
|
}) |
|
|
|
|
|
this.temp.fileName = '' |
|
|
|
|
|
this.temp.templateUrl = '' |
|
|
|
|
|
this.deleteTubiaoStyle = false |
|
|
|
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
// 返回 |
|
|
|
|
|
handleReturn() { |
|
|
|
|
|
this.visible = false |
|
|
|
|
|
this.$emit('handleReturn') |
|
|
|
|
|
}, |
|
|
|
|
|
// 添加前数据初始化 |
|
|
|
|
|
resetTemp() { |
|
|
|
|
|
this.temp = {} |
|
|
|
|
|
}, |
|
|
|
|
|
projectTypeChange(val) { |
|
|
projectTypeChange(val) { |
|
|
const choosetItem = this.projectTypeList.filter( |
|
|
const choosetItem = this.projectTypeList.filter( |
|
|
(item) => item.dictValue == val |
|
|
(item) => item.dictValue === val |
|
|
) |
|
|
) |
|
|
this.temp.projectTypeKey = choosetItem[0].dictKey |
|
|
this.formobj.projectTypeKey = choosetItem[0].dictKey |
|
|
}, |
|
|
}, |
|
|
typeChange(val) { |
|
|
typeChange(val) { |
|
|
const choosetItem = this.typeList.filter((item) => item.dictValue == val) |
|
|
const choosetItem = this.typeList.filter((item) => item.dictValue === val) |
|
|
this.temp.contractTypeKey = choosetItem[0].dictKey |
|
|
this.formobj.contractTypeKey = choosetItem[0].dictKey |
|
|
}, |
|
|
}, |
|
|
// 人员类型变化 |
|
|
// 人员类型变化 |
|
|
objectTypeChange(val) { |
|
|
objectTypeChange(val) { |
|
|
const choosetItem = this.personnelTypeList.filter( |
|
|
const choosetItem = this.personnelTypeList.filter( |
|
|
(item) => item.dictValue == val |
|
|
(item) => item.dictValue === val |
|
|
) |
|
|
) |
|
|
this.temp.objectTypeKey = choosetItem[0].dictKey |
|
|
this.formobj.objectTypeKey = choosetItem[0].dictKey |
|
|
}, |
|
|
}, |
|
|
// 合同类型 |
|
|
fileAdd(item) { |
|
|
getType() { |
|
|
this.list1 = item |
|
|
dictType({ type: 'contractType' }).then((response) => { |
|
|
console.log(this.list1) |
|
|
if (response.code === '200' && response.data) { |
|
|
for (var i = 0; i < this.list1.length; i++) { |
|
|
this.typeList = response.data |
|
|
var namese = this.list1[i].name |
|
|
|
|
|
var nameArr = namese.split('.') |
|
|
|
|
|
this.formobj.templateUrl = this.list1[i].url |
|
|
|
|
|
this.formobj.fileType = nameArr[nameArr.length - 1] |
|
|
|
|
|
this.formobj.fileName = this.list1[i].name |
|
|
} |
|
|
} |
|
|
}) |
|
|
|
|
|
}, |
|
|
}, |
|
|
// 获取人员类型 |
|
|
fileDelete(item) { |
|
|
getPeopleType() { |
|
|
this.formobj.templateUrl = '' |
|
|
dictType({ type: 'personnelType' }).then((response) => { |
|
|
this.formobj.fileName = '' |
|
|
if (response.code === '200' && response.data) { |
|
|
this.formobj.fileType = '' |
|
|
this.personnelTypeList = response.data |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
// 获取项目类型 |
|
|
|
|
|
getProjectTypes() { |
|
|
|
|
|
dictType({ type: 'projectType ' }).then((response) => { |
|
|
|
|
|
if (response.code === '200' && response.data) { |
|
|
|
|
|
this.projectTypeList = response.data |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
}, |
|
|
// 添加数据 |
|
|
// 添加数据 |
|
|
handleCreate() { |
|
|
handleCreate() { |
|
|
this.$refs['dataForm'].validate((valid) => { |
|
|
this.$refs['dataForm'].validate((valid) => { |
|
|
if (valid) { |
|
|
if (valid) { |
|
|
for (var i = 0; i < this.list1.length; i++) { |
|
|
if (this.formobj.sid === '') { |
|
|
var namese = this.list1[i].name |
|
|
saveTemplate(this.formobj).then((response) => { |
|
|
var nameArr = namese.split('.') |
|
|
|
|
|
this.temp.templateUrl = this.list1[i].url |
|
|
|
|
|
this.temp.fileType = nameArr[nameArr.length - 1] |
|
|
|
|
|
this.temp.fileName = this.list1[i].name |
|
|
|
|
|
} |
|
|
|
|
|
if (this.stateId === '0') { |
|
|
|
|
|
saveTemplate(this.temp).then((response) => { |
|
|
|
|
|
if (response.code === '200') { |
|
|
if (response.code === '200') { |
|
|
this.$notify({ |
|
|
this.$notify({ |
|
|
title: '提示', |
|
|
title: '提示', |
|
|
message: '添加成功', |
|
|
message: '添加成功', |
|
|
type: 'success', |
|
|
type: 'success', |
|
|
duration: 2000, |
|
|
duration: 2000 |
|
|
}) |
|
|
}) |
|
|
this.visible = false |
|
|
this.handleReturn() |
|
|
this.$emit('created') |
|
|
|
|
|
} else { |
|
|
} else { |
|
|
this.$notify({ |
|
|
this.$notify({ |
|
|
title: '提示', |
|
|
title: '提示', |
|
|
message: '添加失败', |
|
|
message: '添加失败', |
|
|
type: 'error', |
|
|
type: 'error', |
|
|
duration: 2000, |
|
|
duration: 2000 |
|
|
}) |
|
|
}) |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
} else { |
|
|
} else { |
|
|
updateTemplate(this.temp).then((response) => { |
|
|
updateTemplate(this.formobj).then((response) => { |
|
|
if (response.code === '200') { |
|
|
if (response.code === '200') { |
|
|
this.$notify({ |
|
|
this.$notify({ |
|
|
title: '提示', |
|
|
title: '提示', |
|
|
message: '修改成功', |
|
|
message: '修改成功', |
|
|
type: 'success', |
|
|
type: 'success', |
|
|
duration: 2000, |
|
|
duration: 2000 |
|
|
}) |
|
|
}) |
|
|
this.visible = false |
|
|
this.handleReturn() |
|
|
this.$emit('updated') |
|
|
|
|
|
} else { |
|
|
} else { |
|
|
this.$notify({ |
|
|
this.$notify({ |
|
|
title: '失败', |
|
|
title: '失败', |
|
|
message: '修改失败', |
|
|
message: '修改失败', |
|
|
type: 'error', |
|
|
type: 'error' |
|
|
}) |
|
|
}) |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
@ -310,7 +235,11 @@ export default { |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
// 返回 |
|
|
|
|
|
handleReturn() { |
|
|
|
|
|
this.$emit('doback') |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
</script> |
|
|
</script> |
|
|
<style scoped> |
|
|
<style scoped> |
|
@ -318,6 +247,6 @@ export default { |
|
|
width: 80%; |
|
|
width: 80%; |
|
|
} |
|
|
} |
|
|
.addinputw { |
|
|
.addinputw { |
|
|
width: 60% !important; |
|
|
width: 20% !important; |
|
|
} |
|
|
} |
|
|
</style> |
|
|
</style> |
|
|