parent
dc58975994
commit
a4a5fcecdf
@ -0,0 +1,5 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/temp" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/tmp" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
@ -0,0 +1,6 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<profile version="1.0">
|
||||
<option name="myName" value="Project Default" />
|
||||
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||
</profile>
|
||||
</component>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="JavaScriptSettings">
|
||||
<option name="languageLevel" value="ES6" />
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/SC-MOM.iml" filepath="$PROJECT_DIR$/.idea/SC-MOM.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,561 @@
|
||||
<template>
|
||||
<view class="jnpf-wrap jnpf-wrap-form" v-if="!loading">
|
||||
<u-form :model="dataForm" :rules="rules" ref="dataForm" :errorType="['toast']"
|
||||
label-position="left" label-align="right" :label-width="labelwidth" class="jnpf-form">
|
||||
<u-form-item
|
||||
label="合同类型 " prop="contracttype" >
|
||||
<u-input v-model="dataForm.contracttype"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="合同编码" prop="contractcode" >
|
||||
<u-input v-model="dataForm.contractcode"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="合同名称" prop="contractname" >
|
||||
<u-input v-model="dataForm.contractname"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="合同状态" prop="status" >
|
||||
<jnpf-select v-model="dataForm.status"
|
||||
placeholder="请选择" :props="statusProps" :options="statusOptions" :style='{"width":"100%"}'>
|
||||
</jnpf-select>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="开标日期" prop="bidopeningdate" >
|
||||
<jnpf-select v-model="dataForm.bidopeningdate"
|
||||
placeholder="请选择" :props="bidopeningdateProps" :options="bidopeningdateOptions" :style='{"width":"100%"}'>
|
||||
</jnpf-select>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="开始日期" prop="startdate" >
|
||||
<jnpf-select v-model="dataForm.startdate"
|
||||
placeholder="请选择" :props="startdateProps" :options="startdateOptions" :style='{"width":"100%"}'>
|
||||
</jnpf-select>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="审核日期" prop="auditdate" >
|
||||
<u-input v-model="dataForm.auditdate"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="供货完成日期" prop="completiondate" >
|
||||
<u-input v-model="dataForm.completiondate"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="关闭日期" prop="closingdate" >
|
||||
<u-input v-model="dataForm.closingdate"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="回款周期(日)" prop="collectioncycle" >
|
||||
<u-input v-model="dataForm.collectioncycle"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="签订日期" prop="signingdate" >
|
||||
<u-input v-model="dataForm.signingdate"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="截止日期" prop="enddate" >
|
||||
<u-input v-model="dataForm.enddate"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="供应商/客户编" prop="code" >
|
||||
<u-input v-model="dataForm.code"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="供应商/客户名" prop="name" >
|
||||
<u-input v-model="dataForm.name"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="对方合同号" prop="contractno" >
|
||||
<u-input v-model="dataForm.contractno"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="币种 " prop="currency" >
|
||||
<u-input v-model="dataForm.currency"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="数量" prop="num" >
|
||||
<u-input v-model="dataForm.num"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="金额" prop="amount" >
|
||||
<u-input v-model="dataForm.amount"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="库存组织" prop="organization" >
|
||||
<u-input v-model="dataForm.organization"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="备注" prop="remark" >
|
||||
<u-input v-model="dataForm.remark"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="合同分类 " prop="classification" >
|
||||
<u-input v-model="dataForm.classification"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="申报日期" prop="declarationdate" >
|
||||
<u-input v-model="dataForm.declarationdate"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="部门名称" prop="deptname" >
|
||||
<u-input v-model="dataForm.deptname"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="录入人" prop="creatorusername" >
|
||||
<u-input v-model="dataForm.creatorusername"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<view prop="activephvpra">
|
||||
<u-tabs :is-scroll="false" :list="activephvpraData" name="title" :current="activephvpraCurrent" @change="activephvpra"/>
|
||||
<view>
|
||||
<view v-if="0 == activephvpraCurrent">
|
||||
<view class="jnpf-table" >
|
||||
<view class="jnpf-table-item" v-for="(item,i) in dataForm.jg_contract_item0List" :key="i">
|
||||
<view class="jnpf-table-item-title u-flex u-row-between">
|
||||
<text class="jnpf-table-item-title-num">({{i+1}})</text>
|
||||
<view class="jnpf-table-item-title-action" v-if="dataForm.jg_contract_item0List.length>1" @click="deljg_contract_item0List(i)">删除</view>
|
||||
</view>
|
||||
<u-form-item
|
||||
label="物料编码" >
|
||||
<u-input v-model="dataForm.jg_contract_item0List[i].materialcode"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="物料名称" >
|
||||
<u-input v-model="dataForm.jg_contract_item0List[i].materialname"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="规格型号" >
|
||||
<u-input v-model="dataForm.jg_contract_item0List[i].specification"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="单位 " >
|
||||
<u-input v-model="dataForm.jg_contract_item0List[i].unit"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="数量" >
|
||||
<u-input v-model="dataForm.jg_contract_item0List[i].num"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="单价" >
|
||||
<u-input v-model="dataForm.jg_contract_item0List[i].price"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="金额" >
|
||||
<u-input v-model="dataForm.jg_contract_item0List[i].amount"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="税率 " >
|
||||
<u-input v-model="dataForm.jg_contract_item0List[i].rate"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="不含税单价" >
|
||||
<u-input v-model="dataForm.jg_contract_item0List[i].notprice"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="不含税金额" >
|
||||
<u-input v-model="dataForm.jg_contract_item0List[i].notamount"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="备注" >
|
||||
<u-input v-model="dataForm.jg_contract_item0List[i].remark"
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
</view>
|
||||
<view class="jnpf-table-addBtn" @click="addjg_contract_item0List" >
|
||||
<u-icon name="plus" color="#2979ff"></u-icon>添加
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="1 == activephvpraCurrent">
|
||||
<view class="jnpf-table" >
|
||||
<view class="jnpf-table-item" v-for="(item,i) in dataForm.jg_contract_item1List" :key="i">
|
||||
<view class="jnpf-table-item-title u-flex u-row-between">
|
||||
<text class="jnpf-table-item-title-num">({{i+1}})</text>
|
||||
<view class="jnpf-table-item-title-action" v-if="dataForm.jg_contract_item1List.length>1" @click="deljg_contract_item1List(i)">删除</view>
|
||||
</view>
|
||||
<u-form-item
|
||||
label="附件内容" >
|
||||
<jnpf-file v-model="dataForm.jg_contract_item1List[i].enclosure"
|
||||
:list="dataForm.jg_contract_item1List[i].enclosure" sizeUnit="MB" :fileSize="5" :limit="9" >
|
||||
</jnpf-file>
|
||||
</u-form-item>
|
||||
</view>
|
||||
<view class="jnpf-table-addBtn" @click="addjg_contract_item1List" >
|
||||
<u-icon name="plus" color="#2979ff"></u-icon>添加
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</u-form>
|
||||
<view class="buttom-actions" v-if="jurisdictionType != 'btn_detail'" >
|
||||
<u-button class="buttom-btn" @click="resetForm">取消</u-button>
|
||||
<u-button class="buttom-btn" type="primary" @click="submitForm" :loading="btnLoading">保存</u-button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getDictionaryDataSelector,
|
||||
getDataInterfaceRes
|
||||
} from '@/api/common'
|
||||
import request from '@/utils/request'
|
||||
export default {
|
||||
data(){
|
||||
return{
|
||||
btnLoading: false,
|
||||
loading: false,
|
||||
text: '提示:测试文本',
|
||||
dataForm:{
|
||||
c_id:"",
|
||||
contracttype : '',
|
||||
contractcode : '',
|
||||
contractname : '',
|
||||
status : "",
|
||||
bidopeningdate : "",
|
||||
startdate : "",
|
||||
auditdate : '',
|
||||
completiondate : '',
|
||||
closingdate : '',
|
||||
collectioncycle : '',
|
||||
signingdate : '',
|
||||
enddate : '',
|
||||
code : '',
|
||||
name : '',
|
||||
contractno : '',
|
||||
currency : '',
|
||||
num : '',
|
||||
amount : '',
|
||||
organization : '',
|
||||
remark : '',
|
||||
classification : '',
|
||||
declarationdate : '',
|
||||
deptname : '',
|
||||
creatorusername : '',
|
||||
jg_contract_item0List:[],
|
||||
jg_contract_item1List:[],
|
||||
},
|
||||
rules:{
|
||||
contractcode: [
|
||||
],
|
||||
},
|
||||
statusOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
statusProps:{"label":"fullName","value":"id"},
|
||||
bidopeningdateOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
bidopeningdateProps:{"label":"fullName","value":"id"},
|
||||
startdateOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
startdateProps:{"label":"fullName","value":"id"},
|
||||
activephvpraCurrent:1,
|
||||
activephvpraData:[
|
||||
{
|
||||
title: "物料明细"
|
||||
},
|
||||
{
|
||||
title: "附件详情"
|
||||
},
|
||||
],
|
||||
labelwidth:100*1.5,
|
||||
menuId:'',
|
||||
jurisdictionType:'',
|
||||
ruleList:{
|
||||
},
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
this.jurisdictionType = option.jurisdictionType
|
||||
this.menuId=option.menuId
|
||||
this.dataForm.c_id = option.id || ''
|
||||
let _title = ""
|
||||
if(option.jurisdictionType =='btn_edit'){
|
||||
_title = "编辑"
|
||||
}
|
||||
if(option.jurisdictionType =='btn_detail'){
|
||||
_title = "详情"
|
||||
}
|
||||
if(option.jurisdictionType =='btn_add'){
|
||||
_title = "新增"
|
||||
}
|
||||
uni.setNavigationBarTitle({
|
||||
title: _title
|
||||
})
|
||||
this.selfInit()
|
||||
this.dataAll()
|
||||
this.initData()
|
||||
},
|
||||
onReady() {
|
||||
this.$refs.dataForm.setRules(this.rules);
|
||||
},
|
||||
watch:{
|
||||
dataForm: {
|
||||
handler(val, oldVal) {
|
||||
this.jg_contract_item0()
|
||||
this.jg_contract_item1()
|
||||
},
|
||||
deep: true
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
checkChildRule() {
|
||||
let title = [];
|
||||
for (let k in this.ruleList) {
|
||||
let num = k.split("-");
|
||||
let childKey = num[0];
|
||||
num.forEach((model, i) => {
|
||||
if (i == 1) {
|
||||
let childData = this.dataForm[childKey]
|
||||
childData.forEach((child, i) => {
|
||||
if (child[model] instanceof Array) {
|
||||
if (child[model].length == 0) {
|
||||
title.push(this.ruleList[k])
|
||||
}
|
||||
} else {
|
||||
if (!child[model]) {
|
||||
title.push(this.ruleList[k])
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
if (title.length > 0) {
|
||||
return title[0]
|
||||
}
|
||||
},
|
||||
resetForm(){
|
||||
uni.navigateBack()
|
||||
},
|
||||
dataAll(){
|
||||
},
|
||||
jg_contract_item0(){
|
||||
let table = this.dataForm.jg_contract_item0List
|
||||
let summaryField =[]
|
||||
let summaryFieldName ={}
|
||||
let data ={}
|
||||
for (let i in summaryField) {
|
||||
let map = {}
|
||||
let val = 0
|
||||
for (let j = 0; j < table.length; j++) {
|
||||
let summary = table[j][summaryField[i]];
|
||||
if (summary) {
|
||||
let data = isNaN(summary) ? 0 : Number(summary)
|
||||
val += data
|
||||
}
|
||||
}
|
||||
map.id = summaryField[i];
|
||||
map.name = summaryFieldName[summaryField[i]];
|
||||
map.val = val;
|
||||
data[summaryField[i]]=map;
|
||||
}
|
||||
return data;
|
||||
},
|
||||
jg_contract_item1(){
|
||||
let table = this.dataForm.jg_contract_item1List
|
||||
let summaryField =[]
|
||||
let summaryFieldName ={}
|
||||
let data ={}
|
||||
for (let i in summaryField) {
|
||||
let map = {}
|
||||
let val = 0
|
||||
for (let j = 0; j < table.length; j++) {
|
||||
let summary = table[j][summaryField[i]];
|
||||
if (summary) {
|
||||
let data = isNaN(summary) ? 0 : Number(summary)
|
||||
val += data
|
||||
}
|
||||
}
|
||||
map.id = summaryField[i];
|
||||
map.name = summaryFieldName[summaryField[i]];
|
||||
map.val = val;
|
||||
data[summaryField[i]]=map;
|
||||
}
|
||||
return data;
|
||||
},
|
||||
activephvpra(index) {
|
||||
this.activephvpraCurrent = index;
|
||||
},
|
||||
initData(){
|
||||
this.$nextTick(function(){
|
||||
if (this.dataForm.c_id) {
|
||||
this.loading = true
|
||||
request({
|
||||
url: '/api/example/Jg_contract/'+this.dataForm.c_id,
|
||||
method: 'get',
|
||||
}).then(res => {
|
||||
this.dataInfo(res.data)
|
||||
this.loading = false
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
submitForm(){
|
||||
var _data = this.dataList()
|
||||
this.$refs.dataForm.validate(valid => {
|
||||
if (!valid) return
|
||||
if (!!this.checkChildRule()) return
|
||||
this.$u.toast(
|
||||
this.checkChildRule()
|
||||
)
|
||||
this.btnLoading = true
|
||||
if (this.dataForm.c_id) {
|
||||
request({
|
||||
url: '/api/example/Jg_contract/' + this.dataForm.c_id,
|
||||
method: 'put',
|
||||
data: _data,
|
||||
}).then(res => {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
complete: () => {
|
||||
setTimeout(() => {
|
||||
this.btnLoading = false
|
||||
uni.$emit('refresh')
|
||||
uni.navigateBack()
|
||||
}, 1500)
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
this.btnLoading = false
|
||||
})
|
||||
}else {
|
||||
request({
|
||||
url: '/api/example/Jg_contract/',
|
||||
method: 'post',
|
||||
data: _data,
|
||||
}).then(res => {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
complete: () => {
|
||||
setTimeout(() => {
|
||||
this.btnLoading = false
|
||||
uni.$emit('refresh')
|
||||
uni.navigateBack()
|
||||
}, 1500)
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
this.btnLoading = false
|
||||
})
|
||||
}
|
||||
});
|
||||
},
|
||||
selfInit() {
|
||||
this.addjg_contract_item0List()
|
||||
this.addjg_contract_item1List()
|
||||
this.$store.commit('base/UPDATE_RELATION_DATA', {})
|
||||
},
|
||||
addjg_contract_item0List(){
|
||||
let item = {
|
||||
materialcode:undefined,
|
||||
materialname:undefined,
|
||||
specification:undefined,
|
||||
unit:undefined,
|
||||
num:undefined,
|
||||
price:undefined,
|
||||
amount:undefined,
|
||||
rate:undefined,
|
||||
notprice:undefined,
|
||||
notamount:undefined,
|
||||
remark:undefined,
|
||||
}
|
||||
this.dataForm.jg_contract_item0List.push(item)
|
||||
},
|
||||
deljg_contract_item0List(index) {
|
||||
this.dataForm.jg_contract_item0List.splice(index, 1);
|
||||
},
|
||||
addjg_contract_item1List(){
|
||||
let item = {
|
||||
enclosure:[],
|
||||
}
|
||||
this.dataForm.jg_contract_item1List.push(item)
|
||||
},
|
||||
deljg_contract_item1List(index) {
|
||||
this.dataForm.jg_contract_item1List.splice(index, 1);
|
||||
},
|
||||
dataList(){
|
||||
var _data = JSON.parse(JSON.stringify(this.dataForm));
|
||||
for(let i=0;i<_data.jg_contract_item0List.length;i++){
|
||||
var _list = _data.jg_contract_item0List[i];
|
||||
}
|
||||
for(let i=0;i<_data.jg_contract_item1List.length;i++){
|
||||
var _list = _data.jg_contract_item1List[i];
|
||||
_list.enclosure = JSON.stringify(_list.enclosure)
|
||||
}
|
||||
return _data;
|
||||
},
|
||||
dataInfo(dataAll){
|
||||
let _dataAll =dataAll
|
||||
for(let i=0;i<_dataAll.jg_contract_item0List.length;i++){
|
||||
var _list = _dataAll.jg_contract_item0List[i];
|
||||
}
|
||||
for(let i=0;i<_dataAll.jg_contract_item1List.length;i++){
|
||||
var _list = _dataAll.jg_contract_item1List[i];
|
||||
_list.enclosure = JSON.parse(_list.enclosure)
|
||||
}
|
||||
this.dataForm=_dataAll
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
</script>
|
@ -0,0 +1,261 @@
|
||||
<template>
|
||||
<view class="dynamicModel-list-v">
|
||||
<view class="head-warp com-dropdown">
|
||||
<u-dropdown class="u-dropdown" ref="uDropdown" @close="closeData">
|
||||
<u-dropdown-item title="排序">
|
||||
<view class="dropdown-slot-content">
|
||||
<view class="dropdown-slot-content-main">
|
||||
<u-cell-group>
|
||||
<u-cell-item @click="cellClick(item)" :arrow="false" :title="item.label"
|
||||
v-for="(item, index) in sortOptions" :key="index" :title-style="{color: sortValue == item.value ? '#2979ff' : '#606266' }">
|
||||
<u-icon v-if="sortValue == item.value" name="checkbox-mark" color="#2979ff" size="32"></u-icon>
|
||||
</u-cell-item>
|
||||
</u-cell-group>
|
||||
</view>
|
||||
</view>
|
||||
</u-dropdown-item>
|
||||
<u-dropdown-item title="筛选" >
|
||||
<view class="dropdown-slot-content">
|
||||
<view class="dropdown-slot-content-main search-main">
|
||||
<view class="u-p-l-32 u-p-r-32 search-form">
|
||||
<u-form :model="searchForm" ref="searchForm" :errorType="['toast']" label-position="left" label-width="150">
|
||||
</u-form>
|
||||
</view>
|
||||
<view class="buttom-actions">
|
||||
<u-button class="buttom-btn" @click="reset">重置</u-button>
|
||||
<u-button class="buttom-btn" type="primary" @click="closeDropdown">检索</u-button>
|
||||
</view>
|
||||
<view class="dropdown-slot-bg" @click="$refs.uDropdown.close()"></view>
|
||||
</view>
|
||||
</view>
|
||||
</u-dropdown-item>
|
||||
</u-dropdown>
|
||||
</view>
|
||||
<view class="list-warp">
|
||||
<mescroll-uni ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" :fixed="false" :down="downOption" :up="upOption">
|
||||
<view class="list">
|
||||
<view class="list-box" v-for="(item, index) in list" :key="item.prop">
|
||||
<u-swipe-action :index="index" @click="handleClick" @open="open" :options="options" @content-click="goDetail(item.c_id,item.flowState)">
|
||||
<view class="item">
|
||||
</view>
|
||||
</u-swipe-action>
|
||||
</view>
|
||||
</view>
|
||||
</mescroll-uni>
|
||||
</view>
|
||||
<view class="com-addBtn" @click="addPage()" >
|
||||
<u-icon name="plus" size="60" color="#fff" />
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import resources from '@/libs/resources.js'
|
||||
import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
|
||||
import {
|
||||
getDictionaryDataSelector,
|
||||
getDataInterfaceRes
|
||||
} from '@/api/common'
|
||||
import request from '@/utils/request'
|
||||
export default {
|
||||
mixins: [MescrollMixin],
|
||||
data() {
|
||||
return {
|
||||
sortValue: '',
|
||||
searchForm: {
|
||||
},
|
||||
downOption: {
|
||||
use: true,
|
||||
auto: false
|
||||
},
|
||||
upOption: {
|
||||
page: {
|
||||
num: 0,
|
||||
size: 20,
|
||||
time: null,
|
||||
},
|
||||
empty: {
|
||||
use: true,
|
||||
icon: resources.message.nodata,
|
||||
tip: "暂无数据",
|
||||
fixed: true,
|
||||
top: "300rpx",
|
||||
zIndex: 5,
|
||||
},
|
||||
textNoMore: '没有更多数据',
|
||||
toTop: {
|
||||
bottom: 250
|
||||
}
|
||||
},
|
||||
statusOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
statusProps:{"label":"fullName","value":"id"},
|
||||
bidopeningdateOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
bidopeningdateProps:{"label":"fullName","value":"id"},
|
||||
startdateOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
startdateProps:{"label":"fullName","value":"id"},
|
||||
list: [],
|
||||
listQuery: {
|
||||
sort: 'desc',
|
||||
sidx: '',
|
||||
keyword: '',
|
||||
json: ''
|
||||
},
|
||||
options: [
|
||||
{
|
||||
text: '删除',
|
||||
style: {
|
||||
backgroundColor: '#dd524d'
|
||||
}
|
||||
},
|
||||
],
|
||||
sortOptions:[
|
||||
],
|
||||
menuId:'',
|
||||
}
|
||||
},
|
||||
onLoad(e){
|
||||
this.menuId = e.menuId
|
||||
uni.$on('refresh', () => {
|
||||
this.list = [];
|
||||
this.mescroll.resetUpScroll();
|
||||
})
|
||||
this.dataAll()
|
||||
},
|
||||
onUnload() {
|
||||
uni.$off('refresh')
|
||||
},
|
||||
methods:{
|
||||
dataAll(){
|
||||
},
|
||||
closeData(e){
|
||||
if(e==1){
|
||||
// this.reset()
|
||||
}
|
||||
},
|
||||
upCallback(page) {
|
||||
// for(let i in this.searchForm){
|
||||
// if(!this.searchForm[i]){
|
||||
// delete this.searchForm[i]
|
||||
// }
|
||||
// }
|
||||
const query = {
|
||||
currentPage: page.num,
|
||||
pageSize: page.size,
|
||||
menuId : this.menuId,
|
||||
...this.listQuery,
|
||||
...this.searchForm
|
||||
}
|
||||
request({
|
||||
url: '/api/example/Jg_contract/getList',
|
||||
method: 'post',
|
||||
data: query,
|
||||
}).then(res => {
|
||||
let _list = this.dataList(res.data);
|
||||
this.mescroll.endSuccess(res.data.list.length);
|
||||
if (page.num == 1) this.list = [];
|
||||
const list = _list.map(o => ({
|
||||
show: false,
|
||||
...o
|
||||
}));
|
||||
this.list = this.list.concat(_list);
|
||||
}).catch(() => {
|
||||
this.mescroll.endErr();
|
||||
})
|
||||
},
|
||||
handleClick(index, index1) {
|
||||
const item = this.list[index]
|
||||
request({
|
||||
url: '/api/example/Jg_contract/' + item.c_id,
|
||||
method: 'delete'
|
||||
}).then(res => {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
complete: () => {
|
||||
this.$u.toast(res.msg)
|
||||
this.list.splice(index, 1)
|
||||
if (!this.list.length) this.mescroll.showEmpty()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
open(index) {
|
||||
this.list[index].show = true;
|
||||
this.list.map((val, idx) => {
|
||||
if (index != idx) this.list[idx].show = false;
|
||||
})
|
||||
},
|
||||
search() {
|
||||
if (this.isPreview == '1') return
|
||||
this.searchTimer && clearTimeout(this.searchTimer)
|
||||
this.searchTimer = setTimeout(() => {
|
||||
this.list = [];
|
||||
this.mescroll.resetUpScroll();
|
||||
}, 300)
|
||||
},
|
||||
goDetail(id, status) {
|
||||
let btnType = ''
|
||||
let btnList = []
|
||||
btnList.push('btn_edit')
|
||||
if(btnList.includes('btn_detail')){
|
||||
btnType = "btn_detail"
|
||||
}
|
||||
if(btnList.includes('btn_edit')){
|
||||
btnType = "btn_edit"
|
||||
}
|
||||
if(!btnType) return
|
||||
this.jumPage(id, status,btnType)
|
||||
},
|
||||
addPage() {
|
||||
this.jumPage()
|
||||
},
|
||||
jumPage(id, status,btnType){
|
||||
if (!id && !status) btnType = 'btn_add'
|
||||
uni.navigateTo({
|
||||
url: id?'./form?menuId='+this.menuId+'&jurisdictionType='+btnType+'&id=' + id:'./form?menuId='+this.menuId+'&jurisdictionType='+btnType
|
||||
})
|
||||
},
|
||||
cellClick(item) {
|
||||
if (this.sortValue === item.value) return
|
||||
this.listQuery.sort = item.sort
|
||||
this.listQuery.sidx = item.sidx
|
||||
this.sortValue = item.value
|
||||
this.$refs.uDropdown.close();
|
||||
this.$nextTick(() => {
|
||||
this.list = [];
|
||||
this.mescroll.resetUpScroll();
|
||||
})
|
||||
},
|
||||
reset() {
|
||||
this.$refs.searchForm.resetFields()
|
||||
},
|
||||
closeDropdown() {
|
||||
this.$refs.uDropdown.close();
|
||||
this.$nextTick(() => {
|
||||
this.list = [];
|
||||
this.mescroll.resetUpScroll();
|
||||
})
|
||||
},
|
||||
dataList(data){
|
||||
let _list =[]
|
||||
for(let i=0;i<data.list.length;i++){
|
||||
let _data = data.list[i]
|
||||
_list.push(_data)
|
||||
}
|
||||
return _list;
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
page {
|
||||
background-color: #f0f2f6;
|
||||
height: 100%;
|
||||
/* #ifdef MP-ALIPAY */
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
/* #endif */
|
||||
}
|
||||
</style>
|
@ -0,0 +1,346 @@
|
||||
<template>
|
||||
<transition name="el-zoom-in-center">
|
||||
<div class="JNPF-preview-main">
|
||||
<div class="JNPF-common-page-header">
|
||||
<el-page-header @back="goBack"
|
||||
content="详情"/>
|
||||
<div class="options">
|
||||
<el-button @click="goBack">取 消</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<el-row :gutter="15" class=" main" :style="{margin: '0 auto',width: '100%'}">
|
||||
<el-form ref="elForm" :model="dataForm" size="small" label-width="100px" label-position="right" >
|
||||
<template v-if="!loading">
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="合同类型 "
|
||||
prop="contracttype" >
|
||||
<p>{{dataForm.contracttype}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="合同编码"
|
||||
prop="contractcode" >
|
||||
<p>{{dataForm.contractcode}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="合同名称"
|
||||
prop="contractname" >
|
||||
<p>{{dataForm.contractname}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="合同状态"
|
||||
prop="status" >
|
||||
<p>{{ dataForm.status | dynamicText(statusOptions) }} </p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="开标日期"
|
||||
prop="bidopeningdate" >
|
||||
<p>{{ dataForm.bidopeningdate | dynamicText(bidopeningdateOptions) }} </p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="开始日期"
|
||||
prop="startdate" >
|
||||
<p>{{ dataForm.startdate | dynamicText(startdateOptions) }} </p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="审核日期"
|
||||
prop="auditdate" >
|
||||
<p>{{dataForm.auditdate}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="供货完成日期"
|
||||
prop="completiondate" >
|
||||
<p>{{dataForm.completiondate}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="关闭日期"
|
||||
prop="closingdate" >
|
||||
<p>{{dataForm.closingdate}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="回款周期(日)"
|
||||
prop="collectioncycle" >
|
||||
<p>{{dataForm.collectioncycle}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="签订日期"
|
||||
prop="signingdate" >
|
||||
<p>{{dataForm.signingdate}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="截止日期"
|
||||
prop="enddate" >
|
||||
<p>{{dataForm.enddate}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="供应商/客户编"
|
||||
prop="code" >
|
||||
<p>{{dataForm.code}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="供应商/客户名"
|
||||
prop="name" >
|
||||
<p>{{dataForm.name}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="对方合同号"
|
||||
prop="contractno" >
|
||||
<p>{{dataForm.contractno}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="币种 "
|
||||
prop="currency" >
|
||||
<p>{{dataForm.currency}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="数量"
|
||||
prop="num" >
|
||||
<p>{{dataForm.num}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="金额"
|
||||
prop="amount" >
|
||||
<p>{{dataForm.amount}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="库存组织"
|
||||
prop="organization" >
|
||||
<p>{{dataForm.organization}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="备注"
|
||||
prop="remark" >
|
||||
<p>{{dataForm.remark}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" >
|
||||
<el-form-item label="合同分类 "
|
||||
prop="classification" >
|
||||
<p>{{dataForm.classification}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" >
|
||||
<el-form-item label="申报日期"
|
||||
prop="declarationdate" >
|
||||
<p>{{dataForm.declarationdate}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" >
|
||||
<el-form-item label="部门名称"
|
||||
prop="deptname" >
|
||||
<p>{{dataForm.deptname}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" >
|
||||
<el-form-item label="录入人"
|
||||
prop="creatorusername" >
|
||||
<p>{{dataForm.creatorusername}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-tabs v-model="activejlljvq" tab-position="top" class="mb-20">
|
||||
<el-tab-pane label="物料明细">
|
||||
<el-col :span="24" >
|
||||
<el-form-item label-width="0">
|
||||
<div class="JNPF-common-title">
|
||||
<h2></h2>
|
||||
</div>
|
||||
<el-table :data="dataForm.jg_contract_item0List" size='mini' >
|
||||
<el-table-column type="index" width="50" label="序号" align="center" />
|
||||
<el-table-column prop="materialcode" label="物料编码">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.materialcode}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="materialname" label="物料名称">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.materialname}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="specification" label="规格型号">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.specification}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="unit" label="单位 ">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.unit}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="num" label="数量">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.num}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="price" label="单价">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.price}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="amount" label="金额">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.amount}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="rate" label="税率 ">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.rate}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="notprice" label="不含税单价">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.notprice}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="notamount" label="不含税金额">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.notamount}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="remark" label="备注">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.remark}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-tab-pane >
|
||||
<el-tab-pane label="附件详情">
|
||||
<el-col :span="24" >
|
||||
<el-form-item label-width="0">
|
||||
<div class="JNPF-common-title">
|
||||
<h2></h2>
|
||||
</div>
|
||||
<el-table :data="dataForm.jg_contract_item1List" size='mini' >
|
||||
<el-table-column type="index" width="50" label="序号" align="center" />
|
||||
<el-table-column prop="enclosure" label="附件内容">
|
||||
<template slot-scope="scope">
|
||||
<JNPF-UploadFz v-model="scope.row.enclosure"
|
||||
disabled
|
||||
detailed :fileSize="5" sizeUnit="MB" :limit="9" buttonText="点击上传" >
|
||||
</JNPF-UploadFz>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-tab-pane >
|
||||
</el-tabs>
|
||||
</el-col>
|
||||
</template>
|
||||
</el-form>
|
||||
</el-row>
|
||||
</div>
|
||||
</transition>
|
||||
</template>
|
||||
<script>
|
||||
import request from '@/utils/request'
|
||||
import PrintBrowse from '@/components/PrintBrowse'
|
||||
import jnpf from '@/utils/jnpf'
|
||||
export default {
|
||||
components: {PrintBrowse},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
loading: false,
|
||||
printBrowseVisible: false,
|
||||
printId: '',
|
||||
dataForm: {
|
||||
c_id :'',
|
||||
contracttype : '',
|
||||
contractcode : '',
|
||||
contractname : '',
|
||||
status : "",
|
||||
bidopeningdate : "",
|
||||
startdate : "",
|
||||
auditdate : '',
|
||||
completiondate : '',
|
||||
closingdate : '',
|
||||
collectioncycle : '',
|
||||
signingdate : '',
|
||||
enddate : '',
|
||||
code : '',
|
||||
name : '',
|
||||
contractno : '',
|
||||
currency : '',
|
||||
num : '',
|
||||
amount : '',
|
||||
organization : '',
|
||||
remark : '',
|
||||
classification : '',
|
||||
declarationdate : '',
|
||||
deptname : '',
|
||||
creatorusername : '',
|
||||
jg_contract_item0List:[],
|
||||
jg_contract_item1List:[],
|
||||
},
|
||||
activejlljvq:'1',
|
||||
statusOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
bidopeningdateOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
startdateOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() {
|
||||
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
dataInfo(dataAll){
|
||||
let _dataAll =dataAll
|
||||
for(let i=0;i<_dataAll.jg_contract_item0List.length;i++){
|
||||
var _list = _dataAll.jg_contract_item0List[i];
|
||||
}
|
||||
for(let i=0;i<_dataAll.jg_contract_item1List.length;i++){
|
||||
var _list = _dataAll.jg_contract_item1List[i];
|
||||
_list.enclosure = _list.enclosure? JSON.parse(_list.enclosure):[]
|
||||
}
|
||||
this.dataForm = _dataAll
|
||||
},
|
||||
|
||||
goBack() {
|
||||
this.$emit('refresh')
|
||||
},
|
||||
init(id) {
|
||||
this.dataForm.c_id = id || 0;
|
||||
this.visible = true;
|
||||
this.$nextTick(() => {
|
||||
if(this.dataForm.c_id){
|
||||
this.loading = true
|
||||
request({
|
||||
url: '/api/example/Jg_contract/detail/'+this.dataForm.c_id,
|
||||
method: 'get'
|
||||
}).then(res => {
|
||||
this.dataInfo(res.data)
|
||||
this.loading = false
|
||||
})
|
||||
}
|
||||
|
||||
})
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
</script>
|
@ -0,0 +1,68 @@
|
||||
<template>
|
||||
<el-dialog title="导出数据" :close-on-click-modal="false" :visible.sync="visible"
|
||||
class="JNPF-dialog JNPF-dialog_center" lock-scroll width="600px">
|
||||
<el-form label-position="top" label-width="80px">
|
||||
<el-form-item label="数据选择">
|
||||
<el-radio-group v-model="type">
|
||||
<el-radio :label="0">当前页面数据</el-radio>
|
||||
<el-radio :label="1">全部页面数据</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="导出字段">
|
||||
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll"
|
||||
@change="handleCheckAllChange">全选</el-checkbox>
|
||||
<el-checkbox-group v-model="columns" @change="handleCheckedChange">
|
||||
<el-checkbox v-for="item in columnList" :label="item.prop" :key="item.prop">
|
||||
{{item.label}}
|
||||
</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="visible=false">取 消</el-button>
|
||||
<el-button type="primary" @click="downLoad">导 出</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
btnLoading: false,
|
||||
type: 0,
|
||||
columns: [],
|
||||
checkAll: true,
|
||||
isIndeterminate: false,
|
||||
columnList: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init(columnList) {
|
||||
this.visible = true
|
||||
this.checkAll = true
|
||||
this.isIndeterminate = false
|
||||
this.columnList = columnList
|
||||
this.columns = columnList.map(o => o.prop)
|
||||
},
|
||||
handleCheckAllChange(val) {
|
||||
this.columns = val ? this.columnList.map(o => o.prop) : [];
|
||||
this.isIndeterminate = false;
|
||||
},
|
||||
handleCheckedChange(value) {
|
||||
let checkedCount = value.length;
|
||||
this.checkAll = checkedCount === this.columnList.length;
|
||||
this.isIndeterminate = checkedCount > 0 && checkedCount < this.columnList.length;
|
||||
},
|
||||
downLoad() {
|
||||
this.$emit('download', { dataType: this.type, selectKey: this.columns.join(',') })
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
>>> .el-dialog__body {
|
||||
padding: 20px !important;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,574 @@
|
||||
<template>
|
||||
<transition name="el-zoom-in-center">
|
||||
<div class="JNPF-preview-main">
|
||||
<div class="JNPF-common-page-header">
|
||||
<el-page-header @back="goBack"
|
||||
:content="!dataForm.c_id ? '新建' : isDetail ? '详情':'编辑'"/>
|
||||
<div class="options">
|
||||
<el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> 保 存</el-button>
|
||||
<el-button @click="goBack"> 取 消</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<el-row :gutter="15" class=" main" :style="{margin: '0 auto',width: '100%'}">
|
||||
<el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px" label-position="right" >
|
||||
<template v-if="!loading">
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="合同类型 "
|
||||
prop="contracttype" >
|
||||
<el-input v-model="dataForm.contracttype"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="合同编码"
|
||||
prop="contractcode" >
|
||||
<el-input v-model="dataForm.contractcode"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="合同名称"
|
||||
prop="contractname" >
|
||||
<el-input v-model="dataForm.contractname"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="合同状态"
|
||||
prop="status" >
|
||||
<el-select v-model="dataForm.status"
|
||||
placeholder="请选择" clearable :style='{"width":"100%"}'>
|
||||
<el-option v-for="(item, index) in statusOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option>
|
||||
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="开标日期"
|
||||
prop="bidopeningdate" >
|
||||
<el-select v-model="dataForm.bidopeningdate"
|
||||
placeholder="请选择" clearable :style='{"width":"100%"}'>
|
||||
<el-option v-for="(item, index) in bidopeningdateOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option>
|
||||
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="开始日期"
|
||||
prop="startdate" >
|
||||
<el-select v-model="dataForm.startdate"
|
||||
placeholder="请选择" clearable :style='{"width":"100%"}'>
|
||||
<el-option v-for="(item, index) in startdateOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option>
|
||||
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="审核日期"
|
||||
prop="auditdate" >
|
||||
<el-input v-model="dataForm.auditdate"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="供货完成日期"
|
||||
prop="completiondate" >
|
||||
<el-input v-model="dataForm.completiondate"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="关闭日期"
|
||||
prop="closingdate" >
|
||||
<el-input v-model="dataForm.closingdate"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="回款周期(日)"
|
||||
prop="collectioncycle" >
|
||||
<el-input v-model="dataForm.collectioncycle"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="签订日期"
|
||||
prop="signingdate" >
|
||||
<el-input v-model="dataForm.signingdate"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="截止日期"
|
||||
prop="enddate" >
|
||||
<el-input v-model="dataForm.enddate"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="供应商/客户编"
|
||||
prop="code" >
|
||||
<el-input v-model="dataForm.code"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="供应商/客户名"
|
||||
prop="name" >
|
||||
<el-input v-model="dataForm.name"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="对方合同号"
|
||||
prop="contractno" >
|
||||
<el-input v-model="dataForm.contractno"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="币种 "
|
||||
prop="currency" >
|
||||
<el-input v-model="dataForm.currency"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="数量"
|
||||
prop="num" >
|
||||
<el-input v-model="dataForm.num"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="金额"
|
||||
prop="amount" >
|
||||
<el-input v-model="dataForm.amount"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="库存组织"
|
||||
prop="organization" >
|
||||
<el-input v-model="dataForm.organization"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="备注"
|
||||
prop="remark" >
|
||||
<el-input v-model="dataForm.remark"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" >
|
||||
<el-form-item label="合同分类 "
|
||||
prop="classification" >
|
||||
<el-input v-model="dataForm.classification"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" >
|
||||
<el-form-item label="申报日期"
|
||||
prop="declarationdate" >
|
||||
<el-input v-model="dataForm.declarationdate"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" >
|
||||
<el-form-item label="部门名称"
|
||||
prop="deptname" >
|
||||
<el-input v-model="dataForm.deptname"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" >
|
||||
<el-form-item label="录入人"
|
||||
prop="creatorusername" >
|
||||
<el-input v-model="dataForm.creatorusername"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-tabs v-model="activejlljvq" tab-position="top" class="mb-20">
|
||||
<el-tab-pane label="物料明细">
|
||||
<el-col :span="24" >
|
||||
<el-form-item label-width="0">
|
||||
<div class="JNPF-common-title">
|
||||
<h2></h2>
|
||||
</div>
|
||||
<el-table :data="dataForm.jg_contract_item0List" size='mini' >
|
||||
<el-table-column type="index" width="50" label="序号" align="center" />
|
||||
<el-table-column prop="materialcode" label="物料编码">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.materialcode"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="materialname" label="物料名称">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.materialname"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="specification" label="规格型号">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.specification"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="unit" label="单位 ">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.unit"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="num" label="数量">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.num"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="price" label="单价">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.price"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="amount" label="金额">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.amount"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="rate" label="税率 ">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.rate"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="notprice" label="不含税单价">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.notprice"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="notamount" label="不含税金额">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.notamount"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="remark" label="备注">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.remark"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="50" >
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" class="JNPF-table-delBtn" @click="deljg_contract_item0List(scope.$index)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="table-actions" @click="addjg_contract_item0List()">
|
||||
<el-button type="text" icon="el-icon-plus">添加</el-button>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-tab-pane >
|
||||
<el-tab-pane label="附件详情">
|
||||
<el-col :span="24" >
|
||||
<el-form-item label-width="0">
|
||||
<div class="JNPF-common-title">
|
||||
<h2></h2>
|
||||
</div>
|
||||
<el-table :data="dataForm.jg_contract_item1List" size='mini' >
|
||||
<el-table-column type="index" width="50" label="序号" align="center" />
|
||||
<el-table-column prop="enclosure" label="附件内容">
|
||||
<template slot-scope="scope">
|
||||
<JNPF-UploadFz v-model="scope.row.enclosure"
|
||||
:fileSize="5" sizeUnit="MB" :limit="9" buttonText="点击上传" >
|
||||
</JNPF-UploadFz>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="50" >
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" class="JNPF-table-delBtn" @click="deljg_contract_item1List(scope.$index)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="table-actions" @click="addjg_contract_item1List()">
|
||||
<el-button type="text" icon="el-icon-plus">添加</el-button>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-tab-pane >
|
||||
</el-tabs>
|
||||
</el-col>
|
||||
</template>
|
||||
</el-form>
|
||||
</el-row>
|
||||
</div>
|
||||
</transition>
|
||||
</template>
|
||||
<script>
|
||||
import request from '@/utils/request'
|
||||
import { getDataInterfaceRes } from '@/api/systemData/dataInterface'
|
||||
import { getDictionaryDataSelector } from '@/api/systemData/dictionary'
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
loading: false,
|
||||
isDetail: false,
|
||||
dataForm: {
|
||||
contracttype : '',
|
||||
contractcode : '',
|
||||
contractname : '',
|
||||
status : "",
|
||||
bidopeningdate : "",
|
||||
startdate : "",
|
||||
auditdate : '',
|
||||
completiondate : '',
|
||||
closingdate : '',
|
||||
collectioncycle : '',
|
||||
signingdate : '',
|
||||
enddate : '',
|
||||
code : '',
|
||||
name : '',
|
||||
contractno : '',
|
||||
currency : '',
|
||||
num : '',
|
||||
amount : '',
|
||||
organization : '',
|
||||
remark : '',
|
||||
classification : '',
|
||||
declarationdate : '',
|
||||
deptname : '',
|
||||
creatorusername : '',
|
||||
jg_contract_item0List:[],
|
||||
jg_contract_item1List:[],
|
||||
},
|
||||
activejlljvq:'1',
|
||||
rules:
|
||||
{
|
||||
contractcode: [
|
||||
],
|
||||
},
|
||||
statusOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
bidopeningdateOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
startdateOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() {
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
jg_contract_item0Exist() {
|
||||
let isOk = true;
|
||||
for(let i=0;i<this.dataForm.jg_contract_item0List.length;i++){
|
||||
const e = this.dataForm.jg_contract_item0List[i];
|
||||
}
|
||||
return isOk;
|
||||
},
|
||||
jg_contract_item1Exist() {
|
||||
let isOk = true;
|
||||
for(let i=0;i<this.dataForm.jg_contract_item1List.length;i++){
|
||||
const e = this.dataForm.jg_contract_item1List[i];
|
||||
}
|
||||
return isOk;
|
||||
},
|
||||
goBack() {
|
||||
this.$emit('refresh')
|
||||
},
|
||||
clearData(data){
|
||||
for (let key in data) {
|
||||
if (data[key] instanceof Array) {
|
||||
data[key] = [];
|
||||
} else if (data[key] instanceof Object) {
|
||||
this.clearData(data[key]);
|
||||
} else {
|
||||
data[key] = "";
|
||||
}
|
||||
}
|
||||
},
|
||||
init(id, isDetail) {
|
||||
this.dataForm.c_id = id || 0;
|
||||
this.visible = true;
|
||||
this.isDetail = isDetail || false;
|
||||
this.$nextTick(() => {
|
||||
this.$refs['elForm'].resetFields();
|
||||
if(this.dataForm.c_id){
|
||||
this.loading = true
|
||||
request({
|
||||
url: '/api/example/Jg_contract/'+this.dataForm.c_id,
|
||||
method: 'get'
|
||||
}).then(res => {
|
||||
this.dataInfo(res.data)
|
||||
this.loading = false
|
||||
});
|
||||
}else{
|
||||
this.clearData(this.dataForm)
|
||||
}
|
||||
});
|
||||
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
|
||||
},
|
||||
// 表单提交
|
||||
dataFormSubmit() {
|
||||
this.$refs['elForm'].validate((valid) => {
|
||||
if (valid) {
|
||||
if (!this.jg_contract_item0Exist()) return
|
||||
if (!this.jg_contract_item1Exist()) return
|
||||
this.request()
|
||||
}
|
||||
})
|
||||
},
|
||||
request() {
|
||||
var _data =this.dataList()
|
||||
if (!this.dataForm.c_id) {
|
||||
request({
|
||||
url: '/api/example/Jg_contract',
|
||||
method: 'post',
|
||||
data: _data
|
||||
}).then((res) => {
|
||||
this.$message({
|
||||
message: res.msg,
|
||||
type: 'success',
|
||||
duration: 1000,
|
||||
onClose: () => {
|
||||
this.visible = false
|
||||
this.$emit('refresh', true)
|
||||
}
|
||||
})
|
||||
})
|
||||
}else{
|
||||
request({
|
||||
url: '/api/example/Jg_contract/'+this.dataForm.c_id,
|
||||
method: 'PUT',
|
||||
data: _data
|
||||
}).then((res) => {
|
||||
this.$message({
|
||||
message: res.msg,
|
||||
type: 'success',
|
||||
duration: 1000,
|
||||
onClose: () => {
|
||||
this.visible = false
|
||||
this.$emit('refresh', true)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
},
|
||||
addjg_contract_item0List(){
|
||||
let item = {
|
||||
materialcode:undefined,
|
||||
materialname:undefined,
|
||||
specification:undefined,
|
||||
unit:undefined,
|
||||
num:undefined,
|
||||
price:undefined,
|
||||
amount:undefined,
|
||||
rate:undefined,
|
||||
notprice:undefined,
|
||||
notamount:undefined,
|
||||
remark:undefined,
|
||||
}
|
||||
this.dataForm.jg_contract_item0List.push(item)
|
||||
},
|
||||
deljg_contract_item0List(index) {
|
||||
this.dataForm.jg_contract_item0List.splice(index, 1);
|
||||
},
|
||||
addjg_contract_item1List(){
|
||||
let item = {
|
||||
enclosure:undefined,
|
||||
}
|
||||
this.dataForm.jg_contract_item1List.push(item)
|
||||
},
|
||||
deljg_contract_item1List(index) {
|
||||
this.dataForm.jg_contract_item1List.splice(index, 1);
|
||||
},
|
||||
dataList(){
|
||||
var _data = JSON.parse(JSON.stringify(this.dataForm));
|
||||
for(let i=0;i<_data.jg_contract_item0List.length;i++){
|
||||
var _list = _data.jg_contract_item0List[i];
|
||||
}
|
||||
for(let i=0;i<_data.jg_contract_item1List.length;i++){
|
||||
var _list = _data.jg_contract_item1List[i];
|
||||
_list.enclosure = JSON.stringify(_list.enclosure)
|
||||
}
|
||||
return _data;
|
||||
},
|
||||
dataInfo(dataAll){
|
||||
let _dataAll =dataAll
|
||||
for(let i=0;i<_dataAll.jg_contract_item0List.length;i++){
|
||||
var _list = _dataAll.jg_contract_item0List[i];
|
||||
}
|
||||
for(let i=0;i<_dataAll.jg_contract_item1List.length;i++){
|
||||
var _list = _dataAll.jg_contract_item1List[i];
|
||||
_list.enclosure = JSON.parse(_list.enclosure)
|
||||
}
|
||||
this.dataForm = _dataAll
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
</script>
|
@ -0,0 +1,281 @@
|
||||
<template>
|
||||
<div class="JNPF-common-layout">
|
||||
|
||||
<div class="JNPF-common-layout-center">
|
||||
<el-row class="JNPF-common-search-box" :gutter="16">
|
||||
<el-form @submit.native.prevent>
|
||||
<el-col :span="6">
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" @click="search()">查询</el-button>
|
||||
<el-button icon="el-icon-refresh-right" @click="reset()">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-form>
|
||||
</el-row>
|
||||
<div class="JNPF-common-layout-main JNPF-flex-main">
|
||||
<div class="JNPF-common-head">
|
||||
<div>
|
||||
<el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">新增
|
||||
</el-button>
|
||||
<el-button type="text" icon="el-icon-download" @click="exportData()" >导出
|
||||
</el-button>
|
||||
<el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()" >批量删除
|
||||
</el-button>
|
||||
</div>
|
||||
<div class="JNPF-common-head-right">
|
||||
<el-tooltip effect="dark" content="刷新" placement="top">
|
||||
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false"
|
||||
@click="reset()"/>
|
||||
</el-tooltip>
|
||||
<screenfull isContainer/>
|
||||
</div>
|
||||
</div>
|
||||
<JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c @selection-change="handleSelectionChange">
|
||||
<el-table-column prop="contractcode" label="合同编码" width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="contractname" label="合同名称" width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="contractno" label="对方合同号" width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="contracttype" label="合同类型 " width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="classification" label="合同分类 " width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="declarationdate" label="申报日期" width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="name" label="供应商/客户名" width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="num" label="数量" width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="amount" label="金额" width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="deptname" label="部门名称" width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="remark" label="备注" width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="creatorusername" label="录入人" width="0" align="left"
|
||||
/>
|
||||
<el-table-column label="合同状态" width="0" prop="status" algin="left"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.status | dynamicText(statusOptions) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right"
|
||||
width="150" >
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text"
|
||||
@click="addOrUpdateHandle(scope.row.c_id)" >编辑
|
||||
</el-button>
|
||||
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.c_id)">删除
|
||||
</el-button>
|
||||
<el-button type="text"
|
||||
@click="goDetail(scope.row.c_id)">详情
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</JNPF-table>
|
||||
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData"/>
|
||||
</div>
|
||||
</div>
|
||||
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/>
|
||||
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/>
|
||||
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import request from '@/utils/request'
|
||||
import {getDictionaryDataSelector} from '@/api/systemData/dictionary'
|
||||
import JNPFForm from './Form'
|
||||
import ExportBox from './ExportBox'
|
||||
import {getDataInterfaceRes} from '@/api/systemData/dataInterface'
|
||||
import Detail from './Detail'
|
||||
|
||||
export default {
|
||||
components: {JNPFForm, ExportBox,Detail},
|
||||
data() {
|
||||
return {
|
||||
detailVisible: false,
|
||||
query: {
|
||||
},
|
||||
treeProps: {
|
||||
children: 'children',
|
||||
label: 'fullName',
|
||||
value: 'id'
|
||||
},
|
||||
list: [],
|
||||
listLoading: true,
|
||||
multipleSelection: [], total: 0,
|
||||
listQuery: {
|
||||
currentPage: 1,
|
||||
pageSize: 20,
|
||||
sort: "desc",
|
||||
sidx: "",
|
||||
},
|
||||
formVisible: false,
|
||||
exportBoxVisible: false,
|
||||
columnList: [
|
||||
{prop: 'contractcode', label: '合同编码'},
|
||||
{prop: 'contractname', label: '合同名称'},
|
||||
{prop: 'contractno', label: '对方合同号'},
|
||||
{prop: 'contracttype', label: '合同类型 '},
|
||||
{prop: 'classification', label: '合同分类 '},
|
||||
{prop: 'declarationdate', label: '申报日期'},
|
||||
{prop: 'name', label: '供应商/客户名'},
|
||||
{prop: 'num', label: '数量'},
|
||||
{prop: 'amount', label: '金额'},
|
||||
{prop: 'deptname', label: '部门名称'},
|
||||
{prop: 'remark', label: '备注'},
|
||||
{prop: 'creatorusername', label: '录入人'},
|
||||
{prop: 'status', label: '合同状态'},
|
||||
],
|
||||
statusOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
statusProps:{"label":"fullName","value":"id"},
|
||||
bidopeningdateOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
bidopeningdateProps:{"label":"fullName","value":"id"},
|
||||
startdateOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
startdateProps:{"label":"fullName","value":"id"},
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
menuId() {
|
||||
return this.$route.meta.modelId || ''
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.initData()
|
||||
},
|
||||
methods: {
|
||||
goDetail(id){
|
||||
this.detailVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.Detail.init(id)
|
||||
})
|
||||
},
|
||||
sortChange({column, prop, order}) {
|
||||
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc'
|
||||
this.listQuery.sidx = !order ? '' : prop
|
||||
this.initData()
|
||||
},
|
||||
initData() {
|
||||
this.listLoading = true;
|
||||
let _query = {
|
||||
...this.listQuery,
|
||||
...this.query,
|
||||
menuId:this.menuId
|
||||
};
|
||||
request({
|
||||
url: `/api/example/Jg_contract/getList`,
|
||||
method: 'post',
|
||||
data: _query
|
||||
}).then(res => {
|
||||
var _list =[];
|
||||
for(let i=0;i<res.data.list.length;i++){
|
||||
let _data = res.data.list[i];
|
||||
_list.push(_data)
|
||||
}
|
||||
this.list = _list
|
||||
this.total = res.data.pagination.total
|
||||
|
||||
this.listLoading = false
|
||||
})
|
||||
},
|
||||
handleDel(id) {
|
||||
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
request({
|
||||
url: `/api/example/Jg_contract/${id}`,
|
||||
method: 'DELETE'
|
||||
}).then(res => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: res.msg,
|
||||
onClose: () => {
|
||||
this.initData()
|
||||
}
|
||||
});
|
||||
})
|
||||
}).catch(() => {
|
||||
});
|
||||
},
|
||||
handleSelectionChange(val) {
|
||||
const res = val.map(item => item.c_id)
|
||||
this.multipleSelection = res
|
||||
},
|
||||
handleBatchRemoveDel() {
|
||||
if (!this.multipleSelection.length) {
|
||||
this.$message({
|
||||
type: 'error',
|
||||
message: '请选择一条数据',
|
||||
duration: 1500,
|
||||
})
|
||||
return
|
||||
}
|
||||
const ids = this.multipleSelection.join()
|
||||
this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', {
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
request({
|
||||
url: `/api/example/Jg_contract/batchRemove/${ids}`,
|
||||
method: 'DELETE'
|
||||
}).then(res => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: res.msg,
|
||||
onClose: () => {
|
||||
this.initData()
|
||||
}
|
||||
});
|
||||
})
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
addOrUpdateHandle(id, isDetail) {
|
||||
this.formVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.JNPFForm.init(id, isDetail)
|
||||
})
|
||||
},
|
||||
exportData() {
|
||||
this.exportBoxVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.ExportBox.init(this.columnList)
|
||||
})
|
||||
},
|
||||
download(data) {
|
||||
let query = {...data, ...this.listQuery, ...this.query,menuId:this.menuId}
|
||||
request({
|
||||
url: `/api/example/Jg_contract/Actions/Export`,
|
||||
method: 'GET',
|
||||
data: query
|
||||
}).then(res => {
|
||||
if (!res.data.url) return
|
||||
this.jnpf.downloadFile(res.data.url)
|
||||
this.$refs.ExportBox.visible = false
|
||||
this.exportBoxVisible = false
|
||||
})
|
||||
},
|
||||
search() {
|
||||
this.listQuery = {
|
||||
currentPage: 1,
|
||||
pageSize: 20,
|
||||
sort: "desc",
|
||||
sidx: "",
|
||||
}
|
||||
this.initData()
|
||||
},
|
||||
refresh(isrRefresh) {
|
||||
this.formVisible = false
|
||||
if (isrRefresh) this.reset()
|
||||
},
|
||||
reset() {
|
||||
for (let key in this.query) {
|
||||
this.query[key] = undefined
|
||||
}
|
||||
this.search()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="jnpf.mapper.Jg_contractMapper">
|
||||
|
||||
|
||||
|
||||
</mapper>
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="jnpf.mapper.Jg_contract_item0Mapper">
|
||||
|
||||
|
||||
|
||||
</mapper>
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="jnpf.mapper.Jg_contract_item1Mapper">
|
||||
|
||||
|
||||
|
||||
</mapper>
|
@ -0,0 +1,346 @@
|
||||
<template>
|
||||
<transition name="el-zoom-in-center">
|
||||
<div class="JNPF-preview-main">
|
||||
<div class="JNPF-common-page-header">
|
||||
<el-page-header @back="goBack"
|
||||
content="详情"/>
|
||||
<div class="options">
|
||||
<el-button @click="goBack">取 消</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<el-row :gutter="15" class=" main" :style="{margin: '0 auto',width: '100%'}">
|
||||
<el-form ref="elForm" :model="dataForm" size="small" label-width="100px" label-position="right" >
|
||||
<template v-if="!loading">
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="合同类型 "
|
||||
prop="contracttype" >
|
||||
<p>{{dataForm.contracttype}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="合同编码"
|
||||
prop="contractcode" >
|
||||
<p>{{dataForm.contractcode}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="合同名称"
|
||||
prop="contractname" >
|
||||
<p>{{dataForm.contractname}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="合同状态"
|
||||
prop="status" >
|
||||
<p>{{ dataForm.status | dynamicText(statusOptions) }} </p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="开标日期"
|
||||
prop="bidopeningdate" >
|
||||
<p>{{ dataForm.bidopeningdate | dynamicText(bidopeningdateOptions) }} </p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="开始日期"
|
||||
prop="startdate" >
|
||||
<p>{{ dataForm.startdate | dynamicText(startdateOptions) }} </p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="审核日期"
|
||||
prop="auditdate" >
|
||||
<p>{{dataForm.auditdate}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="供货完成日期"
|
||||
prop="completiondate" >
|
||||
<p>{{dataForm.completiondate}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="关闭日期"
|
||||
prop="closingdate" >
|
||||
<p>{{dataForm.closingdate}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="回款周期(日)"
|
||||
prop="collectioncycle" >
|
||||
<p>{{dataForm.collectioncycle}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="签订日期"
|
||||
prop="signingdate" >
|
||||
<p>{{dataForm.signingdate}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="截止日期"
|
||||
prop="enddate" >
|
||||
<p>{{dataForm.enddate}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="供应商/客户编"
|
||||
prop="code" >
|
||||
<p>{{dataForm.code}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="供应商/客户名"
|
||||
prop="name" >
|
||||
<p>{{dataForm.name}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="对方合同号"
|
||||
prop="contractno" >
|
||||
<p>{{dataForm.contractno}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="币种 "
|
||||
prop="currency" >
|
||||
<p>{{dataForm.currency}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="数量"
|
||||
prop="num" >
|
||||
<p>{{dataForm.num}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="金额"
|
||||
prop="amount" >
|
||||
<p>{{dataForm.amount}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="库存组织"
|
||||
prop="organization" >
|
||||
<p>{{dataForm.organization}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="备注"
|
||||
prop="remark" >
|
||||
<p>{{dataForm.remark}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" >
|
||||
<el-form-item label="合同分类 "
|
||||
prop="classification" >
|
||||
<p>{{dataForm.classification}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" >
|
||||
<el-form-item label="申报日期"
|
||||
prop="declarationdate" >
|
||||
<p>{{dataForm.declarationdate}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" >
|
||||
<el-form-item label="部门名称"
|
||||
prop="deptname" >
|
||||
<p>{{dataForm.deptname}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" >
|
||||
<el-form-item label="录入人"
|
||||
prop="creatorusername" >
|
||||
<p>{{dataForm.creatorusername}}</p>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-tabs v-model="activejlljvq" tab-position="top" class="mb-20">
|
||||
<el-tab-pane label="物料明细">
|
||||
<el-col :span="24" >
|
||||
<el-form-item label-width="0">
|
||||
<div class="JNPF-common-title">
|
||||
<h2></h2>
|
||||
</div>
|
||||
<el-table :data="dataForm.jg_contract_item0List" size='mini' >
|
||||
<el-table-column type="index" width="50" label="序号" align="center" />
|
||||
<el-table-column prop="materialcode" label="物料编码">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.materialcode}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="materialname" label="物料名称">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.materialname}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="specification" label="规格型号">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.specification}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="unit" label="单位 ">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.unit}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="num" label="数量">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.num}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="price" label="单价">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.price}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="amount" label="金额">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.amount}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="rate" label="税率 ">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.rate}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="notprice" label="不含税单价">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.notprice}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="notamount" label="不含税金额">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.notamount}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="remark" label="备注">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.remark}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-tab-pane >
|
||||
<el-tab-pane label="附件详情">
|
||||
<el-col :span="24" >
|
||||
<el-form-item label-width="0">
|
||||
<div class="JNPF-common-title">
|
||||
<h2></h2>
|
||||
</div>
|
||||
<el-table :data="dataForm.jg_contract_item1List" size='mini' >
|
||||
<el-table-column type="index" width="50" label="序号" align="center" />
|
||||
<el-table-column prop="enclosure" label="附件内容">
|
||||
<template slot-scope="scope">
|
||||
<JNPF-UploadFz v-model="scope.row.enclosure"
|
||||
disabled
|
||||
detailed :fileSize="5" sizeUnit="MB" :limit="9" buttonText="点击上传" >
|
||||
</JNPF-UploadFz>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-tab-pane >
|
||||
</el-tabs>
|
||||
</el-col>
|
||||
</template>
|
||||
</el-form>
|
||||
</el-row>
|
||||
</div>
|
||||
</transition>
|
||||
</template>
|
||||
<script>
|
||||
import request from '@/utils/request'
|
||||
import PrintBrowse from '@/components/PrintBrowse'
|
||||
import jnpf from '@/utils/jnpf'
|
||||
export default {
|
||||
components: {PrintBrowse},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
loading: false,
|
||||
printBrowseVisible: false,
|
||||
printId: '',
|
||||
dataForm: {
|
||||
c_id :'',
|
||||
contracttype : '',
|
||||
contractcode : '',
|
||||
contractname : '',
|
||||
status : "",
|
||||
bidopeningdate : "",
|
||||
startdate : "",
|
||||
auditdate : '',
|
||||
completiondate : '',
|
||||
closingdate : '',
|
||||
collectioncycle : '',
|
||||
signingdate : '',
|
||||
enddate : '',
|
||||
code : '',
|
||||
name : '',
|
||||
contractno : '',
|
||||
currency : '',
|
||||
num : '',
|
||||
amount : '',
|
||||
organization : '',
|
||||
remark : '',
|
||||
classification : '',
|
||||
declarationdate : '',
|
||||
deptname : '',
|
||||
creatorusername : '',
|
||||
jg_contract_item0List:[],
|
||||
jg_contract_item1List:[],
|
||||
},
|
||||
activejlljvq:'1',
|
||||
statusOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
bidopeningdateOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
startdateOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() {
|
||||
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
dataInfo(dataAll){
|
||||
let _dataAll =dataAll
|
||||
for(let i=0;i<_dataAll.jg_contract_item0List.length;i++){
|
||||
var _list = _dataAll.jg_contract_item0List[i];
|
||||
}
|
||||
for(let i=0;i<_dataAll.jg_contract_item1List.length;i++){
|
||||
var _list = _dataAll.jg_contract_item1List[i];
|
||||
_list.enclosure = _list.enclosure? JSON.parse(_list.enclosure):[]
|
||||
}
|
||||
this.dataForm = _dataAll
|
||||
},
|
||||
|
||||
goBack() {
|
||||
this.$emit('refresh')
|
||||
},
|
||||
init(id) {
|
||||
this.dataForm.c_id = id || 0;
|
||||
this.visible = true;
|
||||
this.$nextTick(() => {
|
||||
if(this.dataForm.c_id){
|
||||
this.loading = true
|
||||
request({
|
||||
url: '/api/example/Jg_contract/detail/'+this.dataForm.c_id,
|
||||
method: 'get'
|
||||
}).then(res => {
|
||||
this.dataInfo(res.data)
|
||||
this.loading = false
|
||||
})
|
||||
}
|
||||
|
||||
})
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
</script>
|
@ -0,0 +1,68 @@
|
||||
<template>
|
||||
<el-dialog title="导出数据" :close-on-click-modal="false" :visible.sync="visible"
|
||||
class="JNPF-dialog JNPF-dialog_center" lock-scroll width="600px">
|
||||
<el-form label-position="top" label-width="80px">
|
||||
<el-form-item label="数据选择">
|
||||
<el-radio-group v-model="type">
|
||||
<el-radio :label="0">当前页面数据</el-radio>
|
||||
<el-radio :label="1">全部页面数据</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="导出字段">
|
||||
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll"
|
||||
@change="handleCheckAllChange">全选</el-checkbox>
|
||||
<el-checkbox-group v-model="columns" @change="handleCheckedChange">
|
||||
<el-checkbox v-for="item in columnList" :label="item.prop" :key="item.prop">
|
||||
{{item.label}}
|
||||
</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="visible=false">取 消</el-button>
|
||||
<el-button type="primary" @click="downLoad">导 出</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
btnLoading: false,
|
||||
type: 0,
|
||||
columns: [],
|
||||
checkAll: true,
|
||||
isIndeterminate: false,
|
||||
columnList: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init(columnList) {
|
||||
this.visible = true
|
||||
this.checkAll = true
|
||||
this.isIndeterminate = false
|
||||
this.columnList = columnList
|
||||
this.columns = columnList.map(o => o.prop)
|
||||
},
|
||||
handleCheckAllChange(val) {
|
||||
this.columns = val ? this.columnList.map(o => o.prop) : [];
|
||||
this.isIndeterminate = false;
|
||||
},
|
||||
handleCheckedChange(value) {
|
||||
let checkedCount = value.length;
|
||||
this.checkAll = checkedCount === this.columnList.length;
|
||||
this.isIndeterminate = checkedCount > 0 && checkedCount < this.columnList.length;
|
||||
},
|
||||
downLoad() {
|
||||
this.$emit('download', { dataType: this.type, selectKey: this.columns.join(',') })
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
>>> .el-dialog__body {
|
||||
padding: 20px !important;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,574 @@
|
||||
<template>
|
||||
<transition name="el-zoom-in-center">
|
||||
<div class="JNPF-preview-main">
|
||||
<div class="JNPF-common-page-header">
|
||||
<el-page-header @back="goBack"
|
||||
:content="!dataForm.c_id ? '新建' : isDetail ? '详情':'编辑'"/>
|
||||
<div class="options">
|
||||
<el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> 保 存</el-button>
|
||||
<el-button @click="goBack"> 取 消</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<el-row :gutter="15" class=" main" :style="{margin: '0 auto',width: '100%'}">
|
||||
<el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px" label-position="right" >
|
||||
<template v-if="!loading">
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="合同类型 "
|
||||
prop="contracttype" >
|
||||
<el-input v-model="dataForm.contracttype"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="合同编码"
|
||||
prop="contractcode" >
|
||||
<el-input v-model="dataForm.contractcode"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="合同名称"
|
||||
prop="contractname" >
|
||||
<el-input v-model="dataForm.contractname"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="合同状态"
|
||||
prop="status" >
|
||||
<el-select v-model="dataForm.status"
|
||||
placeholder="请选择" clearable :style='{"width":"100%"}'>
|
||||
<el-option v-for="(item, index) in statusOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option>
|
||||
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="开标日期"
|
||||
prop="bidopeningdate" >
|
||||
<el-select v-model="dataForm.bidopeningdate"
|
||||
placeholder="请选择" clearable :style='{"width":"100%"}'>
|
||||
<el-option v-for="(item, index) in bidopeningdateOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option>
|
||||
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="开始日期"
|
||||
prop="startdate" >
|
||||
<el-select v-model="dataForm.startdate"
|
||||
placeholder="请选择" clearable :style='{"width":"100%"}'>
|
||||
<el-option v-for="(item, index) in startdateOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option>
|
||||
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="审核日期"
|
||||
prop="auditdate" >
|
||||
<el-input v-model="dataForm.auditdate"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="供货完成日期"
|
||||
prop="completiondate" >
|
||||
<el-input v-model="dataForm.completiondate"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="关闭日期"
|
||||
prop="closingdate" >
|
||||
<el-input v-model="dataForm.closingdate"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="回款周期(日)"
|
||||
prop="collectioncycle" >
|
||||
<el-input v-model="dataForm.collectioncycle"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="签订日期"
|
||||
prop="signingdate" >
|
||||
<el-input v-model="dataForm.signingdate"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="截止日期"
|
||||
prop="enddate" >
|
||||
<el-input v-model="dataForm.enddate"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="供应商/客户编"
|
||||
prop="code" >
|
||||
<el-input v-model="dataForm.code"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="供应商/客户名"
|
||||
prop="name" >
|
||||
<el-input v-model="dataForm.name"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="对方合同号"
|
||||
prop="contractno" >
|
||||
<el-input v-model="dataForm.contractno"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="币种 "
|
||||
prop="currency" >
|
||||
<el-input v-model="dataForm.currency"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="数量"
|
||||
prop="num" >
|
||||
<el-input v-model="dataForm.num"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="金额"
|
||||
prop="amount" >
|
||||
<el-input v-model="dataForm.amount"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="库存组织"
|
||||
prop="organization" >
|
||||
<el-input v-model="dataForm.organization"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="备注"
|
||||
prop="remark" >
|
||||
<el-input v-model="dataForm.remark"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" >
|
||||
<el-form-item label="合同分类 "
|
||||
prop="classification" >
|
||||
<el-input v-model="dataForm.classification"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" >
|
||||
<el-form-item label="申报日期"
|
||||
prop="declarationdate" >
|
||||
<el-input v-model="dataForm.declarationdate"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" >
|
||||
<el-form-item label="部门名称"
|
||||
prop="deptname" >
|
||||
<el-input v-model="dataForm.deptname"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" >
|
||||
<el-form-item label="录入人"
|
||||
prop="creatorusername" >
|
||||
<el-input v-model="dataForm.creatorusername"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-tabs v-model="activejlljvq" tab-position="top" class="mb-20">
|
||||
<el-tab-pane label="物料明细">
|
||||
<el-col :span="24" >
|
||||
<el-form-item label-width="0">
|
||||
<div class="JNPF-common-title">
|
||||
<h2></h2>
|
||||
</div>
|
||||
<el-table :data="dataForm.jg_contract_item0List" size='mini' >
|
||||
<el-table-column type="index" width="50" label="序号" align="center" />
|
||||
<el-table-column prop="materialcode" label="物料编码">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.materialcode"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="materialname" label="物料名称">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.materialname"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="specification" label="规格型号">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.specification"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="unit" label="单位 ">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.unit"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="num" label="数量">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.num"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="price" label="单价">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.price"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="amount" label="金额">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.amount"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="rate" label="税率 ">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.rate"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="notprice" label="不含税单价">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.notprice"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="notamount" label="不含税金额">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.notamount"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="remark" label="备注">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.remark"
|
||||
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="50" >
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" class="JNPF-table-delBtn" @click="deljg_contract_item0List(scope.$index)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="table-actions" @click="addjg_contract_item0List()">
|
||||
<el-button type="text" icon="el-icon-plus">添加</el-button>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-tab-pane >
|
||||
<el-tab-pane label="附件详情">
|
||||
<el-col :span="24" >
|
||||
<el-form-item label-width="0">
|
||||
<div class="JNPF-common-title">
|
||||
<h2></h2>
|
||||
</div>
|
||||
<el-table :data="dataForm.jg_contract_item1List" size='mini' >
|
||||
<el-table-column type="index" width="50" label="序号" align="center" />
|
||||
<el-table-column prop="enclosure" label="附件内容">
|
||||
<template slot-scope="scope">
|
||||
<JNPF-UploadFz v-model="scope.row.enclosure"
|
||||
:fileSize="5" sizeUnit="MB" :limit="9" buttonText="点击上传" >
|
||||
</JNPF-UploadFz>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="50" >
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" class="JNPF-table-delBtn" @click="deljg_contract_item1List(scope.$index)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="table-actions" @click="addjg_contract_item1List()">
|
||||
<el-button type="text" icon="el-icon-plus">添加</el-button>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-tab-pane >
|
||||
</el-tabs>
|
||||
</el-col>
|
||||
</template>
|
||||
</el-form>
|
||||
</el-row>
|
||||
</div>
|
||||
</transition>
|
||||
</template>
|
||||
<script>
|
||||
import request from '@/utils/request'
|
||||
import { getDataInterfaceRes } from '@/api/systemData/dataInterface'
|
||||
import { getDictionaryDataSelector } from '@/api/systemData/dictionary'
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
loading: false,
|
||||
isDetail: false,
|
||||
dataForm: {
|
||||
contracttype : '',
|
||||
contractcode : '',
|
||||
contractname : '',
|
||||
status : "",
|
||||
bidopeningdate : "",
|
||||
startdate : "",
|
||||
auditdate : '',
|
||||
completiondate : '',
|
||||
closingdate : '',
|
||||
collectioncycle : '',
|
||||
signingdate : '',
|
||||
enddate : '',
|
||||
code : '',
|
||||
name : '',
|
||||
contractno : '',
|
||||
currency : '',
|
||||
num : '',
|
||||
amount : '',
|
||||
organization : '',
|
||||
remark : '',
|
||||
classification : '',
|
||||
declarationdate : '',
|
||||
deptname : '',
|
||||
creatorusername : '',
|
||||
jg_contract_item0List:[],
|
||||
jg_contract_item1List:[],
|
||||
},
|
||||
activejlljvq:'1',
|
||||
rules:
|
||||
{
|
||||
contractcode: [
|
||||
],
|
||||
},
|
||||
statusOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
bidopeningdateOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
startdateOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() {
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
jg_contract_item0Exist() {
|
||||
let isOk = true;
|
||||
for(let i=0;i<this.dataForm.jg_contract_item0List.length;i++){
|
||||
const e = this.dataForm.jg_contract_item0List[i];
|
||||
}
|
||||
return isOk;
|
||||
},
|
||||
jg_contract_item1Exist() {
|
||||
let isOk = true;
|
||||
for(let i=0;i<this.dataForm.jg_contract_item1List.length;i++){
|
||||
const e = this.dataForm.jg_contract_item1List[i];
|
||||
}
|
||||
return isOk;
|
||||
},
|
||||
goBack() {
|
||||
this.$emit('refresh')
|
||||
},
|
||||
clearData(data){
|
||||
for (let key in data) {
|
||||
if (data[key] instanceof Array) {
|
||||
data[key] = [];
|
||||
} else if (data[key] instanceof Object) {
|
||||
this.clearData(data[key]);
|
||||
} else {
|
||||
data[key] = "";
|
||||
}
|
||||
}
|
||||
},
|
||||
init(id, isDetail) {
|
||||
this.dataForm.c_id = id || 0;
|
||||
this.visible = true;
|
||||
this.isDetail = isDetail || false;
|
||||
this.$nextTick(() => {
|
||||
this.$refs['elForm'].resetFields();
|
||||
if(this.dataForm.c_id){
|
||||
this.loading = true
|
||||
request({
|
||||
url: '/api/example/Jg_contract/'+this.dataForm.c_id,
|
||||
method: 'get'
|
||||
}).then(res => {
|
||||
this.dataInfo(res.data)
|
||||
this.loading = false
|
||||
});
|
||||
}else{
|
||||
this.clearData(this.dataForm)
|
||||
}
|
||||
});
|
||||
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
|
||||
},
|
||||
// 表单提交
|
||||
dataFormSubmit() {
|
||||
this.$refs['elForm'].validate((valid) => {
|
||||
if (valid) {
|
||||
if (!this.jg_contract_item0Exist()) return
|
||||
if (!this.jg_contract_item1Exist()) return
|
||||
this.request()
|
||||
}
|
||||
})
|
||||
},
|
||||
request() {
|
||||
var _data =this.dataList()
|
||||
if (!this.dataForm.c_id) {
|
||||
request({
|
||||
url: '/api/example/Jg_contract',
|
||||
method: 'post',
|
||||
data: _data
|
||||
}).then((res) => {
|
||||
this.$message({
|
||||
message: res.msg,
|
||||
type: 'success',
|
||||
duration: 1000,
|
||||
onClose: () => {
|
||||
this.visible = false
|
||||
this.$emit('refresh', true)
|
||||
}
|
||||
})
|
||||
})
|
||||
}else{
|
||||
request({
|
||||
url: '/api/example/Jg_contract/'+this.dataForm.c_id,
|
||||
method: 'PUT',
|
||||
data: _data
|
||||
}).then((res) => {
|
||||
this.$message({
|
||||
message: res.msg,
|
||||
type: 'success',
|
||||
duration: 1000,
|
||||
onClose: () => {
|
||||
this.visible = false
|
||||
this.$emit('refresh', true)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
},
|
||||
addjg_contract_item0List(){
|
||||
let item = {
|
||||
materialcode:undefined,
|
||||
materialname:undefined,
|
||||
specification:undefined,
|
||||
unit:undefined,
|
||||
num:undefined,
|
||||
price:undefined,
|
||||
amount:undefined,
|
||||
rate:undefined,
|
||||
notprice:undefined,
|
||||
notamount:undefined,
|
||||
remark:undefined,
|
||||
}
|
||||
this.dataForm.jg_contract_item0List.push(item)
|
||||
},
|
||||
deljg_contract_item0List(index) {
|
||||
this.dataForm.jg_contract_item0List.splice(index, 1);
|
||||
},
|
||||
addjg_contract_item1List(){
|
||||
let item = {
|
||||
enclosure:undefined,
|
||||
}
|
||||
this.dataForm.jg_contract_item1List.push(item)
|
||||
},
|
||||
deljg_contract_item1List(index) {
|
||||
this.dataForm.jg_contract_item1List.splice(index, 1);
|
||||
},
|
||||
dataList(){
|
||||
var _data = JSON.parse(JSON.stringify(this.dataForm));
|
||||
for(let i=0;i<_data.jg_contract_item0List.length;i++){
|
||||
var _list = _data.jg_contract_item0List[i];
|
||||
}
|
||||
for(let i=0;i<_data.jg_contract_item1List.length;i++){
|
||||
var _list = _data.jg_contract_item1List[i];
|
||||
_list.enclosure = JSON.stringify(_list.enclosure)
|
||||
}
|
||||
return _data;
|
||||
},
|
||||
dataInfo(dataAll){
|
||||
let _dataAll =dataAll
|
||||
for(let i=0;i<_dataAll.jg_contract_item0List.length;i++){
|
||||
var _list = _dataAll.jg_contract_item0List[i];
|
||||
}
|
||||
for(let i=0;i<_dataAll.jg_contract_item1List.length;i++){
|
||||
var _list = _dataAll.jg_contract_item1List[i];
|
||||
_list.enclosure = JSON.parse(_list.enclosure)
|
||||
}
|
||||
this.dataForm = _dataAll
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
</script>
|
@ -0,0 +1,281 @@
|
||||
<template>
|
||||
<div class="JNPF-common-layout">
|
||||
|
||||
<div class="JNPF-common-layout-center">
|
||||
<el-row class="JNPF-common-search-box" :gutter="16">
|
||||
<el-form @submit.native.prevent>
|
||||
<el-col :span="6">
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" @click="search()">查询</el-button>
|
||||
<el-button icon="el-icon-refresh-right" @click="reset()">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-form>
|
||||
</el-row>
|
||||
<div class="JNPF-common-layout-main JNPF-flex-main">
|
||||
<div class="JNPF-common-head">
|
||||
<div>
|
||||
<el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">新增
|
||||
</el-button>
|
||||
<el-button type="text" icon="el-icon-download" @click="exportData()" >导出
|
||||
</el-button>
|
||||
<el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()" >批量删除
|
||||
</el-button>
|
||||
</div>
|
||||
<div class="JNPF-common-head-right">
|
||||
<el-tooltip effect="dark" content="刷新" placement="top">
|
||||
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false"
|
||||
@click="reset()"/>
|
||||
</el-tooltip>
|
||||
<screenfull isContainer/>
|
||||
</div>
|
||||
</div>
|
||||
<JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c @selection-change="handleSelectionChange">
|
||||
<el-table-column prop="contractcode" label="合同编码" width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="contractname" label="合同名称" width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="contractno" label="对方合同号" width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="contracttype" label="合同类型 " width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="classification" label="合同分类 " width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="declarationdate" label="申报日期" width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="name" label="供应商/客户名" width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="num" label="数量" width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="amount" label="金额" width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="deptname" label="部门名称" width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="remark" label="备注" width="0" align="left"
|
||||
/>
|
||||
<el-table-column prop="creatorusername" label="录入人" width="0" align="left"
|
||||
/>
|
||||
<el-table-column label="合同状态" width="0" prop="status" algin="left"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.status | dynamicText(statusOptions) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right"
|
||||
width="150" >
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text"
|
||||
@click="addOrUpdateHandle(scope.row.c_id)" >编辑
|
||||
</el-button>
|
||||
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.c_id)">删除
|
||||
</el-button>
|
||||
<el-button type="text"
|
||||
@click="goDetail(scope.row.c_id)">详情
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</JNPF-table>
|
||||
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData"/>
|
||||
</div>
|
||||
</div>
|
||||
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/>
|
||||
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/>
|
||||
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import request from '@/utils/request'
|
||||
import {getDictionaryDataSelector} from '@/api/systemData/dictionary'
|
||||
import JNPFForm from './Form'
|
||||
import ExportBox from './ExportBox'
|
||||
import {getDataInterfaceRes} from '@/api/systemData/dataInterface'
|
||||
import Detail from './Detail'
|
||||
|
||||
export default {
|
||||
components: {JNPFForm, ExportBox,Detail},
|
||||
data() {
|
||||
return {
|
||||
detailVisible: false,
|
||||
query: {
|
||||
},
|
||||
treeProps: {
|
||||
children: 'children',
|
||||
label: 'fullName',
|
||||
value: 'id'
|
||||
},
|
||||
list: [],
|
||||
listLoading: true,
|
||||
multipleSelection: [], total: 0,
|
||||
listQuery: {
|
||||
currentPage: 1,
|
||||
pageSize: 20,
|
||||
sort: "desc",
|
||||
sidx: "",
|
||||
},
|
||||
formVisible: false,
|
||||
exportBoxVisible: false,
|
||||
columnList: [
|
||||
{prop: 'contractcode', label: '合同编码'},
|
||||
{prop: 'contractname', label: '合同名称'},
|
||||
{prop: 'contractno', label: '对方合同号'},
|
||||
{prop: 'contracttype', label: '合同类型 '},
|
||||
{prop: 'classification', label: '合同分类 '},
|
||||
{prop: 'declarationdate', label: '申报日期'},
|
||||
{prop: 'name', label: '供应商/客户名'},
|
||||
{prop: 'num', label: '数量'},
|
||||
{prop: 'amount', label: '金额'},
|
||||
{prop: 'deptname', label: '部门名称'},
|
||||
{prop: 'remark', label: '备注'},
|
||||
{prop: 'creatorusername', label: '录入人'},
|
||||
{prop: 'status', label: '合同状态'},
|
||||
],
|
||||
statusOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
statusProps:{"label":"fullName","value":"id"},
|
||||
bidopeningdateOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
bidopeningdateProps:{"label":"fullName","value":"id"},
|
||||
startdateOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
startdateProps:{"label":"fullName","value":"id"},
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
menuId() {
|
||||
return this.$route.meta.modelId || ''
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.initData()
|
||||
},
|
||||
methods: {
|
||||
goDetail(id){
|
||||
this.detailVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.Detail.init(id)
|
||||
})
|
||||
},
|
||||
sortChange({column, prop, order}) {
|
||||
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc'
|
||||
this.listQuery.sidx = !order ? '' : prop
|
||||
this.initData()
|
||||
},
|
||||
initData() {
|
||||
this.listLoading = true;
|
||||
let _query = {
|
||||
...this.listQuery,
|
||||
...this.query,
|
||||
menuId:this.menuId
|
||||
};
|
||||
request({
|
||||
url: `/api/example/Jg_contract/getList`,
|
||||
method: 'post',
|
||||
data: _query
|
||||
}).then(res => {
|
||||
var _list =[];
|
||||
for(let i=0;i<res.data.list.length;i++){
|
||||
let _data = res.data.list[i];
|
||||
_list.push(_data)
|
||||
}
|
||||
this.list = _list
|
||||
this.total = res.data.pagination.total
|
||||
|
||||
this.listLoading = false
|
||||
})
|
||||
},
|
||||
handleDel(id) {
|
||||
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
request({
|
||||
url: `/api/example/Jg_contract/${id}`,
|
||||
method: 'DELETE'
|
||||
}).then(res => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: res.msg,
|
||||
onClose: () => {
|
||||
this.initData()
|
||||
}
|
||||
});
|
||||
})
|
||||
}).catch(() => {
|
||||
});
|
||||
},
|
||||
handleSelectionChange(val) {
|
||||
const res = val.map(item => item.c_id)
|
||||
this.multipleSelection = res
|
||||
},
|
||||
handleBatchRemoveDel() {
|
||||
if (!this.multipleSelection.length) {
|
||||
this.$message({
|
||||
type: 'error',
|
||||
message: '请选择一条数据',
|
||||
duration: 1500,
|
||||
})
|
||||
return
|
||||
}
|
||||
const ids = this.multipleSelection.join()
|
||||
this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', {
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
request({
|
||||
url: `/api/example/Jg_contract/batchRemove/${ids}`,
|
||||
method: 'DELETE'
|
||||
}).then(res => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: res.msg,
|
||||
onClose: () => {
|
||||
this.initData()
|
||||
}
|
||||
});
|
||||
})
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
addOrUpdateHandle(id, isDetail) {
|
||||
this.formVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.JNPFForm.init(id, isDetail)
|
||||
})
|
||||
},
|
||||
exportData() {
|
||||
this.exportBoxVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.ExportBox.init(this.columnList)
|
||||
})
|
||||
},
|
||||
download(data) {
|
||||
let query = {...data, ...this.listQuery, ...this.query,menuId:this.menuId}
|
||||
request({
|
||||
url: `/api/example/Jg_contract/Actions/Export`,
|
||||
method: 'GET',
|
||||
data: query
|
||||
}).then(res => {
|
||||
if (!res.data.url) return
|
||||
this.jnpf.downloadFile(res.data.url)
|
||||
this.$refs.ExportBox.visible = false
|
||||
this.exportBoxVisible = false
|
||||
})
|
||||
},
|
||||
search() {
|
||||
this.listQuery = {
|
||||
currentPage: 1,
|
||||
pageSize: 20,
|
||||
sort: "desc",
|
||||
sidx: "",
|
||||
}
|
||||
this.initData()
|
||||
},
|
||||
refresh(isrRefresh) {
|
||||
this.formVisible = false
|
||||
if (isrRefresh) this.reset()
|
||||
},
|
||||
reset() {
|
||||
for (let key in this.query) {
|
||||
this.query[key] = undefined
|
||||
}
|
||||
this.search()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
Loading…
Reference in new issue