parent
7287e3dc14
commit
38c86d74b7
@ -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.SubjectBasicExclusiveMapper">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</mapper>
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,141 @@
|
|||||||
|
<template>
|
||||||
|
<transition name="el-zoom-in-center">
|
||||||
|
<div class="JNPF-preview-main">
|
||||||
|
<Detail v-if="detailVisible" ref="Detail" @close="detailVisible = false" />
|
||||||
|
<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="formRef" :model="dataForm" size="small" label-width="100px" label-position="right" >
|
||||||
|
<template v-if="!loading">
|
||||||
|
<el-col :span="8" >
|
||||||
|
<jnpf-form-tip-item label="一级供应商"
|
||||||
|
prop="firstSubject" >
|
||||||
|
<p>{{dataForm.firstSubject}}</p>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" >
|
||||||
|
<jnpf-form-tip-item label="是否为独家采购" label-width="120px"
|
||||||
|
prop="isExclusive" >
|
||||||
|
<p>{{ dataForm.isExclusive }} </p>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" >
|
||||||
|
<jnpf-form-tip-item label="月份"
|
||||||
|
prop="mouth" >
|
||||||
|
<p>{{dataForm.mouth}}</p>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24" >
|
||||||
|
<jnpf-form-tip-item label="一级供应商主要客户名称"
|
||||||
|
prop="subjects" >
|
||||||
|
<p>{{dataForm.subjects}}</p>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" >
|
||||||
|
<jnpf-form-tip-item label="一级供应商月开票金额"
|
||||||
|
prop="mouthAmount" >
|
||||||
|
<p>{{dataForm.mouthAmount}}</p>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" >
|
||||||
|
<jnpf-form-tip-item label="一级供应商月结算金额"
|
||||||
|
prop="settlementAmount" >
|
||||||
|
<p>{{dataForm.settlementAmount}}</p>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" >
|
||||||
|
<jnpf-form-tip-item label="我公司月采购金额占比"
|
||||||
|
prop="rateAmount" >
|
||||||
|
<p>{{dataForm.rateAmount}}</p>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
|
</el-form>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
</transition>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
import { getConfigData } from '@/api/onlineDev/visualDev'
|
||||||
|
import jnpf from '@/utils/jnpf'
|
||||||
|
import Detail from '@/views/basic/dynamicModel/list/detail'
|
||||||
|
import { thousandsFormat } from "@/components/Generator/utils/index"
|
||||||
|
export default {
|
||||||
|
components: { Detail},
|
||||||
|
props: [],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
visible: false,
|
||||||
|
detailVisible: false,
|
||||||
|
loading: false,
|
||||||
|
|
||||||
|
dataForm: {
|
||||||
|
id :'',
|
||||||
|
firstSubject : '',
|
||||||
|
isExclusive : '',
|
||||||
|
mouth : '',
|
||||||
|
subjects : '',
|
||||||
|
mouthAmount : '',
|
||||||
|
settlementAmount : '',
|
||||||
|
rateAmount : '',
|
||||||
|
},
|
||||||
|
isExclusiveOptions:[{"fullName":"是","id":"1"},{"fullName":"不是","id":"2"}],
|
||||||
|
isExclusiveProps:{"label":"fullName","value":"id" },
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
watch: {},
|
||||||
|
created() {
|
||||||
|
|
||||||
|
},
|
||||||
|
mounted() {},
|
||||||
|
methods: {
|
||||||
|
toDetail(defaultValue, modelId) {
|
||||||
|
if (!defaultValue) return
|
||||||
|
getConfigData(modelId).then(res => {
|
||||||
|
if (!res.data || !res.data.formData) return
|
||||||
|
let formData = JSON.parse(res.data.formData)
|
||||||
|
formData.popupType = 'general'
|
||||||
|
this.detailVisible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.Detail.init(formData, modelId, defaultValue)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
dataInfo(dataAll){
|
||||||
|
let _dataAll =dataAll
|
||||||
|
this.dataForm = _dataAll
|
||||||
|
},
|
||||||
|
|
||||||
|
goBack() {
|
||||||
|
this.$emit('refresh')
|
||||||
|
},
|
||||||
|
init(id) {
|
||||||
|
this.dataForm.id = id || 0;
|
||||||
|
this.visible = true;
|
||||||
|
this.$nextTick(() => {
|
||||||
|
if(this.dataForm.id){
|
||||||
|
this.loading = true
|
||||||
|
request({
|
||||||
|
url: '/api/scm/SubjectBasicExclusive/detail/'+this.dataForm.id,
|
||||||
|
method: 'get'
|
||||||
|
}).then(res => {
|
||||||
|
this.dataInfo(res.data)
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,474 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<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.id ? '新建':'编辑'" />
|
||||||
|
<div class="options">
|
||||||
|
<el-dropdown class="dropdown" placement="bottom">
|
||||||
|
<el-button style="width:70px">
|
||||||
|
更 多<i class="el-icon-arrow-down el-icon--right"></i>
|
||||||
|
</el-button>
|
||||||
|
<el-dropdown-menu slot="dropdown">
|
||||||
|
<template v-if="dataForm.id">
|
||||||
|
<el-dropdown-item @click.native="prev" :disabled='prevDis'>
|
||||||
|
{{'上一条'}}
|
||||||
|
</el-dropdown-item>
|
||||||
|
<el-dropdown-item @click.native="next" :disabled='nextDis'>
|
||||||
|
{{'下一条'}}
|
||||||
|
</el-dropdown-item>
|
||||||
|
</template>
|
||||||
|
<el-dropdown-item type="primary" @click.native="dataFormSubmit(2)"
|
||||||
|
:loading="continueBtnLoading" :disabled='btnLoading'>
|
||||||
|
{{!dataForm.id ?'确定并新增':'确定并继续'}}</el-dropdown-item>
|
||||||
|
</el-dropdown-menu>
|
||||||
|
</el-dropdown>
|
||||||
|
<el-button type="primary" @click="dataFormSubmit()" :loading="btnLoading"
|
||||||
|
:disabled='continueBtnLoading'> 保 存</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="formRef" :model="dataForm" :rules="dataRule" size="small" label-width="100px"
|
||||||
|
label-position="right">
|
||||||
|
<template v-if="!loading">
|
||||||
|
<!-- 具体表单 -->
|
||||||
|
<el-col :span="8">
|
||||||
|
<jnpf-form-tip-item label="客户名称" prop="firstSubject">
|
||||||
|
<JnpfInput v-model="dataForm.firstSubject" @change="changeData('firstSubject',-1)"
|
||||||
|
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||||
|
</JnpfInput>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<jnpf-form-tip-item label="是否为独家供应" label-width="120px" prop="isExclusive">
|
||||||
|
<JnpfRadio v-model="dataForm.isExclusive" @change="changeData('isExclusive',-1)"
|
||||||
|
optionType="button" direction="horizontal" size="medium"
|
||||||
|
:options="isExclusiveOptions" :props="isExclusiveProps">
|
||||||
|
</JnpfRadio>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="8">
|
||||||
|
<jnpf-form-tip-item label="月份" prop="mouth">
|
||||||
|
<JnpfDatePicker v-model="dataForm.mouth" @change="changeData('mouth',-1)"
|
||||||
|
:startTime="dateTime(false,1,1,'','')" :endTime="dateTime(false,1,1,'','')"
|
||||||
|
placeholder="请选择" clearable :style='{"width":"100%"}' type="month"
|
||||||
|
format="yyyy-MM">
|
||||||
|
</JnpfDatePicker>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<jnpf-form-tip-item label="主要合作商名称" prop="subjects">
|
||||||
|
<JnpfInput v-model="dataForm.subjects" @change="changeData('subjects',-1)"
|
||||||
|
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||||
|
</JnpfInput>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<jnpf-form-tip-item label="客户月采购金额" prop="mouthAmount">
|
||||||
|
<JnpfInput v-model="dataForm.mouthAmount" @change="changeData('mouthAmount',-1)"
|
||||||
|
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||||
|
</JnpfInput>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<jnpf-form-tip-item label="本月我公司月销售金额" prop="settlementAmount">
|
||||||
|
<JnpfInput v-model="dataForm.settlementAmount"
|
||||||
|
@change="changeData('settlementAmount',-1)" placeholder="请输入" clearable
|
||||||
|
:style='{"width":"100%"}'>
|
||||||
|
</JnpfInput>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<jnpf-form-tip-item label="我公司月销售金额占比" prop="rateAmount">
|
||||||
|
<JnpfInput v-model="dataForm.rateAmount" @change="changeData('rateAmount',-1)"
|
||||||
|
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||||
|
</JnpfInput>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<!-- 表单结束 -->
|
||||||
|
</template>
|
||||||
|
</el-form>
|
||||||
|
<SelectDialog v-if="selectDialogVisible" :config="currTableConf" :formData="dataForm"
|
||||||
|
ref="selectDialog" @select="addForSelect" @close="selectDialogVisible=false" />
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
</transition>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import request from '@/utils/request'
|
||||||
|
import { mapGetters } from "vuex";
|
||||||
|
import { getDataInterfaceRes } from '@/api/systemData/dataInterface'
|
||||||
|
import { getDictionaryDataSelector } from '@/api/systemData/dictionary'
|
||||||
|
import { getDefaultCurrentValueUserId } from '@/api/permission/user'
|
||||||
|
import { getDefaultCurrentValueDepartmentId } from '@/api/permission/organize'
|
||||||
|
import { getDateDay, getLaterData, getBeforeData, getBeforeTime, getLaterTime } from '@/components/Generator/utils/index.js'
|
||||||
|
import { thousandsFormat } from "@/components/Generator/utils/index"
|
||||||
|
export default {
|
||||||
|
components: {},
|
||||||
|
props: [],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dataFormSubmitType: 0,
|
||||||
|
continueBtnLoading: false,
|
||||||
|
index: 0,
|
||||||
|
prevDis: false,
|
||||||
|
nextDis: false,
|
||||||
|
allList: [],
|
||||||
|
visible: false,
|
||||||
|
loading: false,
|
||||||
|
btnLoading: false,
|
||||||
|
formRef: 'formRef',
|
||||||
|
setting: {},
|
||||||
|
eventType: '',
|
||||||
|
userBoxVisible: false,
|
||||||
|
selectDialogVisible: false,
|
||||||
|
currTableConf: {},
|
||||||
|
dataValueAll: {},
|
||||||
|
addTableConf: {
|
||||||
|
},
|
||||||
|
//可选范围默认值
|
||||||
|
ableAll: {
|
||||||
|
},
|
||||||
|
tableRows: {
|
||||||
|
},
|
||||||
|
Vmodel: "",
|
||||||
|
currVmodel: "",
|
||||||
|
dataForm: {
|
||||||
|
firstSubject: undefined,
|
||||||
|
isExclusive: undefined,
|
||||||
|
mouth: undefined,
|
||||||
|
subjects: undefined,
|
||||||
|
mouthAmount: undefined,
|
||||||
|
settlementAmount: undefined,
|
||||||
|
rateAmount: undefined,
|
||||||
|
version: 0,
|
||||||
|
type: "2",
|
||||||
|
|
||||||
|
},
|
||||||
|
tableRequiredData: {},
|
||||||
|
dataRule:
|
||||||
|
{
|
||||||
|
firstSubject: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入',
|
||||||
|
trigger: 'blur'
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
isExclusiveOptions: [{ "fullName": "是", "id": "1" }, { "fullName": "不是", "id": "2" }],
|
||||||
|
isExclusiveProps: { "label": "fullName", "value": "id" },
|
||||||
|
childIndex: -1,
|
||||||
|
isEdit: false,
|
||||||
|
interfaceRes: {
|
||||||
|
firstSubject: [],
|
||||||
|
isExclusive: [],
|
||||||
|
mouth: [],
|
||||||
|
subjects: [],
|
||||||
|
mouthAmount: [],
|
||||||
|
settlementAmount: [],
|
||||||
|
rateAmount: [],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters(['userInfo'])
|
||||||
|
},
|
||||||
|
watch: {},
|
||||||
|
created() {
|
||||||
|
this.dataAll()
|
||||||
|
this.initDefaultData()
|
||||||
|
this.dataValueAll = JSON.parse(JSON.stringify(this.dataForm))
|
||||||
|
},
|
||||||
|
mounted() { },
|
||||||
|
methods: {
|
||||||
|
prev() {
|
||||||
|
this.index--
|
||||||
|
if (this.index === 0) {
|
||||||
|
this.prevDis = true
|
||||||
|
}
|
||||||
|
this.nextDis = false
|
||||||
|
for (let index = 0; index < this.allList.length; index++) {
|
||||||
|
const element = this.allList[index];
|
||||||
|
if (this.index == index) {
|
||||||
|
this.getInfo(element.id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
next() {
|
||||||
|
this.index++
|
||||||
|
if (this.index === this.allList.length - 1) {
|
||||||
|
this.nextDis = true
|
||||||
|
}
|
||||||
|
this.prevDis = false
|
||||||
|
for (let index = 0; index < this.allList.length; index++) {
|
||||||
|
const element = this.allList[index];
|
||||||
|
if (this.index == index) {
|
||||||
|
this.getInfo(element.id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getInfo(id) {
|
||||||
|
request({
|
||||||
|
url: '/api/scm/SubjectBasicExclusive/' + id,
|
||||||
|
method: 'get'
|
||||||
|
}).then(res => {
|
||||||
|
this.dataInfo(res.data)
|
||||||
|
});
|
||||||
|
},
|
||||||
|
goBack() {
|
||||||
|
this.visible = false
|
||||||
|
this.$emit('refreshDataList', true)
|
||||||
|
},
|
||||||
|
changeData(model, index) {
|
||||||
|
this.isEdit = false
|
||||||
|
this.childIndex = index
|
||||||
|
let modelAll = model.split("-");
|
||||||
|
let faceMode = "";
|
||||||
|
for (let i = 0; i < modelAll.length; i++) {
|
||||||
|
faceMode += modelAll[i];
|
||||||
|
}
|
||||||
|
for (let key in this.interfaceRes) {
|
||||||
|
if (key != faceMode) {
|
||||||
|
let faceReList = this.interfaceRes[key]
|
||||||
|
for (let i = 0; i < faceReList.length; i++) {
|
||||||
|
if (faceReList[i].relationField == model) {
|
||||||
|
let options = 'get' + key + 'Options';
|
||||||
|
if (this[options]) {
|
||||||
|
this[options]()
|
||||||
|
}
|
||||||
|
this.changeData(key, index)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
changeDataFormData(type, data, model, index, defaultValue) {
|
||||||
|
if (!this.isEdit) {
|
||||||
|
if (type == 2) {
|
||||||
|
for (let i = 0; i < this.dataForm[data].length; i++) {
|
||||||
|
if (index == -1) {
|
||||||
|
this.dataForm[data][i][model] = defaultValue
|
||||||
|
} else if (index == i) {
|
||||||
|
this.dataForm[data][i][model] = defaultValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.dataForm[data] = defaultValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dataAll() {
|
||||||
|
},
|
||||||
|
goBack() {
|
||||||
|
this.$emit('refresh')
|
||||||
|
},
|
||||||
|
clearData() {
|
||||||
|
this.dataForm = JSON.parse(JSON.stringify(this.dataValueAll))
|
||||||
|
},
|
||||||
|
init(id, isDetail, allList) {
|
||||||
|
this.prevDis = false
|
||||||
|
this.nextDis = false
|
||||||
|
this.allList = allList || []
|
||||||
|
if (allList.length) {
|
||||||
|
this.index = this.allList.findIndex(item => item.id === id)
|
||||||
|
if (this.index == 0) {
|
||||||
|
this.prevDis = true
|
||||||
|
}
|
||||||
|
if (this.index == this.allList.length - 1) {
|
||||||
|
this.nextDis = true
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.prevDis = true
|
||||||
|
this.nextDis = true
|
||||||
|
}
|
||||||
|
this.dataForm.id = id || 0;
|
||||||
|
this.visible = true;
|
||||||
|
this.$nextTick(() => {
|
||||||
|
if (this.dataForm.id) {
|
||||||
|
this.loading = true
|
||||||
|
request({
|
||||||
|
url: '/api/scm/SubjectBasicExclusive/' + this.dataForm.id,
|
||||||
|
method: 'get'
|
||||||
|
}).then(res => {
|
||||||
|
this.dataInfo(res.data)
|
||||||
|
this.loading = false
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.clearData()
|
||||||
|
this.initDefaultData()
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
|
||||||
|
},
|
||||||
|
//初始化默认数据
|
||||||
|
initDefaultData() {
|
||||||
|
|
||||||
|
},
|
||||||
|
// 表单提交
|
||||||
|
dataFormSubmit(type) {
|
||||||
|
this.dataFormSubmitType = type ? type : 0
|
||||||
|
this.$refs['formRef'].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
this.request()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
request() {
|
||||||
|
let _data = this.dataList()
|
||||||
|
if (this.dataFormSubmitType == 2) {
|
||||||
|
this.continueBtnLoading = true
|
||||||
|
} else {
|
||||||
|
this.btnLoading = true
|
||||||
|
}
|
||||||
|
if (!this.dataForm.id) {
|
||||||
|
request({
|
||||||
|
url: '/api/scm/SubjectBasicExclusive',
|
||||||
|
method: 'post',
|
||||||
|
data: _data
|
||||||
|
}).then((res) => {
|
||||||
|
this.$message({
|
||||||
|
message: res.msg,
|
||||||
|
type: 'success',
|
||||||
|
duration: 1000,
|
||||||
|
onClose: () => {
|
||||||
|
if (this.dataFormSubmitType == 2) {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.clearData()
|
||||||
|
this.initDefaultData()
|
||||||
|
})
|
||||||
|
this.continueBtnLoading = false
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.visible = false
|
||||||
|
this.btnLoading = false
|
||||||
|
this.$emit('refresh', true)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
this.btnLoading = false
|
||||||
|
this.continueBtnLoading = false
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
request({
|
||||||
|
url: '/api/scm/SubjectBasicExclusive/' + this.dataForm.id,
|
||||||
|
method: 'PUT',
|
||||||
|
data: _data
|
||||||
|
}).then((res) => {
|
||||||
|
this.$message({
|
||||||
|
message: res.msg,
|
||||||
|
type: 'success',
|
||||||
|
duration: 1000,
|
||||||
|
onClose: () => {
|
||||||
|
if (this.dataFormSubmitType == 2) return this.continueBtnLoading = false
|
||||||
|
this.visible = false
|
||||||
|
this.btnLoading = false
|
||||||
|
this.$emit('refresh', true)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
this.btnLoading = false
|
||||||
|
this.continueBtnLoading = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
openSelectDialog(key) {
|
||||||
|
this.currTableConf = this.addTableConf[key]
|
||||||
|
this.currVmodel = key
|
||||||
|
this.selectDialogVisible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.selectDialog.init()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
addForSelect(data) {
|
||||||
|
for (let i = 0; i < data.length; i++) {
|
||||||
|
let t = data[i]
|
||||||
|
if (this['get' + this.currVmodel]) {
|
||||||
|
this['get' + this.currVmodel](t)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dateTime(timeRule, timeType, timeTarget, timeValueData, dataValue) {
|
||||||
|
let timeDataValue = null;
|
||||||
|
let timeValue = Number(timeValueData)
|
||||||
|
if (timeRule) {
|
||||||
|
if (timeType == 1) {
|
||||||
|
timeDataValue = timeValue
|
||||||
|
} else if (timeType == 2) {
|
||||||
|
timeDataValue = dataValue
|
||||||
|
} else if (timeType == 3) {
|
||||||
|
timeDataValue = new Date().getTime()
|
||||||
|
} else if (timeType == 4) {
|
||||||
|
let previousDate = '';
|
||||||
|
if (timeTarget == 1 || timeTarget == 2) {
|
||||||
|
previousDate = getDateDay(timeTarget, timeType, timeValue)
|
||||||
|
timeDataValue = new Date(previousDate).getTime()
|
||||||
|
} else if (timeTarget == 3) {
|
||||||
|
previousDate = getBeforeData(timeValue)
|
||||||
|
timeDataValue = new Date(previousDate).getTime()
|
||||||
|
} else {
|
||||||
|
timeDataValue = getBeforeTime(timeTarget, timeValue).getTime()
|
||||||
|
}
|
||||||
|
} else if (timeType == 5) {
|
||||||
|
let previousDate = '';
|
||||||
|
if (timeTarget == 1 || timeTarget == 2) {
|
||||||
|
previousDate = getDateDay(timeTarget, timeType, timeValue)
|
||||||
|
timeDataValue = new Date(previousDate).getTime()
|
||||||
|
} else if (timeTarget == 3) {
|
||||||
|
previousDate = getLaterData(timeValue)
|
||||||
|
timeDataValue = new Date(previousDate).getTime()
|
||||||
|
} else {
|
||||||
|
timeDataValue = getLaterTime(timeTarget, timeValue).getTime()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return timeDataValue;
|
||||||
|
},
|
||||||
|
time(timeRule, timeType, timeTarget, timeValue, formatType, dataValue) {
|
||||||
|
let format = formatType == 'HH:mm' ? 'HH:mm:00' : formatType
|
||||||
|
let timeDataValue = null
|
||||||
|
if (timeRule) {
|
||||||
|
if (timeType == 1) {
|
||||||
|
timeDataValue = timeValue || '00:00:00'
|
||||||
|
if (timeDataValue.split(':').length == 3) {
|
||||||
|
timeDataValue = timeDataValue
|
||||||
|
} else {
|
||||||
|
timeDataValue = timeDataValue + ':00'
|
||||||
|
}
|
||||||
|
} else if (timeType == 2) {
|
||||||
|
timeDataValue = dataValue
|
||||||
|
} else if (timeType == 3) {
|
||||||
|
timeDataValue = this.jnpf.toDate(new Date(), format)
|
||||||
|
} else if (timeType == 4) {
|
||||||
|
let previousDate = '';
|
||||||
|
previousDate = getBeforeTime(timeTarget, timeValue)
|
||||||
|
timeDataValue = this.jnpf.toDate(previousDate, format)
|
||||||
|
} else if (timeType == 5) {
|
||||||
|
let previousDate = '';
|
||||||
|
previousDate = getLaterTime(timeTarget, timeValue)
|
||||||
|
timeDataValue = this.jnpf.toDate(previousDate, format)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return timeDataValue;
|
||||||
|
},
|
||||||
|
dataList() {
|
||||||
|
var _data = this.dataForm;
|
||||||
|
return _data;
|
||||||
|
},
|
||||||
|
dataInfo(dataAll) {
|
||||||
|
let _dataAll = dataAll
|
||||||
|
this.dataForm = _dataAll
|
||||||
|
this.isEdit = true
|
||||||
|
this.dataAll()
|
||||||
|
this.childIndex = -1
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,141 @@
|
|||||||
|
<template>
|
||||||
|
<transition name="el-zoom-in-center">
|
||||||
|
<div class="JNPF-preview-main">
|
||||||
|
<Detail v-if="detailVisible" ref="Detail" @close="detailVisible = false" />
|
||||||
|
<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="formRef" :model="dataForm" size="small" label-width="100px" label-position="right" >
|
||||||
|
<template v-if="!loading">
|
||||||
|
<el-col :span="8" >
|
||||||
|
<jnpf-form-tip-item label="一级供应商"
|
||||||
|
prop="firstSubject" >
|
||||||
|
<p>{{dataForm.firstSubject}}</p>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" >
|
||||||
|
<jnpf-form-tip-item label="是否为独家采购" label-width="120px"
|
||||||
|
prop="isExclusive" >
|
||||||
|
<p>{{ dataForm.isExclusive }} </p>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" >
|
||||||
|
<jnpf-form-tip-item label="月份"
|
||||||
|
prop="mouth" >
|
||||||
|
<p>{{dataForm.mouth}}</p>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24" >
|
||||||
|
<jnpf-form-tip-item label="一级供应商主要客户名称"
|
||||||
|
prop="subjects" >
|
||||||
|
<p>{{dataForm.subjects}}</p>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" >
|
||||||
|
<jnpf-form-tip-item label="一级供应商月开票金额"
|
||||||
|
prop="mouthAmount" >
|
||||||
|
<p>{{dataForm.mouthAmount}}</p>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" >
|
||||||
|
<jnpf-form-tip-item label="一级供应商月结算金额"
|
||||||
|
prop="settlementAmount" >
|
||||||
|
<p>{{dataForm.settlementAmount}}</p>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" >
|
||||||
|
<jnpf-form-tip-item label="我公司月采购金额占比"
|
||||||
|
prop="rateAmount" >
|
||||||
|
<p>{{dataForm.rateAmount}}</p>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
|
</el-form>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
</transition>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
import { getConfigData } from '@/api/onlineDev/visualDev'
|
||||||
|
import jnpf from '@/utils/jnpf'
|
||||||
|
import Detail from '@/views/basic/dynamicModel/list/detail'
|
||||||
|
import { thousandsFormat } from "@/components/Generator/utils/index"
|
||||||
|
export default {
|
||||||
|
components: { Detail},
|
||||||
|
props: [],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
visible: false,
|
||||||
|
detailVisible: false,
|
||||||
|
loading: false,
|
||||||
|
|
||||||
|
dataForm: {
|
||||||
|
id :'',
|
||||||
|
firstSubject : '',
|
||||||
|
isExclusive : '',
|
||||||
|
mouth : '',
|
||||||
|
subjects : '',
|
||||||
|
mouthAmount : '',
|
||||||
|
settlementAmount : '',
|
||||||
|
rateAmount : '',
|
||||||
|
},
|
||||||
|
isExclusiveOptions:[{"fullName":"是","id":"1"},{"fullName":"不是","id":"2"}],
|
||||||
|
isExclusiveProps:{"label":"fullName","value":"id" },
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
watch: {},
|
||||||
|
created() {
|
||||||
|
|
||||||
|
},
|
||||||
|
mounted() {},
|
||||||
|
methods: {
|
||||||
|
toDetail(defaultValue, modelId) {
|
||||||
|
if (!defaultValue) return
|
||||||
|
getConfigData(modelId).then(res => {
|
||||||
|
if (!res.data || !res.data.formData) return
|
||||||
|
let formData = JSON.parse(res.data.formData)
|
||||||
|
formData.popupType = 'general'
|
||||||
|
this.detailVisible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.Detail.init(formData, modelId, defaultValue)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
dataInfo(dataAll){
|
||||||
|
let _dataAll =dataAll
|
||||||
|
this.dataForm = _dataAll
|
||||||
|
},
|
||||||
|
|
||||||
|
goBack() {
|
||||||
|
this.$emit('refresh')
|
||||||
|
},
|
||||||
|
init(id) {
|
||||||
|
this.dataForm.id = id || 0;
|
||||||
|
this.visible = true;
|
||||||
|
this.$nextTick(() => {
|
||||||
|
if(this.dataForm.id){
|
||||||
|
this.loading = true
|
||||||
|
request({
|
||||||
|
url: '/api/scm/SubjectBasicExclusive/detail/'+this.dataForm.id,
|
||||||
|
method: 'get'
|
||||||
|
}).then(res => {
|
||||||
|
this.dataInfo(res.data)
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,473 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<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.id ? '新建':'编辑'" />
|
||||||
|
<div class="options">
|
||||||
|
<el-dropdown class="dropdown" placement="bottom">
|
||||||
|
<el-button style="width:70px">
|
||||||
|
更 多<i class="el-icon-arrow-down el-icon--right"></i>
|
||||||
|
</el-button>
|
||||||
|
<el-dropdown-menu slot="dropdown">
|
||||||
|
<template v-if="dataForm.id">
|
||||||
|
<el-dropdown-item @click.native="prev" :disabled='prevDis'>
|
||||||
|
{{'上一条'}}
|
||||||
|
</el-dropdown-item>
|
||||||
|
<el-dropdown-item @click.native="next" :disabled='nextDis'>
|
||||||
|
{{'下一条'}}
|
||||||
|
</el-dropdown-item>
|
||||||
|
</template>
|
||||||
|
<el-dropdown-item type="primary" @click.native="dataFormSubmit(2)"
|
||||||
|
:loading="continueBtnLoading" :disabled='btnLoading'>
|
||||||
|
{{!dataForm.id ?'确定并新增':'确定并继续'}}</el-dropdown-item>
|
||||||
|
</el-dropdown-menu>
|
||||||
|
</el-dropdown>
|
||||||
|
<el-button type="primary" @click="dataFormSubmit()" :loading="btnLoading"
|
||||||
|
:disabled='continueBtnLoading'> 保 存</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="formRef" :model="dataForm" :rules="dataRule" size="small" label-width="100px"
|
||||||
|
label-position="right">
|
||||||
|
<template v-if="!loading">
|
||||||
|
<!-- 具体表单 -->
|
||||||
|
<el-col :span="8">
|
||||||
|
<jnpf-form-tip-item label="一级供应商名称" prop="firstSubject">
|
||||||
|
<JnpfInput v-model="dataForm.firstSubject" @change="changeData('firstSubject',-1)"
|
||||||
|
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||||
|
</JnpfInput>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<jnpf-form-tip-item label="是否为独家采购" label-width="120px" prop="isExclusive">
|
||||||
|
<JnpfRadio v-model="dataForm.isExclusive" @change="changeData('isExclusive',-1)"
|
||||||
|
optionType="button" direction="horizontal" size="medium"
|
||||||
|
:options="isExclusiveOptions" :props="isExclusiveProps">
|
||||||
|
</JnpfRadio>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="8">
|
||||||
|
<jnpf-form-tip-item label="月份" prop="mouth">
|
||||||
|
<JnpfDatePicker v-model="dataForm.mouth" @change="changeData('mouth',-1)"
|
||||||
|
:startTime="dateTime(false,1,1,'','')" :endTime="dateTime(false,1,1,'','')"
|
||||||
|
placeholder="请选择" clearable :style='{"width":"100%"}' type="month"
|
||||||
|
format="yyyy-MM">
|
||||||
|
</JnpfDatePicker>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<jnpf-form-tip-item label="一级供应商主要客户名称" prop="subjects">
|
||||||
|
<JnpfInput v-model="dataForm.subjects" @change="changeData('subjects',-1)"
|
||||||
|
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||||
|
</JnpfInput>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<jnpf-form-tip-item label="一级供应商月开票金额" prop="mouthAmount">
|
||||||
|
<JnpfInput v-model="dataForm.mouthAmount" @change="changeData('mouthAmount',-1)"
|
||||||
|
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||||
|
</JnpfInput>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<jnpf-form-tip-item label="本月我公司采购金额" prop="settlementAmount">
|
||||||
|
<JnpfInput v-model="dataForm.settlementAmount"
|
||||||
|
@change="changeData('settlementAmount',-1)" placeholder="请输入" clearable
|
||||||
|
:style='{"width":"100%"}'>
|
||||||
|
</JnpfInput>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<jnpf-form-tip-item label="我公司月采购金额占比" prop="rateAmount">
|
||||||
|
<JnpfInput v-model="dataForm.rateAmount" @change="changeData('rateAmount',-1)"
|
||||||
|
placeholder="请输入" clearable :style='{"width":"100%"}'>
|
||||||
|
</JnpfInput>
|
||||||
|
</jnpf-form-tip-item>
|
||||||
|
</el-col>
|
||||||
|
<!-- 表单结束 -->
|
||||||
|
</template>
|
||||||
|
</el-form>
|
||||||
|
<SelectDialog v-if="selectDialogVisible" :config="currTableConf" :formData="dataForm"
|
||||||
|
ref="selectDialog" @select="addForSelect" @close="selectDialogVisible=false" />
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
</transition>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import request from '@/utils/request'
|
||||||
|
import { mapGetters } from "vuex";
|
||||||
|
import { getDataInterfaceRes } from '@/api/systemData/dataInterface'
|
||||||
|
import { getDictionaryDataSelector } from '@/api/systemData/dictionary'
|
||||||
|
import { getDefaultCurrentValueUserId } from '@/api/permission/user'
|
||||||
|
import { getDefaultCurrentValueDepartmentId } from '@/api/permission/organize'
|
||||||
|
import { getDateDay, getLaterData, getBeforeData, getBeforeTime, getLaterTime } from '@/components/Generator/utils/index.js'
|
||||||
|
import { thousandsFormat } from "@/components/Generator/utils/index"
|
||||||
|
export default {
|
||||||
|
components: {},
|
||||||
|
props: [],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dataFormSubmitType: 0,
|
||||||
|
continueBtnLoading: false,
|
||||||
|
index: 0,
|
||||||
|
prevDis: false,
|
||||||
|
nextDis: false,
|
||||||
|
allList: [],
|
||||||
|
visible: false,
|
||||||
|
loading: false,
|
||||||
|
btnLoading: false,
|
||||||
|
formRef: 'formRef',
|
||||||
|
setting: {},
|
||||||
|
eventType: '',
|
||||||
|
userBoxVisible: false,
|
||||||
|
selectDialogVisible: false,
|
||||||
|
currTableConf: {},
|
||||||
|
dataValueAll: {},
|
||||||
|
addTableConf: {
|
||||||
|
},
|
||||||
|
//可选范围默认值
|
||||||
|
ableAll: {
|
||||||
|
},
|
||||||
|
tableRows: {
|
||||||
|
},
|
||||||
|
Vmodel: "",
|
||||||
|
currVmodel: "",
|
||||||
|
dataForm: {
|
||||||
|
firstSubject: undefined,
|
||||||
|
isExclusive: undefined,
|
||||||
|
mouth: undefined,
|
||||||
|
subjects: undefined,
|
||||||
|
mouthAmount: undefined,
|
||||||
|
settlementAmount: undefined,
|
||||||
|
rateAmount: undefined,
|
||||||
|
version: 0,
|
||||||
|
type: "1",
|
||||||
|
},
|
||||||
|
tableRequiredData: {},
|
||||||
|
dataRule:
|
||||||
|
{
|
||||||
|
firstSubject: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入',
|
||||||
|
trigger: 'blur'
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
isExclusiveOptions: [{ "fullName": "是", "id": "1" }, { "fullName": "不是", "id": "2" }],
|
||||||
|
isExclusiveProps: { "label": "fullName", "value": "id" },
|
||||||
|
childIndex: -1,
|
||||||
|
isEdit: false,
|
||||||
|
interfaceRes: {
|
||||||
|
firstSubject: [],
|
||||||
|
isExclusive: [],
|
||||||
|
mouth: [],
|
||||||
|
subjects: [],
|
||||||
|
mouthAmount: [],
|
||||||
|
settlementAmount: [],
|
||||||
|
rateAmount: [],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters(['userInfo'])
|
||||||
|
},
|
||||||
|
watch: {},
|
||||||
|
created() {
|
||||||
|
this.dataAll()
|
||||||
|
this.initDefaultData()
|
||||||
|
this.dataValueAll = JSON.parse(JSON.stringify(this.dataForm))
|
||||||
|
},
|
||||||
|
mounted() { },
|
||||||
|
methods: {
|
||||||
|
prev() {
|
||||||
|
this.index--
|
||||||
|
if (this.index === 0) {
|
||||||
|
this.prevDis = true
|
||||||
|
}
|
||||||
|
this.nextDis = false
|
||||||
|
for (let index = 0; index < this.allList.length; index++) {
|
||||||
|
const element = this.allList[index];
|
||||||
|
if (this.index == index) {
|
||||||
|
this.getInfo(element.id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
next() {
|
||||||
|
this.index++
|
||||||
|
if (this.index === this.allList.length - 1) {
|
||||||
|
this.nextDis = true
|
||||||
|
}
|
||||||
|
this.prevDis = false
|
||||||
|
for (let index = 0; index < this.allList.length; index++) {
|
||||||
|
const element = this.allList[index];
|
||||||
|
if (this.index == index) {
|
||||||
|
this.getInfo(element.id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getInfo(id) {
|
||||||
|
request({
|
||||||
|
url: '/api/scm/SubjectBasicExclusive/' + id,
|
||||||
|
method: 'get'
|
||||||
|
}).then(res => {
|
||||||
|
this.dataInfo(res.data)
|
||||||
|
});
|
||||||
|
},
|
||||||
|
goBack() {
|
||||||
|
this.visible = false
|
||||||
|
this.$emit('refreshDataList', true)
|
||||||
|
},
|
||||||
|
changeData(model, index) {
|
||||||
|
this.isEdit = false
|
||||||
|
this.childIndex = index
|
||||||
|
let modelAll = model.split("-");
|
||||||
|
let faceMode = "";
|
||||||
|
for (let i = 0; i < modelAll.length; i++) {
|
||||||
|
faceMode += modelAll[i];
|
||||||
|
}
|
||||||
|
for (let key in this.interfaceRes) {
|
||||||
|
if (key != faceMode) {
|
||||||
|
let faceReList = this.interfaceRes[key]
|
||||||
|
for (let i = 0; i < faceReList.length; i++) {
|
||||||
|
if (faceReList[i].relationField == model) {
|
||||||
|
let options = 'get' + key + 'Options';
|
||||||
|
if (this[options]) {
|
||||||
|
this[options]()
|
||||||
|
}
|
||||||
|
this.changeData(key, index)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
changeDataFormData(type, data, model, index, defaultValue) {
|
||||||
|
if (!this.isEdit) {
|
||||||
|
if (type == 2) {
|
||||||
|
for (let i = 0; i < this.dataForm[data].length; i++) {
|
||||||
|
if (index == -1) {
|
||||||
|
this.dataForm[data][i][model] = defaultValue
|
||||||
|
} else if (index == i) {
|
||||||
|
this.dataForm[data][i][model] = defaultValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.dataForm[data] = defaultValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dataAll() {
|
||||||
|
},
|
||||||
|
goBack() {
|
||||||
|
this.$emit('refresh')
|
||||||
|
},
|
||||||
|
clearData() {
|
||||||
|
this.dataForm = JSON.parse(JSON.stringify(this.dataValueAll))
|
||||||
|
},
|
||||||
|
init(id, isDetail, allList) {
|
||||||
|
this.prevDis = false
|
||||||
|
this.nextDis = false
|
||||||
|
this.allList = allList || []
|
||||||
|
if (allList.length) {
|
||||||
|
this.index = this.allList.findIndex(item => item.id === id)
|
||||||
|
if (this.index == 0) {
|
||||||
|
this.prevDis = true
|
||||||
|
}
|
||||||
|
if (this.index == this.allList.length - 1) {
|
||||||
|
this.nextDis = true
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.prevDis = true
|
||||||
|
this.nextDis = true
|
||||||
|
}
|
||||||
|
this.dataForm.id = id || 0;
|
||||||
|
this.visible = true;
|
||||||
|
this.$nextTick(() => {
|
||||||
|
if (this.dataForm.id) {
|
||||||
|
this.loading = true
|
||||||
|
request({
|
||||||
|
url: '/api/scm/SubjectBasicExclusive/' + this.dataForm.id,
|
||||||
|
method: 'get'
|
||||||
|
}).then(res => {
|
||||||
|
this.dataInfo(res.data)
|
||||||
|
this.loading = false
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.clearData()
|
||||||
|
this.initDefaultData()
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
|
||||||
|
},
|
||||||
|
//初始化默认数据
|
||||||
|
initDefaultData() {
|
||||||
|
|
||||||
|
},
|
||||||
|
// 表单提交
|
||||||
|
dataFormSubmit(type) {
|
||||||
|
this.dataFormSubmitType = type ? type : 0
|
||||||
|
this.$refs['formRef'].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
this.request()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
request() {
|
||||||
|
let _data = this.dataList()
|
||||||
|
if (this.dataFormSubmitType == 2) {
|
||||||
|
this.continueBtnLoading = true
|
||||||
|
} else {
|
||||||
|
this.btnLoading = true
|
||||||
|
}
|
||||||
|
if (!this.dataForm.id) {
|
||||||
|
request({
|
||||||
|
url: '/api/scm/SubjectBasicExclusive',
|
||||||
|
method: 'post',
|
||||||
|
data: _data
|
||||||
|
}).then((res) => {
|
||||||
|
this.$message({
|
||||||
|
message: res.msg,
|
||||||
|
type: 'success',
|
||||||
|
duration: 1000,
|
||||||
|
onClose: () => {
|
||||||
|
if (this.dataFormSubmitType == 2) {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.clearData()
|
||||||
|
this.initDefaultData()
|
||||||
|
})
|
||||||
|
this.continueBtnLoading = false
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.visible = false
|
||||||
|
this.btnLoading = false
|
||||||
|
this.$emit('refresh', true)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
this.btnLoading = false
|
||||||
|
this.continueBtnLoading = false
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
request({
|
||||||
|
url: '/api/scm/SubjectBasicExclusive/' + this.dataForm.id,
|
||||||
|
method: 'PUT',
|
||||||
|
data: _data
|
||||||
|
}).then((res) => {
|
||||||
|
this.$message({
|
||||||
|
message: res.msg,
|
||||||
|
type: 'success',
|
||||||
|
duration: 1000,
|
||||||
|
onClose: () => {
|
||||||
|
if (this.dataFormSubmitType == 2) return this.continueBtnLoading = false
|
||||||
|
this.visible = false
|
||||||
|
this.btnLoading = false
|
||||||
|
this.$emit('refresh', true)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
this.btnLoading = false
|
||||||
|
this.continueBtnLoading = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
openSelectDialog(key) {
|
||||||
|
this.currTableConf = this.addTableConf[key]
|
||||||
|
this.currVmodel = key
|
||||||
|
this.selectDialogVisible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.selectDialog.init()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
addForSelect(data) {
|
||||||
|
for (let i = 0; i < data.length; i++) {
|
||||||
|
let t = data[i]
|
||||||
|
if (this['get' + this.currVmodel]) {
|
||||||
|
this['get' + this.currVmodel](t)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dateTime(timeRule, timeType, timeTarget, timeValueData, dataValue) {
|
||||||
|
let timeDataValue = null;
|
||||||
|
let timeValue = Number(timeValueData)
|
||||||
|
if (timeRule) {
|
||||||
|
if (timeType == 1) {
|
||||||
|
timeDataValue = timeValue
|
||||||
|
} else if (timeType == 2) {
|
||||||
|
timeDataValue = dataValue
|
||||||
|
} else if (timeType == 3) {
|
||||||
|
timeDataValue = new Date().getTime()
|
||||||
|
} else if (timeType == 4) {
|
||||||
|
let previousDate = '';
|
||||||
|
if (timeTarget == 1 || timeTarget == 2) {
|
||||||
|
previousDate = getDateDay(timeTarget, timeType, timeValue)
|
||||||
|
timeDataValue = new Date(previousDate).getTime()
|
||||||
|
} else if (timeTarget == 3) {
|
||||||
|
previousDate = getBeforeData(timeValue)
|
||||||
|
timeDataValue = new Date(previousDate).getTime()
|
||||||
|
} else {
|
||||||
|
timeDataValue = getBeforeTime(timeTarget, timeValue).getTime()
|
||||||
|
}
|
||||||
|
} else if (timeType == 5) {
|
||||||
|
let previousDate = '';
|
||||||
|
if (timeTarget == 1 || timeTarget == 2) {
|
||||||
|
previousDate = getDateDay(timeTarget, timeType, timeValue)
|
||||||
|
timeDataValue = new Date(previousDate).getTime()
|
||||||
|
} else if (timeTarget == 3) {
|
||||||
|
previousDate = getLaterData(timeValue)
|
||||||
|
timeDataValue = new Date(previousDate).getTime()
|
||||||
|
} else {
|
||||||
|
timeDataValue = getLaterTime(timeTarget, timeValue).getTime()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return timeDataValue;
|
||||||
|
},
|
||||||
|
time(timeRule, timeType, timeTarget, timeValue, formatType, dataValue) {
|
||||||
|
let format = formatType == 'HH:mm' ? 'HH:mm:00' : formatType
|
||||||
|
let timeDataValue = null
|
||||||
|
if (timeRule) {
|
||||||
|
if (timeType == 1) {
|
||||||
|
timeDataValue = timeValue || '00:00:00'
|
||||||
|
if (timeDataValue.split(':').length == 3) {
|
||||||
|
timeDataValue = timeDataValue
|
||||||
|
} else {
|
||||||
|
timeDataValue = timeDataValue + ':00'
|
||||||
|
}
|
||||||
|
} else if (timeType == 2) {
|
||||||
|
timeDataValue = dataValue
|
||||||
|
} else if (timeType == 3) {
|
||||||
|
timeDataValue = this.jnpf.toDate(new Date(), format)
|
||||||
|
} else if (timeType == 4) {
|
||||||
|
let previousDate = '';
|
||||||
|
previousDate = getBeforeTime(timeTarget, timeValue)
|
||||||
|
timeDataValue = this.jnpf.toDate(previousDate, format)
|
||||||
|
} else if (timeType == 5) {
|
||||||
|
let previousDate = '';
|
||||||
|
previousDate = getLaterTime(timeTarget, timeValue)
|
||||||
|
timeDataValue = this.jnpf.toDate(previousDate, format)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return timeDataValue;
|
||||||
|
},
|
||||||
|
dataList() {
|
||||||
|
var _data = this.dataForm;
|
||||||
|
return _data;
|
||||||
|
},
|
||||||
|
dataInfo(dataAll) {
|
||||||
|
let _dataAll = dataAll
|
||||||
|
this.dataForm = _dataAll
|
||||||
|
this.isEdit = true
|
||||||
|
this.dataAll()
|
||||||
|
this.childIndex = -1
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue