新购到货管理模块联调
This commit is contained in:
parent
abef4c1176
commit
f7e6a328b0
|
|
@ -17,18 +17,24 @@ export const queryFactoryListApi = (data) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 物资厂家新增 */
|
/** 类型规格查询 */
|
||||||
export const addSupplierListApi = (data) => {
|
export const queryTypeListApi = (data) => {
|
||||||
return request.post('/base/masupplier/add', data)
|
return request.get('/purchase/bpm_purchase_info/cascader', {
|
||||||
|
params: data
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 物资厂家修改 */
|
/** 根据value查询单位 */
|
||||||
export const updateSupplierListApi = (data) => {
|
export const queryMeterByVal = (data) => {
|
||||||
return request.post('/base/masupplier/update', data)
|
return request.get(`/purchase/bpm_purchase_info/cascaderById`, {
|
||||||
|
params: data
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 物资厂家删除 */
|
/** 新购到货新增 */
|
||||||
export const delSupplierListApi = (id) => {
|
export const addArrivalApi = (data) => {
|
||||||
return request.delete(`/base/masupplier/${id}`)
|
return request.post('/purchase/bpm_purchase_info/add', data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@
|
||||||
:inline="true"
|
:inline="true"
|
||||||
label-width="100px"
|
label-width="100px"
|
||||||
v-show="showSearch"
|
v-show="showSearch"
|
||||||
|
:rules="formRules"
|
||||||
>
|
>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
v-for="(item, v) in formLabel"
|
v-for="(item, v) in formLabel"
|
||||||
|
|
@ -44,7 +45,7 @@
|
||||||
:options="item.f_selList"
|
:options="item.f_selList"
|
||||||
:props="item.optionProps"
|
:props="item.optionProps"
|
||||||
:show-all-levels="false"
|
:show-all-levels="false"
|
||||||
clearable
|
@change="handleCas($event, item.f_model, cascaderFunc, extraTableProp)"
|
||||||
style="width: 240px"
|
style="width: 240px"
|
||||||
/>
|
/>
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
|
|
@ -61,14 +62,23 @@
|
||||||
style="width: 240px"
|
style="width: 240px"
|
||||||
></el-input-number>
|
></el-input-number>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item v-if="showBtnCrews">
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-search"
|
icon="el-icon-search"
|
||||||
size="mini"
|
size="mini"
|
||||||
@click="handleQuery"
|
@click="handleQuery"
|
||||||
|
v-if="showSearchBtn"
|
||||||
>查询</el-button
|
>查询</el-button
|
||||||
>
|
>
|
||||||
|
<el-button
|
||||||
|
type="success"
|
||||||
|
icon="el-icon-edit"
|
||||||
|
size="mini"
|
||||||
|
@click="handleFill"
|
||||||
|
v-if="!showSearchBtn"
|
||||||
|
>填充</el-button
|
||||||
|
>
|
||||||
<el-button
|
<el-button
|
||||||
type="warning"
|
type="warning"
|
||||||
icon="el-icon-refresh"
|
icon="el-icon-refresh"
|
||||||
|
|
@ -187,7 +197,23 @@ export default {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true,
|
default: true,
|
||||||
},
|
},
|
||||||
|
/** 是否显示查询按钮 */
|
||||||
|
showSearchBtn: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true,
|
||||||
|
},
|
||||||
|
showBtnCrews: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true,
|
||||||
|
},
|
||||||
|
cascaderFunc: {
|
||||||
|
type: Function,
|
||||||
|
default: () => null
|
||||||
|
},
|
||||||
|
extraTableProp: {
|
||||||
|
type: Object,
|
||||||
|
default: () => null
|
||||||
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
/* 根据操作栏控制表头是否显示 */
|
/* 根据操作栏控制表头是否显示 */
|
||||||
|
|
@ -208,6 +234,10 @@ export default {
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
// 表单校验
|
||||||
|
formRules: {
|
||||||
|
|
||||||
|
},
|
||||||
loading: false,
|
loading: false,
|
||||||
// 列表接口查询参数
|
// 列表接口查询参数
|
||||||
queryParams: {
|
queryParams: {
|
||||||
|
|
@ -217,7 +247,7 @@ export default {
|
||||||
// 列表数据源
|
// 列表数据源
|
||||||
tableList: [],
|
tableList: [],
|
||||||
// 导出传递数据
|
// 导出传递数据
|
||||||
idList: undefined,
|
msgList: undefined,
|
||||||
// 列表数据条数
|
// 列表数据条数
|
||||||
total: 0,
|
total: 0,
|
||||||
// 搜索区域是否隐藏
|
// 搜索区域是否隐藏
|
||||||
|
|
@ -232,6 +262,7 @@ export default {
|
||||||
columCheckList: [],
|
columCheckList: [],
|
||||||
// 操作列最小宽度
|
// 操作列最小宽度
|
||||||
dynamicWidth: 0,
|
dynamicWidth: 0,
|
||||||
|
idCount: 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -243,6 +274,14 @@ export default {
|
||||||
/* 生成查询参数 */
|
/* 生成查询参数 */
|
||||||
this.formLabel.map(e => {
|
this.formLabel.map(e => {
|
||||||
this.$set(this.queryParams, e.f_model, '')
|
this.$set(this.queryParams, e.f_model, '')
|
||||||
|
// 设置表单必填
|
||||||
|
this.$set(this.formRules, e.f_rule, [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: `请填写${e.f_label}`,
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
])
|
||||||
})
|
})
|
||||||
// Object.assign(this.queryParams, this.sendParams)
|
// Object.assign(this.queryParams, this.sendParams)
|
||||||
this.getTableList()
|
this.getTableList()
|
||||||
|
|
@ -254,25 +293,35 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
/** 获取列表数据 */
|
/** 获取列表数据 */
|
||||||
async getTableList() {
|
async getTableList() {
|
||||||
this.loading = true
|
this.$refs.queryFormRef.validate(async valid => {
|
||||||
console.log(this.queryParams)
|
if (valid) {
|
||||||
const res = await this.requestApi(this.queryParams)
|
this.loading = true
|
||||||
this.loading = false
|
console.log(this.queryParams)
|
||||||
console.log(res, '列表数据')
|
const res = await this.requestApi(this.queryParams)
|
||||||
if(res.code === 200) {
|
this.loading = false
|
||||||
if(res.data) {
|
console.log(res, '列表数据')
|
||||||
this.tableList = res.data.rows
|
if (res.code === 200) {
|
||||||
this.total = res.data.total
|
if (res.data) {
|
||||||
} else {
|
this.tableList = res.data.rows
|
||||||
this.tableList = res.rows
|
this.total = res.data.total
|
||||||
this.total = res.total
|
} else {
|
||||||
|
this.tableList = res.rows
|
||||||
|
this.total = res.total
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
},
|
},
|
||||||
/** 查询按钮 */
|
/** 查询按钮 */
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.getTableList()
|
this.getTableList()
|
||||||
},
|
},
|
||||||
|
/** 填充按钮 */
|
||||||
|
handleFill() {
|
||||||
|
/* this.tableList.forEach(obj => {
|
||||||
|
Object.assign(obj, this.formLabel)
|
||||||
|
}) */
|
||||||
|
},
|
||||||
/** 重置按钮 */
|
/** 重置按钮 */
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
this.$refs.queryFormRef.resetFields()
|
this.$refs.queryFormRef.resetFields()
|
||||||
|
|
@ -280,6 +329,39 @@ export default {
|
||||||
this.queryParams.pageSize = 10
|
this.queryParams.pageSize = 10
|
||||||
this.getTableList()
|
this.getTableList()
|
||||||
},
|
},
|
||||||
|
/** 级联选择只选最后一级 */
|
||||||
|
handleCas(
|
||||||
|
e,
|
||||||
|
val,
|
||||||
|
func,
|
||||||
|
prop
|
||||||
|
) {
|
||||||
|
console.log(prop)
|
||||||
|
this.queryParams[val] = e[e.length - 1]
|
||||||
|
let setObj = {}
|
||||||
|
// 合并
|
||||||
|
if(prop) {
|
||||||
|
Object.assign(setObj, prop)
|
||||||
|
}
|
||||||
|
// 设置id自增
|
||||||
|
this.$set(setObj, 'id', this.idCount)
|
||||||
|
this.idCount++
|
||||||
|
// 获取单位
|
||||||
|
func({
|
||||||
|
id: e[e.length - 1]
|
||||||
|
}).then(res => {
|
||||||
|
console.log(res)
|
||||||
|
this.$set(setObj, 'name', res.data.parentName)
|
||||||
|
this.$set(setObj, 'unitName', res.data.unitName)
|
||||||
|
this.$set(setObj, 'typeName', res.data.name)
|
||||||
|
}).catch(err => {})
|
||||||
|
for(let key in this.queryParams) {
|
||||||
|
this.$set(setObj, key, this.queryParams[key])
|
||||||
|
}
|
||||||
|
this.tableList.unshift(setObj)
|
||||||
|
console.log(this.tableList)
|
||||||
|
|
||||||
|
},
|
||||||
/** 动态设置操作列的列宽 */
|
/** 动态设置操作列的列宽 */
|
||||||
getOperatorWidth() {
|
getOperatorWidth() {
|
||||||
const operatorColumn =
|
const operatorColumn =
|
||||||
|
|
@ -313,9 +395,8 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
handleSelectionChange(e) {
|
handleSelectionChange(e) {
|
||||||
this.idList = e.map(item => item.id)
|
this.msgList = e
|
||||||
console.log(this.idList)
|
this.$emit('transIdList', this.msgList)
|
||||||
this.$emit('transIdList', this.idList)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,25 @@
|
||||||
<template>
|
<template>
|
||||||
<!-- 往来单位 人员配置 表单组件 -->
|
<!-- 往来单位 人员配置 表单组件 -->
|
||||||
|
<div>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<TableModel
|
<TableModel
|
||||||
:formLabel="formLabelAdd"
|
:formLabel="formLabelAdd"
|
||||||
:columnsList="columnsListAdd"
|
:columnsList="columnsListAdd"
|
||||||
:request-api="queryContactUnitsListApi"
|
|
||||||
ref="tableRef"
|
ref="tableRef"
|
||||||
style="display: flex; flex-direction: column"
|
style="display: flex; flex-direction: column"
|
||||||
|
:show-btn-crews="false"
|
||||||
|
:cascader-func="queryMeterByVal"
|
||||||
|
:extra-table-prop="extraProp"
|
||||||
|
@transIdList="getIdList"
|
||||||
>
|
>
|
||||||
<template slot="btn" slot-scope="{ queryParams }">
|
<template slot="btn" slot-scope="{ queryParams }">
|
||||||
<el-button type="primary"
|
<el-button type="primary" @click="save"
|
||||||
>绑定</el-button>
|
>保存</el-button>
|
||||||
<!-- <el-button @click="handleExportData(queryParams, 'base/agreement/export', '物资清单')"
|
<!-- <el-button @click="handleExportData(queryParams, 'base/agreement/export', '物资清单')"
|
||||||
>导出</el-button>-->
|
>导出</el-button>-->
|
||||||
</template>
|
</template>
|
||||||
<template slot="handle" slot-scope="{ data }">
|
<template slot="handle" slot-scope="{ data }">
|
||||||
<el-button
|
<!-- <el-button
|
||||||
type="info"
|
type="info"
|
||||||
size="mini"
|
size="mini"
|
||||||
v-if="data.level === '4'"
|
v-if="data.level === '4'"
|
||||||
|
|
@ -26,55 +30,180 @@
|
||||||
size="mini"
|
size="mini"
|
||||||
@click="handleEditData(data)"
|
@click="handleEditData(data)"
|
||||||
>编辑</el-button
|
>编辑</el-button
|
||||||
>
|
>-->
|
||||||
<!-- <el-button
|
<el-button
|
||||||
type="danger"
|
type="danger"
|
||||||
size="mini"
|
size="mini"
|
||||||
@click="handleDeleteMaType(data.id, delSingleMa)"
|
@click="delMa(data)"
|
||||||
>删除</el-button
|
>删除</el-button
|
||||||
>-->
|
>
|
||||||
|
</template>
|
||||||
|
<template slot="typeId" slot-scope="{ data }">
|
||||||
|
{{ data.typeName }}
|
||||||
|
</template>
|
||||||
|
<template slot="purchasePrice" slot-scope="{ data }">
|
||||||
|
<el-input v-model="data.purchasePrice"></el-input>
|
||||||
|
</template>
|
||||||
|
<template slot="notaxPrice" slot-scope="{ data }">
|
||||||
|
<el-input v-model="data.notaxPrice"></el-input>
|
||||||
|
</template>
|
||||||
|
<template slot="productDate" slot-scope="{ data }">
|
||||||
|
<el-date-picker
|
||||||
|
style="width: 100%"
|
||||||
|
v-model="data.productDate"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
type="date"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
<template slot="supplierId" slot-scope="{ data }">
|
||||||
|
<el-select
|
||||||
|
v-model="data.supplierId"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in sendRange"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</template>
|
||||||
|
<template slot="taxRate" slot-scope="{ data }">
|
||||||
|
<el-input-number
|
||||||
|
style="width: 100%"
|
||||||
|
controls-position="right"
|
||||||
|
v-model="data.taxRate"
|
||||||
|
:min="0"
|
||||||
|
></el-input-number>
|
||||||
|
</template>
|
||||||
|
<template slot="files" slot-scope="{ data }">
|
||||||
|
<h5
|
||||||
|
style="color: #02A7F0; cursor: pointer; font-weight: normal"
|
||||||
|
@click="handleEditData(data)"
|
||||||
|
>报告管理</h5>
|
||||||
</template>
|
</template>
|
||||||
<!-- <template slot="url" slot-scope="{ data }">
|
|
||||||
<img :src="data.url" style="width: 50px; height: 50px">
|
|
||||||
</template>-->
|
|
||||||
</TableModel>
|
</TableModel>
|
||||||
|
|
||||||
|
<!-- 弹框 -->
|
||||||
|
<DialogModel
|
||||||
|
:dialogConfig="dialogConfig"
|
||||||
|
@closeDialogOuter="closeDialogOuter"
|
||||||
|
>
|
||||||
|
<template slot="outerContent">
|
||||||
|
<!-- 新增以及修改数据的表单组件 -->
|
||||||
|
<FormArrival
|
||||||
|
@closeDialog="closeDialog"
|
||||||
|
:editParams="editParams"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</DialogModel>
|
||||||
|
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { formLabelAdd, columnsListAdd, dialogConfigAdd } from '../config-add'
|
import { columnsListAdd, dialogConfigAdd } from '../config-add'
|
||||||
|
import { dialogConfig } from '../config-arrival'
|
||||||
import { commonMixin } from '../../mixins/common'
|
import { commonMixin } from '../../mixins/common'
|
||||||
import {
|
import {
|
||||||
queryFactoryListApi
|
queryFactoryListApi,
|
||||||
|
queryMeterByVal
|
||||||
} from '@/api/purchase/arrival'
|
} from '@/api/purchase/arrival'
|
||||||
|
import {
|
||||||
|
queryPurchaseArrivalListApi,
|
||||||
|
addArrivalApi
|
||||||
|
} from '@/api/purchase/arrival'
|
||||||
|
import FormArrival from '../components/form-arrival.vue'
|
||||||
export default {
|
export default {
|
||||||
name: 'AddArrival',
|
name: 'AddArrival',
|
||||||
|
components: { FormArrival },
|
||||||
mixins: [commonMixin], // 混入公共方法和数据
|
mixins: [commonMixin], // 混入公共方法和数据
|
||||||
props: {
|
props: {
|
||||||
|
sendRange: {
|
||||||
|
type: Array,
|
||||||
|
default: () => null
|
||||||
|
},
|
||||||
|
sendCascader: {
|
||||||
|
type: Array,
|
||||||
|
default: () => null
|
||||||
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
queryFactoryListApi().then(res => {
|
// console.log(this.sendRange)
|
||||||
this.factoryRange = res.data.map(item => {
|
|
||||||
return {
|
|
||||||
label: item.name,
|
|
||||||
value: item.id
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
formLabelAdd,
|
formLabelAdd: [
|
||||||
|
{ f_label: '到货日期', f_model: 'arrivalTime', f_type: 'date', f_rule: 'arrivalTime' },
|
||||||
|
{ f_label: '物资厂家', f_model: 'supplierId', f_type: 'sel', f_selList: this.sendRange },
|
||||||
|
{ f_label: '出厂日期', f_model: 'productDate', f_type: 'date' },
|
||||||
|
{ f_label: '税率', f_model: 'taxRate', f_type: 'num' },
|
||||||
|
{ f_label: '类型规格', f_model: 'typeId', f_type: 'selCas', f_rule: 'typeId', f_selList: this.sendCascader },
|
||||||
|
{ f_label: '备注', f_model: 'remark', f_type: 'ipt' },
|
||||||
|
],
|
||||||
|
dialogConfig,
|
||||||
columnsListAdd,
|
columnsListAdd,
|
||||||
dialogConfigAdd,
|
dialogConfigAdd,
|
||||||
factoryRange: []
|
exportList: [],
|
||||||
|
editDialogTitle: '新购验收报告管理', // 修改时弹框标题
|
||||||
|
extraProp: {
|
||||||
|
purchasePrice: '',
|
||||||
|
notaxPrice: ''
|
||||||
|
},
|
||||||
|
priceDex: 100
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
queryPurchaseArrivalListApi,
|
||||||
|
queryMeterByVal,
|
||||||
|
getIdList(idList) {
|
||||||
|
this.exportList = idList
|
||||||
|
},
|
||||||
|
// 删除
|
||||||
|
delMa(data) {
|
||||||
|
this.$modal
|
||||||
|
.confirm('是否确认删除所选择的数据项?')
|
||||||
|
.then(() => {
|
||||||
|
this.$refs.tableRef.tableList.forEach((item, index) => {
|
||||||
|
if(item.type === data.type) {
|
||||||
|
this.$refs.tableRef.tableList.splice(index, 1)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch(() => {})
|
||||||
|
},
|
||||||
|
save() {
|
||||||
|
if(this.exportList.length === 0) {
|
||||||
|
this.$modal.msgError('请选择需要保存的机具')
|
||||||
|
} else {
|
||||||
|
this.exportList.forEach(item => {
|
||||||
|
item.purchasePrice = item.purchasePrice * this.priceDex
|
||||||
|
item.notaxPrice = item.notaxPrice * this.priceDex
|
||||||
|
item.bpmPurchaseDetailsList = {
|
||||||
|
name: item.name,
|
||||||
|
typeId: item.typeId,
|
||||||
|
unitName: item.unitName,
|
||||||
|
purchasePrice: item.purchasePrice,
|
||||||
|
notaxPrice: item.notaxPrice,
|
||||||
|
taxRate: item.taxRate,
|
||||||
|
supplierId: item.supplierId,
|
||||||
|
productDate: item.productDate
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log(this.exportList)
|
||||||
|
// 新增
|
||||||
|
addArrivalApi(this.exportList).then(res => {
|
||||||
|
console.log(res)
|
||||||
|
this.exportList.forEach(item => {
|
||||||
|
item.purchasePrice = item.purchasePrice / this.priceDex
|
||||||
|
item.notaxPrice = item.notaxPrice / this.priceDex
|
||||||
|
})
|
||||||
|
}).catch(err => {})
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -1,93 +1,46 @@
|
||||||
<template>
|
<template>
|
||||||
<!-- 协议管理 新增、编辑 表单组件 -->
|
<!-- 协议管理 新增、编辑 表单组件 -->
|
||||||
<div>
|
<div>
|
||||||
<el-form
|
<TableModel
|
||||||
label-width="100px"
|
:columnsList="columnsList"
|
||||||
size="medium"
|
:show-btn-crews="false"
|
||||||
ref="supplierParamsRef"
|
ref="tableRef"
|
||||||
:model="supplierParams"
|
:show-sel="false"
|
||||||
:rules="supplierParamsRules"
|
|
||||||
>
|
>
|
||||||
<el-row type="flex" justify="space-between" :gutter="24">
|
<template slot="handle" slot-scope="{ data }">
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="厂家名称" prop="name">
|
|
||||||
<el-input v-model="supplierParams.name" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="厂家地址" prop="address">
|
|
||||||
<el-input v-model="supplierParams.address" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="24">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="法人代表" prop="companyMan">
|
|
||||||
<el-input v-model="supplierParams.companyMan" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="主要联系人" prop="mainPerson">
|
|
||||||
<el-input v-model="supplierParams.mainPerson" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="24">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="联系人电话" prop="phone">
|
|
||||||
<el-input v-model="supplierParams.phone" :maxlength="11" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="备注" prop="notes">
|
|
||||||
<el-input type="textarea" v-model="supplierParams.notes" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="24">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="营业执照" prop="picUrl">
|
|
||||||
<el-upload
|
|
||||||
:http-request="(obj) => uploadData(obj)"
|
|
||||||
action="#"
|
|
||||||
:file-list="fileList"
|
|
||||||
:on-exceed="fileExceed"
|
|
||||||
:on-remove="handleRemove"
|
|
||||||
:class="{ disabled: uploadDisabled }"
|
|
||||||
list-type="picture-card"
|
|
||||||
accept=".png, .jpg, .jpeg"
|
|
||||||
:limit="1"
|
|
||||||
>
|
|
||||||
<i class="el-icon-plus"></i>
|
|
||||||
</el-upload>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="主要营业范围" prop="scopeBusiness">
|
|
||||||
<el-input type="textarea" v-model="supplierParams.scopeBusiness" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-form-item>
|
|
||||||
<el-button type="success" @click="onSubmit">确认</el-button>
|
|
||||||
<el-button
|
<el-button
|
||||||
@click="
|
type="primary"
|
||||||
() => {
|
size="mini"
|
||||||
this.$emit('closeDialog')
|
>查看</el-button
|
||||||
}
|
|
||||||
"
|
|
||||||
>取消</el-button
|
|
||||||
>
|
>
|
||||||
</el-form-item>
|
<el-button
|
||||||
</el-form>
|
type="danger"
|
||||||
|
size="mini"
|
||||||
|
>上传</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
<!-- <template slot="picUrl" slot-scope="{ data }">
|
||||||
|
<!– <img :src="data.picUrl" style="width: 50px; height: 50px" alt="">–>
|
||||||
|
<h4
|
||||||
|
style="color: #02A7F0; cursor: pointer"
|
||||||
|
v-if="data.picUrl === '' || data.picUrl === null"
|
||||||
|
@click="handleEditData(data)"
|
||||||
|
>上传</h4>
|
||||||
|
<h4
|
||||||
|
style="color: #02A7F0; cursor: pointer"
|
||||||
|
v-else
|
||||||
|
@click="openUrl(data.picUrl)"
|
||||||
|
>查看</h4>
|
||||||
|
</template>
|
||||||
|
<template slot="phone" slot-scope="{ data }">
|
||||||
|
{{ phoneCrypto(data.phone) }}
|
||||||
|
</template>-->
|
||||||
|
</TableModel>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {
|
import { columnsList } from '../config-arrival'
|
||||||
addSupplierListApi,
|
|
||||||
updateSupplierListApi
|
|
||||||
} from '@/api/material/masupplier'
|
|
||||||
import {
|
import {
|
||||||
fileUpLoad,
|
fileUpLoad,
|
||||||
imgUpLoad
|
imgUpLoad
|
||||||
|
|
@ -105,42 +58,17 @@ export default {
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
console.log(this.editParams)
|
console.log(this.editParams)
|
||||||
if (this.editParams) {
|
|
||||||
Object.assign(this.supplierParams, this.editParams)
|
|
||||||
this.subSort = 2
|
|
||||||
} else {
|
|
||||||
this.subSort = 1
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
columnsList,
|
||||||
subSort: '', // 提交类型:新增 1 / 修改 2
|
subSort: '', // 提交类型:新增 1 / 修改 2
|
||||||
supplierParams: {
|
|
||||||
name: undefined, // 厂家名称
|
|
||||||
address: undefined, // 厂家地址
|
|
||||||
companyMan: undefined, // 法人代表
|
|
||||||
mainPerson: undefined, // 主要联系人
|
|
||||||
phone: undefined, // 联系人电话
|
|
||||||
notes: undefined, // 备注
|
|
||||||
scopeBusiness: undefined, // 主要营业范围
|
|
||||||
picUrl: undefined, // 营业执照
|
|
||||||
},
|
|
||||||
// 图片集合
|
// 图片集合
|
||||||
picList: [],
|
picList: [],
|
||||||
// 图片名称集合
|
// 图片名称集合
|
||||||
picNameList: [],
|
picNameList: [],
|
||||||
//
|
//
|
||||||
fileList: [],
|
fileList: [],
|
||||||
// 校验规则
|
|
||||||
supplierParamsRules: {
|
|
||||||
name: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '请输入厂家名称',
|
|
||||||
trigger: 'blur',
|
|
||||||
},
|
|
||||||
]
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|
@ -159,11 +87,6 @@ export default {
|
||||||
this.picNameList.push(res.data.name.split('_')[0])
|
this.picNameList.push(res.data.name.split('_')[0])
|
||||||
}).catch(err => {})
|
}).catch(err => {})
|
||||||
},
|
},
|
||||||
/** 文件变化 */
|
|
||||||
dataChange(e) {
|
|
||||||
console.log(e)
|
|
||||||
this.fileList.push(e.raw)
|
|
||||||
},
|
|
||||||
/** 移除文件 */
|
/** 移除文件 */
|
||||||
handleRemove(file) {
|
handleRemove(file) {
|
||||||
console.log(file)
|
console.log(file)
|
||||||
|
|
@ -177,30 +100,7 @@ export default {
|
||||||
},
|
},
|
||||||
/** 确认按钮 */
|
/** 确认按钮 */
|
||||||
onSubmit() {
|
onSubmit() {
|
||||||
this.supplierParams.picUrl = this.picList.join()
|
|
||||||
console.log(this.supplierParams)
|
|
||||||
this.$refs.supplierParamsRef.validate((valid) => {
|
|
||||||
if (valid) {
|
|
||||||
console.log('校验通过', this.supplierParams, this.subSort)
|
|
||||||
// 1. 表单校验通过后调后台 Api
|
|
||||||
if(this.subSort === 1) {
|
|
||||||
addSupplierListApi(this.supplierParams).then(res => {
|
|
||||||
console.log(res)
|
|
||||||
}).catch(err => {
|
|
||||||
console.log(err)
|
|
||||||
})
|
|
||||||
} else if(this.subSort === 2) {
|
|
||||||
console.log(this.supplierParams)
|
|
||||||
updateSupplierListApi(this.supplierParams).then(res => {
|
|
||||||
console.log(res)
|
|
||||||
}).catch(err => {
|
|
||||||
console.log(err)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 2. 成功之后通知父组件关闭弹框
|
|
||||||
this.$emit('closeDialog', true)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,25 @@
|
||||||
import {
|
import {
|
||||||
queryFactoryListApi
|
querySupplierListApi
|
||||||
} from '@/api/purchase/arrival'
|
} from '@/api/material/masupplier'
|
||||||
|
|
||||||
export const formLabelAdd = [
|
export const formLabelAdd = [
|
||||||
{ f_label: '到货日期', f_model: 'startTime', f_type: 'date' },
|
{ f_label: '到货日期', f_model: 'startTime', f_type: 'date' },
|
||||||
{ f_label: '物资厂家', f_model: 'startTime', f_type: 'sel', f_selList: this.factoryRange },
|
{ f_label: '物资厂家', f_model: 'supplierId', f_type: 'sel', },
|
||||||
{ f_label: '出场日期', f_model: 'endTime', f_type: 'date' },
|
{ f_label: '出厂日期', f_model: 'productDate', f_type: 'date' },
|
||||||
{ f_label: '税率', f_model: 'keyWord', f_type: 'num' },
|
{ f_label: '税率', f_model: 'taxRate', f_type: 'num' },
|
||||||
{ f_label: '类型规格', f_model: 'keyWord', f_type: 'ipt' },
|
{ f_label: '类型规格', f_model: 'keyWord', f_type: 'ipt' },
|
||||||
{ f_label: '备注', f_model: 'keyWord', f_type: 'ipt' },
|
{ f_label: '备注', f_model: 'keyWord', f_type: 'ipt' },
|
||||||
]
|
]
|
||||||
export const columnsListAdd = [
|
export const columnsListAdd = [
|
||||||
{ t_props: 'name', t_label: '物资名称', },
|
{ t_props: 'name', t_label: '物资名称', },
|
||||||
{ t_props: 'address', t_label: '规格型号' },
|
{ t_props: 'typeId', t_label: '规格型号', t_slot: 'typeId' },
|
||||||
{ t_props: 'companyMan', t_label: '单位' },
|
{ t_props: 'unitName', t_label: '单位' },
|
||||||
{ t_props: 'phone', t_label: '购置单价(含税)', },
|
{ t_props: 'purchasePrice', t_label: '单价(含税)', t_slot: 'purchasePrice' },
|
||||||
{ t_props: 'scopeBusiness', t_label: '购置单价(不含税)' },
|
{ t_props: 'notaxPrice', t_label: '单价(不含税)', t_slot: 'notaxPrice' },
|
||||||
{ t_props: 'picUrl', t_label: '税率', },
|
{ t_props: 'taxRate', t_label: '税率', t_slot: 'taxRate' },
|
||||||
{ t_props: 'notes', t_label: '供应商' },
|
{ t_props: 'supplierId', t_label: '物资厂家', t_slot: 'supplierId' },
|
||||||
{ t_props: 'notes', t_label: '出场日期' },
|
{ t_props: 'productDate', t_label: '出厂日期', t_slot: 'productDate' },
|
||||||
{ t_props: 'notes', t_label: '相关配套资料' },
|
{ t_props: 'files', t_label: '相关配套资料', t_slot: 'files' },
|
||||||
|
|
||||||
]
|
]
|
||||||
export const dialogConfigAdd = {
|
export const dialogConfigAdd = {
|
||||||
outerWidth: '80%',
|
outerWidth: '80%',
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
export const columnsList = [
|
||||||
|
{ t_props: 'name', t_label: '报告类型', },
|
||||||
|
{ t_props: 'typeId', t_label: '合格证', },
|
||||||
|
{ t_props: 'unitName', t_label: '类型名称' },
|
||||||
|
{ t_props: 'purchasePrice', t_label: '规格型号', },
|
||||||
|
{ t_props: 'notaxPrice', t_label: '报告日期', },
|
||||||
|
{ t_props: 'taxRate', t_label: '截止有效期', },
|
||||||
|
]
|
||||||
|
|
||||||
|
export const dialogConfig = {
|
||||||
|
outerWidth: '80%',
|
||||||
|
outerTitle: '',
|
||||||
|
outerVisible: false,
|
||||||
|
}
|
||||||
|
|
@ -67,6 +67,8 @@
|
||||||
|
|
||||||
<add-arrival
|
<add-arrival
|
||||||
v-if="isShowComponent === 'add-arrival'"
|
v-if="isShowComponent === 'add-arrival'"
|
||||||
|
:send-range="factoryRange"
|
||||||
|
:send-cascader="cascaderRange"
|
||||||
>
|
>
|
||||||
|
|
||||||
</add-arrival>
|
</add-arrival>
|
||||||
|
|
@ -81,15 +83,47 @@ import { commonMixin } from '../mixins/common'
|
||||||
import FormArrival from './components/form-arrival.vue'
|
import FormArrival from './components/form-arrival.vue'
|
||||||
import AddArrival from './components/add-arrival.vue'
|
import AddArrival from './components/add-arrival.vue'
|
||||||
import {
|
import {
|
||||||
queryPurchaseArrivalListApi
|
queryPurchaseArrivalListApi,
|
||||||
|
queryTypeListApi
|
||||||
} from '@/api/purchase/arrival'
|
} from '@/api/purchase/arrival'
|
||||||
|
import {
|
||||||
|
querySupplierListApi
|
||||||
|
} from '@/api/material/masupplier'
|
||||||
export default {
|
export default {
|
||||||
name: 'purchaseArrivalManage',
|
name: 'purchaseArrivalManage',
|
||||||
mixins: [commonMixin], // 混入公共方法和数据
|
mixins: [commonMixin], // 混入公共方法和数据
|
||||||
components: { FormArrival, PageHeader, AddArrival },
|
components: { FormArrival, PageHeader, AddArrival },
|
||||||
created() {
|
created() {
|
||||||
|
// 查询厂家
|
||||||
|
querySupplierListApi().then(res => {
|
||||||
|
this.factoryRange = res.rows.map(item => {
|
||||||
|
return {
|
||||||
|
label: item.name,
|
||||||
|
value: item.id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}).catch(err => {})
|
||||||
|
// 查询物资规格
|
||||||
|
queryTypeListApi().then(res => {
|
||||||
|
res.data.forEach(lv1 => {
|
||||||
|
if(!lv1.children) {
|
||||||
|
lv1.disabled = true
|
||||||
|
} else {
|
||||||
|
lv1.children.forEach(lv2 => {
|
||||||
|
if(!lv2.children) {
|
||||||
|
lv2.disabled = true
|
||||||
|
} else {
|
||||||
|
lv2.children.forEach(lv3 => {
|
||||||
|
if(!lv3.children) {
|
||||||
|
lv3.disabled = true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.cascaderRange = res.data
|
||||||
|
}).catch(err => {})
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
queryPurchaseArrivalListApi,
|
queryPurchaseArrivalListApi,
|
||||||
|
|
@ -106,6 +140,8 @@ export default {
|
||||||
dialogConfig,
|
dialogConfig,
|
||||||
addDialogTitle: '新建到货管理', // 新建时弹框标题
|
addDialogTitle: '新建到货管理', // 新建时弹框标题
|
||||||
editDialogTitle: '修改到货管理', // 修改时弹框标题
|
editDialogTitle: '修改到货管理', // 修改时弹框标题
|
||||||
|
factoryRange: [],
|
||||||
|
cascaderRange: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,11 @@ export const commonMixin = {
|
||||||
this.dialogConfig.outerTitle = this.editDialogTitle
|
this.dialogConfig.outerTitle = this.editDialogTitle
|
||||||
this.dialogConfig.outerVisible = true
|
this.dialogConfig.outerVisible = true
|
||||||
},
|
},
|
||||||
|
handleEditDataAdd(data) {
|
||||||
|
this.editParams = data
|
||||||
|
this.dialogConfigAdd.outerTitle = this.editDialogTitle
|
||||||
|
this.dialogConfigAdd.outerVisible = true
|
||||||
|
},
|
||||||
/** 导入数据 */
|
/** 导入数据 */
|
||||||
handleImportData() {
|
handleImportData() {
|
||||||
console.log('导入--')
|
console.log('导入--')
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue