Browse Source

完善合同模板、合同档案

zhanglei
yunuo970428 2 years ago
parent
commit
dfb70b4dfa
  1. 243
      anrui-buscenter/anrui-buscenter-ui/src/router/index.js
  2. 181
      anrui-buscenter/anrui-buscenter-ui/src/views/hetongguanli/hetongmobanguanli/hetongmobanguanli.vue
  3. 102
      anrui-buscenter/anrui-buscenter-ui/src/views/hetongguanli/hetongmobanguanli/hetongmobanguanliAdd.vue
  4. 37
      anrui-buscenter/anrui-buscenter-ui/src/views/hetongguanli/hetongmobanguanli/hetongmobanguanliInfo.vue
  5. 76
      anrui-buscenter/anrui-buscenter-ui/src/views/hetongguanli/hetongshenheguanli/hetongshenheguanli.vue

243
anrui-buscenter/anrui-buscenter-ui/src/router/index.js

@ -28,22 +28,22 @@ export const constantRoutes = [
component: () => import('@/views/Home/Home.vue'),
name: 'home'
}, {
path: '/index',
component: Layout,
redirect: '/index',
children: [{
}, {
path: '/index',
component: () =>
import('@/views/index.vue'),
name: 'index',
meta: {
title: '主页',
noCache: true,
affix: true
}
}]
},
component: Layout,
redirect: '/index',
children: [{
path: '/index',
component: () =>
import('@/views/index.vue'),
name: 'index',
meta: {
title: '主页',
noCache: true,
affix: true
}
}]
},
...codemenu,
{
path: '/404',
@ -122,91 +122,7 @@ export const constantRoutes = [
import('@/views/kehuguanli/kehudangan/kehudangan.vue'),
name: 'kehudangan',
meta: { title: '客户档案', noCache: true }
},
// {
// path: '/kehuguanli/kehudanganAdd',
// component: () =>
// import('@/views/kehuguanli/kehudangan/kehudanganAdd.vue'),
// name: 'kehudanganAdd',
// meta: {
// title: '客户档案'
// }
// },
// {
// path: '/kehuguanli/kehudanganinfo',
// component: () =>
// import('@/views/kehuguanli/kehudangan/kehudanganinfo.vue'),
// name: 'kehudanganinfo',
// meta: {
// title: '客户档案查看'
// }
// },
// {
// path: '/kehuguanli/cheliangxuqiuAdd',
// component: () =>
// import('@/views/kehuguanli/cheliangxuqiu/cheliangxuqiuAdd.vue'),
// name: 'cheliangxuqiuAdd1',
// meta: {
// title: '车辆需求'
// }
// },
// 客户跟踪
// {
// path: '/kehuguanli/kehugenzong',
// component: () =>
// import('@/views/kehuguanli/kehufuwu/kehugenzong/kehugenzong.vue'),
// name: 'kehugenzong',
// meta: {
// title: '客户跟踪'
// }
// },
// {
// path: '/kehuguanli/kehugenzongAdd',
// component: () =>
// import('@/views/kehuguanli/kehufuwu/kehugenzong/kehugenzongAdd.vue'),
// name: 'kehugenzongAdd',
// meta: {
// title: '客户跟踪'
// }
// },
// {
// path: '/kehuguanli/kehugenzongInfo',
// component: () =>
// import('@/views/kehuguanli/kehufuwu/kehugenzong/kehugenzongInfo.vue'),
// name: 'kehugenzongInfo',
// meta: {
// title: '客户跟踪'
// }
// },
// 跟进记录
// {
// path: '/kehuguanli/genjinjiluguanli',
// component: () =>
// import('@/views/kehuguanli/kehugenjinjilu/genjinjiluguanli.vue'),
// name: 'genjinjiluguanli',
// meta: {
// title: '跟进记录'
// }
// },
// {
// path: '/kehuguanli/genjinjiliAdd',
// component: () =>
// import('@/views/kehuguanli/kehugenjinjilu/genjinjiliAdd.vue'),
// name: 'genjinjiliAdd',
// hidden: true,
// meta: {
// title: '跟进记录添加'
// }
// },
// {
// path: '/kehuguanli/genjinjiluinfo',
// component: () =>
// import('@/views/kehuguanli/kehugenjinjilu/genjinjiluinfo.vue'),
// name: 'genjinjiluinfo',
// meta: {
// title: '跟进记录详情'
// }
// }
}
]
},
// 客户查询
@ -263,24 +179,6 @@ export const constantRoutes = [
title: '简易订单'
}
},
{
path: '/xiaoshouguanli/xunidingdanAdd',
component: () =>
import('@/views/xiaoshouguanli/xunidingdan/xunidingdanAdd.vue'),
name: 'xunidingdanAdd',
meta: {
title: '虚拟订车单添加'
}
},
{
path: '/xiaoshouguanli/xunidingdaninfo',
component: () =>
import('@/views/xiaoshouguanli/xunidingdan/xunidingdaninfo.vue'),
name: 'xunidingdaninfo',
meta: {
title: '虚拟订车单详情'
}
},
// 销售订单管理
{
path: '/xiaoshouguanli/dingdanxinxi',
@ -338,24 +236,6 @@ export const constantRoutes = [
title: '客户登记单'
}
},
{
path: '/xiaoshouguanli/kehudengjidanAdd',
component: () =>
import('@/views/xiaoshouguanli/kehudengjidan/kehudengjidanAdd.vue'),
name: 'kehudengjidanAdd',
meta: {
title: '客户登记单添加'
}
},
{
path: '/xiaoshouguanli/kehudengjidanInfo',
component: () =>
import('@/views/xiaoshouguanli/kehudengjidan/kehudengjidaninfo.vue'),
name: 'kehudengjidaninfo',
meta: {
title: '客户登记单详情'
}
},
// 客户登记单下的车辆需求
{
path: '/xiaoshouguanli/cheliangxuqiu',
@ -365,28 +245,10 @@ export const constantRoutes = [
meta: {
title: '车辆需求'
}
},
{
path: '/xiaoshouguanli/cheliangxuqiuAdd',
component: () =>
import('@/views/xiaoshouguanli/cheliangxuqiu/cheliangxuqiuAdd.vue'),
name: 'cheliangxuqiuAdd',
meta: {
title: '车辆需求添加'
}
},
{
path: '/xiaoshouguanli/cheliangxuqiuInfo',
component: () =>
import('@/views/xiaoshouguanli/cheliangxuqiu/cheliangxuqiuinfo.vue'),
name: 'cheliangxuqiuinfo',
meta: {
title: '车辆需求详情'
}
}
]
},
// 合同管理
// 合同管理
{
path: '/hetongguanli',
component: Layout,
@ -399,65 +261,23 @@ export const constantRoutes = [
path: '/hetongguanli/hetongdanganguanli',
component: () =>
import('@/views/hetongguanli/hetongdanganguanli/hetongdanganguanli.vue'),
name: 'hetongdanganguanli',
meta: {
title: '合同审核管理'
}
},
{
path: '/hetongguanli/hetongdanganguanliAdd',
component: () =>
import('@/views/hetongguanli/hetongdanganguanli/hetongdanganguanliAdd.vue'),
name: 'hetongdanganguanliAdd',
meta: {
title: '合同档案管理添加'
}
},
{
path: '/hetongguanli/hetongdanganguanliInfo',
component: () =>
import('@/views/hetongguanli/hetongdanganguanli/hetongdanganguanliInfo.vue'),
name: 'hetongdanganguanliInfo',
meta: {
title: '合同档案管理详情'
}
name: 'HeTongDangAnGuanLi',
meta: { title: '合同审核管理', noCache: true }
},
{
path: '/hetongguanli/hetongshenheguanli',
component: () =>
import('@/views/hetongguanli/hetongshenheguanli/hetongshenheguanli.vue'),
name: 'HeTongDangAnGuanLi',
meta: {
title: '合同档案管理'
}
name: 'HeTongShenHeGuanLi',
meta: { title: '合同档案管理', noCache: true }
},
// 模板
{
path: '/hetongguanli/hetongmobanguanli',
component: () =>
import('@/views/hetongguanli/hetongmobanguanli/hetongmobanguanli.vue'),
name: 'hetongmobanguanli',
meta: {
title: '合同模板管理'
}
},
{
path: '/hetongguanli/hetongmobanguanliAdd',
component: () =>
import('@/views/hetongguanli/hetongmobanguanli/hetongmobanguanliAdd.vue'),
name: 'hetongmobanguanliAdd',
meta: {
title: '合同模板管理添加'
}
},
{
path: '/hetongguanli/hetongmobanguanliInfo',
component: () =>
import('@/views/hetongguanli/hetongmobanguanli/hetongmobanguanliInfo.vue'),
name: 'hetongmobanguanliInfo',
meta: {
title: '合同模板管理详情'
}
name: 'HeTongMoBanGuanLi',
meta: { title: '合同模板管理', noCache: true }
}
]
},
@ -598,19 +418,26 @@ export const constantRoutes = [
},
// 合同管理
// 合同档案详情
// 合同档案待办详情
{
path: '/hetongguanliFlow/hetongdanganguanli/hetongdangan',
path: '/hetongguanliFlow/hetongdanganguanli/hetongdanganDaiBanInfo',
component: () =>
import('@/views/workflow/hetongguanliFlow/hetongdanganguanli/hetongdangan.vue'),
name: 'hetongdangan'
import('@/views/workflow/hetongguanliFlow/hetongdanganguanli/hetongdanganDaiBanInfo.vue'),
name: 'HeTongDangAnDaiiBanInfo'
},
// 合同档案编辑
{
path: '/hetongguanliFlow/hetongdanganguanli/hetongdanganEdit',
component: () =>
import('@/views/workflow/hetongguanliFlow/hetongdanganguanli/hetongdanganEdit.vue'),
name: 'hetongdanganEdit'
name: 'HeTongDangAnEdit'
},
// 合同档案已办详情
{
path: '/hetongguanliFlow/hetongdanganguanli/hetongdanganYiBanInfo',
component: () =>
import('@/views/workflow/hetongguanliFlow/hetongdanganguanli/hetongdanganYiBanInfo.vue'),
name: 'HeTongDangAnYiBanInfo'
},
// 盖章管理

181
anrui-buscenter/anrui-buscenter-ui/src/views/hetongguanli/hetongmobanguanli/hetongmobanguanli.vue

@ -1,47 +1,38 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>合同模板管理</div>
<div>
<el-button type="primary" size="small" @click="handleCreate()">新增</el-button>
<el-button type="primary" size="small" @click="handleUpdate()">编辑</el-button>
<el-button type="danger" size="small" @click="handleDelete()">删除</el-button>
<!-- <el-button type="success" size="small" @click="handleDaoRu()">导入</el-button>-->
<!-- <el-button type="success" size="small" @click="handleDaoChu()">导出</el-button>-->
</div>
</div>
<div class="webcon">
<button-bar view-title="合同模板管理" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-form-item label="合同类型" class="searchlist">
<el-select v-model="listQuery.params.contractTypeKey" placeholder="请选择" class="filter-item">
<el-form-item label="合同类型">
<el-select v-model="listQuery.params.contractTypeKey" placeholder="请选择">
<el-option v-for="item in typeList" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
<el-form-item label="人员类型" class="searchlist">
<el-select v-model="listQuery.params.objectTypeKey" placeholder="请选择" class="filter-item">
<el-form-item label="人员类型">
<el-select v-model="listQuery.params.objectTypeKey" placeholder="请选择">
<el-option v-for="items in personnelTypeList" :key="items.dictKey" :label="items.dictValue" :value="items.dictKey"/>
</el-select>
</el-form-item>
<el-form-item label="项目类型" class="searchlist">
<el-select v-model="listQuery.params.projectTypeKey" placeholder="请选择" class="filter-item">
<el-form-item label="项目类型">
<el-select v-model="listQuery.params.projectTypeKey" placeholder="请选择">
<el-option v-for="ite in projectTypeList" :key="ite.dictKey" :label="ite.dictValue" :value="ite.dictKey"/>
</el-select>
</el-form-item>
<el-form-item label="文件名称" class="searchlist">
<el-input v-model="listQuery.params.fileName" placeholder="" clearable class="filter-item"/>
<el-form-item label="文件名称">
<el-input v-model="listQuery.params.fileName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="版本" class="searchlist">
<el-input v-model="listQuery.params.ver" placeholder="" clearable class="filter-item"/>
<el-form-item label="版本">
<el-input v-model="listQuery.params.ver" placeholder="" clearable/>
</el-form-item>
<div class="searchbtns">
<el-button type="primary" @click="handleFilter">查询</el-button>
<el-button type="primary" @click="handleReset">重置</el-button>
</div>
</el-form>
<div class="btn" style="text-align: center;">
<el-button size="small" icon="el-icon-search" type="primary" @click="handleFilter">查询</el-button>
<el-button size="small" icon="el-icon-refresh" type="primary" @click="handleReset">重置</el-button>
</div>
</div>
</div>
<div class="listtop">
@ -50,8 +41,13 @@
</div>
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column width="50px" type="selection" align="center"/>
<el-table-column width="80px" label="编号" type="index" :index="indexMethod" align="center"/>
<el-table-column width="50" type="selection" align="center"/>
<el-table-column width="60" label="编号" type="index" :index="indexMethod" align="center"/>
<el-table-column width="80" label="操作" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toEdit(scope.row)">编辑</el-button>
</template>
</el-table-column>
<el-table-column label="合同类型" align="center">
<template slot-scope="scope">
<span class="bluezi" @click="lookDetails(scope.row)">{{ scope.row.contractType }}</span>
@ -62,12 +58,12 @@
<span>{{ scope.row.fileName }}</span>
</template>
</el-table-column>
<el-table-column label="文件类型" align="center">
<el-table-column label="文件类型" align="center" width="110">
<template slot-scope="scope">
<span>{{ scope.row.fileType }}</span>
</template>
</el-table-column>
<el-table-column label="人员类型" align="center">
<el-table-column label="人员类型" align="center" width="110">
<template slot-scope="scope">
<span>{{ scope.row.objectType }}</span>
</template>
@ -77,12 +73,12 @@
<span>{{ scope.row.projectType }}</span>
</template>
</el-table-column>
<el-table-column label="版本" align="center">
<el-table-column label="版本" align="center" width="60">
<template slot-scope="scope">
<span>{{ scope.row.ver }}</span>
</template>
</el-table-column>
<el-table-column label="更新时间" align="center">
<el-table-column label="更新时间" align="center" width="110">
<template slot-scope="scope">
<span>{{ scope.row.modifyTime }}</span>
</template>
@ -101,33 +97,55 @@
</div>
</div>
</div>
<hetongmobanguanli-add v-show="viewState == 2 || viewState == 3" ref="divAdd" @doback="restState"/>
<hetongmobanguanli-add v-show="viewState == 2 || viewState == 3" ref="divAdd" @doback="restState" @reloadlist="getList"/>
<hetongmobanguanli-info v-show="viewState == 4" ref="divInfo" @doback="restState"/>
</div>
</template>
<script>
import {
getTemplatePageList,
deleteTemplateByids,
basefinbankTemplateExportExcel
} from '@/api/jichuxinxi/contract'
import { dictType } from '@/api/salesManagement/orderManagement'
import { getTemplatePageList, deleteTemplateByids, basefinbankTemplateExportExcel } from '@/api/jichuxinxi/contract'
import { typeValues } from '@/api/dictcommons/dictcommons'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import hetongmobanguanliAdd from './hetongmobanguanliAdd.vue'
import hetongmobanguanliInfo from './hetongmobanguanliInfo.vue'
export default {
name: 'Hetongdanganguanli',
name: 'HeTongMoBanGuanLi',
components: {
Pagination,
pageye,
ButtonBar,
hetongmobanguanliAdd,
hetongmobanguanliInfo
},
data() {
return {
btndisabled: false,
btnList: [
{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'danger',
size: 'small',
icon: 'del',
btnKey: 'doDel',
btnLabel: '删除'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
projectTypeList: [],
typeList: [],
personnelTypeList: [],
@ -141,7 +159,7 @@ export default {
listLoading: false,
listQuery: {
current: 1,
size: 20,
size: 10,
params: {
contractType: '',
objectType: '',
@ -153,6 +171,9 @@ export default {
}
}
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
created() {
//
this.getList()
@ -160,24 +181,40 @@ export default {
},
methods: {
DictType() {
dictType({ type: 'contractType' }).then((response) => {
if (response.code === '200' && response.data) {
typeValues({ type: 'contractType' }).then((response) => {
if (response.success) {
this.typeList = response.data
}
})
//
dictType({ type: 'personnelType' }).then((response) => {
if (response.code === '200' && response.data) {
typeValues({ type: 'personnelType' }).then((response) => {
if (response.success) {
this.personnelTypeList = response.data
}
})
//
dictType({ type: 'projectType' }).then((response) => {
if (response.code === '200' && response.data) {
typeValues({ type: 'projectType' }).then((response) => {
if (response.success) {
this.projectTypeList = response.data
}
})
},
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'toAdd':
this.toAdd()
break
case 'doDel':
this.doDel()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
@ -212,12 +249,11 @@ export default {
this.listQuery.current = 1
this.getList()
},
//
handleReset() {
this.listQuery = {
current: 1,
size: 20,
size: 10,
params: {
contractType: '',
objectType: '',
@ -237,57 +273,29 @@ export default {
this.sids = aa
},
//
handleCreate() {
toAdd() {
this.viewState = 2
this.$refs['divAdd'].showAdd()
},
//
handleUpdate() {
if (this.sids.length === 1) {
this.viewState = 3
this.$refs['divAdd'].showEdit(this.sids)
} else if (this.sids.length > 1) {
this.$notify({
title: '提示',
message: '不能选中多个修改!',
type: 'info',
duration: 2000
})
} else {
this.$notify({
title: '提示',
message: '没有选择!',
type: 'error',
duration: 2000
})
return
}
toEdit(row) {
this.viewState = 3
this.$refs['divAdd'].showEdit(row.sid)
},
//
lookDetails(row) {
this.viewState = 4
this.$refs['divInfo'].showInfo(row)
},
// ID
handleDelete() {
doDel() {
if (this.sids.length === 0) {
this.$notify({
title: '提示',
message: '没有选择!!',
type: 'warning',
duration: 2000
})
this.$message({ showClose: true, type: 'error', message: '请至少选择一条记录进行删除操作' })
return
}
deleteTemplateByids(this.sids).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '删除成功',
type: 'success',
duration: 2000
})
if (response.success) {
this.$message({ showClose: true, type: 'success', message: '删除成功' })
this.getList()
} else {
this.$notify({
@ -300,7 +308,6 @@ export default {
},
restState() {
this.viewState = 1
this.handleReset()
},
//
handleDaoChu() {
@ -321,6 +328,10 @@ export default {
duration: 2000
})
})
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}

102
anrui-buscenter/anrui-buscenter-ui/src/views/hetongguanli/hetongmobanguanli/hetongmobanguanliAdd.vue

@ -1,15 +1,15 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<div>合同模板</div>
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" @click="handleCreate()">保存</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<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-form ref="dataForm" :model="formobj" label-position="right" label-width="190px" class="formadd" :rules="rules">
<el-row class="bordertopline">
<el-col :span="24">
<el-form-item prop="contractType">
@ -32,7 +32,7 @@
<el-col :span="24">
<el-form-item prop="fileName">
<span slot="label">文件名称</span>
<el-input v-model="formobj.fileName" maxlength="125" placeholder="" class="addinputw" readonly/>
<el-input v-model="formobj.fileName" placeholder="" class="addinputw" readonly/>
</el-form-item>
</el-col>
</el-row>
@ -40,7 +40,7 @@
<el-col :span="24">
<el-form-item prop="ver">
<span slot="label">版本号</span>
<el-input v-model="formobj.ver" maxlength="125" placeholder="" class="addinputw" clearable/>
<el-input v-model="formobj.ver" placeholder="" class="addinputw" clearable/>
</el-form-item>
</el-col>
</el-row>
@ -68,7 +68,7 @@
<el-col :span="24">
<el-form-item prop="funNode">
<span slot="label">功能节点</span>
<el-input v-model="formobj.funNode" maxlength="125" placeholder="" class="addinputw" clearable/>
<el-input v-model="formobj.funNode" placeholder="" class="addinputw" clearable/>
</el-form-item>
</el-col>
</el-row>
@ -76,7 +76,7 @@
<el-col :span="24">
<el-form-item>
<span slot="label">备注</span>
<el-input v-model="formobj.remarks" maxlength="125" placeholder="" clearable type="textarea" :rows="3"/>
<el-input v-model="formobj.remarks" placeholder="" clearable type="textarea" :rows="3"/>
</el-form-item>
</el-col>
</el-row>
@ -86,23 +86,19 @@
</template>
<script>
import {
saveTemplate,
updateTemplate,
getOneTemplate,
} from '@/api/jichuxinxi/contract'
import { dictType } from '@/api/salesManagement/orderManagement'
import { saveTemplate, updateTemplate, getOneTemplate } from '@/api/jichuxinxi/contract'
import { typeValues } from '@/api/dictcommons/dictcommons'
import Upload from '@/components/uploadFile/HeTongMoBanUpload.vue' //
export default {
name: 'HetongdanganguanliAdd',
components: { Upload },
data() {
return {
viewTitle: '',
list1: [],
projectTypeList: [],
typeList: [],
personnelTypeList: [],
stateId: 0,
formobj: {
sid: '',
contractType: '',
@ -117,7 +113,7 @@ export default {
projectTypeKey: '',
funNode: '',
remarks: ''
}, //
},
rules: {
contractType: [{ required: true, message: '请选着合同类型', trigger: 'change' }],
ver: [{ required: true, message: '请填写版本号', trigger: 'blur' }],
@ -127,40 +123,44 @@ export default {
},
methods: {
DictType() {
dictType({ type: 'contractType' }).then((response) => {
if (response.code === '200' && response.data) {
typeValues({ type: 'contractType' }).then((response) => {
if (response.success) {
this.typeList = response.data
}
})
dictType({ type: 'personnelType' }).then((response) => {
if (response.code === '200' && response.data) {
typeValues({ type: 'personnelType' }).then((response) => {
if (response.success) {
this.personnelTypeList = response.data
}
})
dictType({ type: 'projectType ' }).then((response) => {
if (response.code === '200' && response.data) {
typeValues({ type: 'projectType ' }).then((response) => {
if (response.success) {
this.projectTypeList = response.data
}
})
},
showAdd() {
this.$refs['dataForm'].resetFields()
this.DictType()
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
this.viewTitle = '【新增】合同模板'
},
showEdit(row) {
console.log(row)
this.DictType()
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
this.viewTitle = '【编辑】合同模板'
getOneTemplate(row).then((res) => {
if (res.code === '200') {
if (res.success) {
this.formobj = res.data
this.$refs['fileUpload'].show(this.formobj.fileName)
}
})
},
projectTypeChange(val) {
const choosetItem = this.projectTypeList.filter(
(item) => item.dictValue === val
)
const choosetItem = this.projectTypeList.filter((item) => item.dictValue === val)
this.formobj.projectTypeKey = choosetItem[0].dictKey
},
typeChange(val) {
@ -169,9 +169,7 @@ export default {
},
//
objectTypeChange(val) {
const choosetItem = this.personnelTypeList.filter(
(item) => item.dictValue === val
)
const choosetItem = this.personnelTypeList.filter((item) => item.dictValue === val)
this.formobj.objectTypeKey = choosetItem[0].dictKey
},
fileAdd(item) {
@ -196,39 +194,26 @@ export default {
if (valid) {
if (this.formobj.sid === '') {
saveTemplate(this.formobj).then((response) => {
if (response.code === '200') {
if (response.success) {
this.$notify({
title: '提示',
message: '添加成功',
type: 'success',
duration: 2000
})
this.handleReturn()
} else {
this.$notify({
title: '提示',
message: '添加失败',
type: 'error',
duration: 2000
})
this.handleReturn('true')
}
})
} else {
updateTemplate(this.formobj).then((response) => {
if (response.code === '200') {
if (response.success) {
this.$notify({
title: '提示',
message: '修改成功',
type: 'success',
duration: 2000
})
this.handleReturn()
} else {
this.$notify({
title: '失败',
message: '修改失败',
type: 'error'
})
this.handleReturn('true')
}
})
}
@ -236,16 +221,31 @@ export default {
})
},
//
handleReturn() {
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
sid: '',
contractType: '',
contractTypeKey: '',
templateUrl: '',
fileName: '',
fileType: '',
ver: '',
objectType: '',
objectTypeKey: '',
projectType: '',
projectTypeKey: '',
funNode: '',
remarks: ''
}
this.list1 = []
this.$refs['dataForm'].resetFields()
this.$emit('doback')
}
}
}
</script>
<style scoped>
.widthxiao {
width: 80%;
}
.addinputw {
width: 20% !important;
}

37
anrui-buscenter/anrui-buscenter-ui/src/views/hetongguanli/hetongmobanguanli/hetongmobanguanliInfo.vue

@ -1,5 +1,5 @@
<template>
<div v-show="visible" class="app-container">
<div class="app-container">
<div class="tab-header webtop">
<div>合同模板详情</div>
<div>
@ -7,29 +7,21 @@
</div>
</div>
<div class="listconadd">
<el-form ref="dataForm" :model="formobj" label-position="right" label-width="190px" class="formadd widthxiao">
<div class="titwu">合同模板</div>
<div class="titwu">合同模板</div>
<el-form ref="dataForm" :model="formobj" label-position="right" label-width="190px" class="formadd">
<el-row class="bordertopline">
<el-col :span="24">
<el-form-item prop="name">
<span slot="label">合同类型</span>
<el-input v-model="formobj.contractType" maxlength="125" placeholder="" class="addinputw" readonly/>
<span>{{ formobj.contractType }}</span>
</el-form-item>
</el-col>
</el-row>
<!-- <el-row>
<el-col :span="24">
<el-form-item prop="name">
<span slot="label">选择模板文件</span>
<el-input v-model="temp.templateUrl" maxlength="125" placeholder="" class="addinputw" />
</el-form-item>
</el-col>
</el-row> -->
<el-row>
<el-col :span="24">
<el-form-item prop="name">
<span slot="label">文件名称</span>
<el-input v-model="formobj.fileName" maxlength="125" placeholder="" class="addinputw" readonly/>
<span>{{ formobj.fileName }}</span>
</el-form-item>
</el-col>
</el-row>
@ -37,7 +29,7 @@
<el-col :span="24">
<el-form-item prop="name">
<span slot="label">版本号</span>
<el-input v-model="formobj.ver" maxlength="125" placeholder="" class="addinputw" readonly/>
<span>{{ formobj.ver }}</span>
</el-form-item>
</el-col>
</el-row>
@ -45,7 +37,7 @@
<el-col :span="24">
<el-form-item>
<span slot="label">人员类型</span>
<el-input v-model="formobj.objectType" maxlength="125" placeholder="" class="addinputw" readonly/>
<span>{{ formobj.objectType }}</span>
</el-form-item>
</el-col>
</el-row>
@ -53,7 +45,7 @@
<el-col :span="24">
<el-form-item>
<span slot="label">项目类型</span>
<el-input v-model="formobj.projectType" maxlength="125" placeholder="" class="addinputw" readonly/>
<span>{{ formobj.projectType }}</span>
</el-form-item>
</el-col>
</el-row>
@ -61,7 +53,7 @@
<el-col :span="24">
<el-form-item prop="name">
<span slot="label">功能节点</span>
<el-input v-model="formobj.funNode" maxlength="125" placeholder="" class="addinputw" readonly/>
<span>{{ formobj.funNode }}</span>
</el-form-item>
</el-col>
</el-row>
@ -69,11 +61,10 @@
<el-col :span="24">
<el-form-item>
<span slot="label">备注</span>
<el-input v-model="formobj.remarks" maxlength="125" placeholder="" type="textarea" :rows="3" readonly/>
<span>{{ formobj.remarks }}</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
@ -85,27 +76,23 @@ export default {
name: 'HetongdanganguanliInfo',
data() {
return {
visible: false,
formobj: {} //
formobj: {}
}
},
methods: {
showInfo(row) {
getOneTemplate(row.sid).then((res) => {
if (res.code === '200') {
if (res.success) {
this.formobj = res.data
}
})
},
//
handleReturn() {
this.visible = false
this.$emit('doback')
}
}
}
</script>
<style scoped>
.widthxiao{width: 80%;}
.addinputw{width: 30% !important;}
</style>

76
anrui-buscenter/anrui-buscenter-ui/src/views/hetongguanli/hetongshenheguanli/hetongshenheguanli.vue

@ -1,54 +1,48 @@
<template>
<div class="app-container">
<div v-show="viewState==1">
<div class="tab-header webtop">
<div>合同模板管理</div>
<div>
<el-button type="info" size="small">关闭</el-button>
</div>
</div>
<div class="webcon">
<button-bar view-title="合同模板管理" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form :inline="true" class="tab-header">
<el-row>
<el-form-item label="合同类型" class="searchlist">
<el-form-item label="合同类型">
<el-select v-model="listQuery.params.contractType" placeholder="请选择" class="filter-item">
<el-option v-for="item in typeList" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"/>
</el-select>
</el-form-item>
<el-form-item label="合同编号" class="searchlist">
<el-form-item label="合同编号">
<el-input v-model="listQuery.params.contractNo" placeholder="" clearable class="filter-item"/>
</el-form-item>
<el-form-item label="签订日期" class="searchlist">
<el-form-item label="签订日期">
<el-date-picker v-model="listQuery.params.createDateStart" class="filter-item" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="请选择"/>
<label></label>
<el-date-picker v-model="listQuery.params.createDateEnd" class="filter-item" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="请选择"/>
</el-form-item>
<el-form-item label="甲方名称" class="searchlist">
<el-form-item label="甲方名称">
<el-input v-model="listQuery.params.partyA" placeholder="" clearable class="filter-item"/>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="乙方名称" class="searchlist">
<el-form-item label="乙方名称">
<el-input v-model="listQuery.params.partyB" placeholder="" clearable class="filter-item"/>
</el-form-item>
</el-row>
<div class="searchbtns">
<el-button type="primary" @click="handleFilter">查询</el-button>
<el-button type="primary" @click="handleReset">重置</el-button>
</div>
</el-form>
<div class="btn" style="text-align: center;">
<el-button size="small" icon="el-icon-search" type="primary" @click="handleFilter">查询</el-button>
<el-button size="small" icon="el-icon-refresh" type="primary" @click="handleReset">重置</el-button>
</div>
</div>
</div>
<div class="listtop">
<div class="tit">合同模板列表</div>
<pageye v-show="list.length>0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
<pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%">
<el-table-column width="50px" type="selection" align="center"/>
<el-table-column width="80px" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column label="合同编号" align="center">
<template slot-scope="scope">
@ -80,7 +74,7 @@
<div class="pages">
<div class="tit"/>
<!-- 翻页 -->
<pagination v-show="list.length>0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
</div>
</div>
@ -92,18 +86,30 @@
import { getPageList } from '@/api/jichuxinxi/contractfile'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import { dictType } from '@/api/salesManagement/orderManagement'
import ButtonBar from '@/components/ButtonBar'
import { typeValues } from '@/api/dictcommons/dictcommons'
import hetongshenheInfo from '@/views/hetongguanli/hetongshenheguanli/hetongshenheInfo'
export default {
name: 'HeTongDangAnGuanLi',
name: 'HeTongShenHeGuanLi',
components: {
Pagination,
pageye,
ButtonBar,
hetongshenheInfo
},
data() {
return {
btndisabled: false,
btnList: [
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '隐藏查询条件',
// -----------
@ -127,6 +133,9 @@ export default {
}
}
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
created() {
//
this.getList()
@ -142,12 +151,20 @@ export default {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'doClose':
this.doClose()
break
default:
break
}
},
//
getType() {
dictType({
type: 'contractType',
}).then((response) => {
if (response.code === '200' && response.data) {
typeValues({ type: 'contractType' }).then((response) => {
if (response.success) {
this.typeList = response.data
}
})
@ -163,7 +180,7 @@ export default {
this.listLoading = true
getPageList(this.listQuery).then((response) => {
this.listLoading = false
if (response.code === '200' && response.data && response.data.total > 0) {
if (response.success) {
this.list = response.data.records
this.listQuery.total = response.data.total
} else {
@ -181,7 +198,7 @@ export default {
handleReset() {
this.listQuery = {
current: 1,
size: 20,
size: 10,
params: {
contractNo: '',
contractTypeKey: '',
@ -200,7 +217,10 @@ export default {
},
resetState() {
this.viewState = 1
this.getList()
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}

Loading…
Cancel
Save