|
@@ -23,7 +23,7 @@ import import_mixin from '@/components/template/import_mixin.js'
|
|
|
import ImageUpload from '@/components/file-upload'
|
|
|
import { downloadFiles } from '@/utils/util'
|
|
|
import { required, mobileRequired, mobile, httpUrl, email } from '@/components/template/rules_verify.js'
|
|
|
-import { listPageV2,pageExport, getDetail, add, edit, updateStatus, listImport, getTypeList } from "@/api/auxiliaryFittings/attachmentProfile";
|
|
|
+import { listPageV2,pageExport, getDetail, add, edit, updateStatus, listImport, getTypeList, getCategoryList } from "@/api/auxiliaryFittings/attachmentProfile";
|
|
|
export default {
|
|
|
components: { TemplatePage, ImageUpload },
|
|
|
mixins: [import_mixin],
|
|
@@ -92,10 +92,21 @@ export default {
|
|
|
formDialog: false,
|
|
|
formData: {
|
|
|
companyName: JSON.parse(localStorage.getItem('greemall_user')).companyName,
|
|
|
- partsUnitName: '',
|
|
|
+ goodsType: 'P',
|
|
|
+ goodsStockUnit: '',
|
|
|
+ goodsCode: '',
|
|
|
+ goodsName: '',
|
|
|
+ normType: 'M',
|
|
|
+ stateEnum: 'ON',
|
|
|
categoryList: [],
|
|
|
- partsUnitList: [],
|
|
|
- brandList: []
|
|
|
+ brandList: [],
|
|
|
+ marketPrice: '',
|
|
|
+ normAmount: '',
|
|
|
+ selfWebsitAmount: '',
|
|
|
+ selfWorkerAmount: '',
|
|
|
+ outWebsitAmount: '',
|
|
|
+ outWorkerAmount: '',
|
|
|
+ remark: ''
|
|
|
},
|
|
|
partsUnitList: [],
|
|
|
brandList: [],
|
|
@@ -157,7 +168,7 @@ export default {
|
|
|
attributes: { placeholder: '请选择单位',filterable: true, clearable: true },
|
|
|
formItemAttributes: {
|
|
|
label: '单位',
|
|
|
- prop: 'partsUnitName',
|
|
|
+ prop: 'goodsStockUnit',
|
|
|
rules: [...required]
|
|
|
},
|
|
|
events: {
|
|
@@ -182,21 +193,21 @@ export default {
|
|
|
attributes: {},
|
|
|
formItemAttributes: {
|
|
|
label: '收费类型',
|
|
|
- prop: 'venderType',
|
|
|
+ prop: 'normType',
|
|
|
rules: [...required]
|
|
|
},
|
|
|
render: (h, { props, onInput }) => {
|
|
|
var { value } = props
|
|
|
return (
|
|
|
- <el-radio-group v-model={this.formData.venderType}>
|
|
|
- <el-radio disabled={this.formDialogType==2} label="P">配件物料</el-radio>
|
|
|
- <el-radio disabled={this.formDialogType==2} label="A">服务收费</el-radio>
|
|
|
+ <el-radio-group v-model={this.formData.normType}>
|
|
|
+ <el-radio disabled={this.formDialogType==2} label="M">配件物料</el-radio>
|
|
|
+ <el-radio disabled={this.formDialogType==2} label="S">服务收费</el-radio>
|
|
|
</el-radio-group>
|
|
|
)
|
|
|
}
|
|
|
}, {
|
|
|
md: 24,
|
|
|
- isShow: true,
|
|
|
+ isShow: this.formData.normType == 'M'?true:false,
|
|
|
name: 'el-checkbox-add',
|
|
|
labelKey: 'dictValue',
|
|
|
valueKey: 'dictCode',
|
|
@@ -209,10 +220,10 @@ export default {
|
|
|
}
|
|
|
}, {
|
|
|
md: 24,
|
|
|
- isShow: true,
|
|
|
+ isShow: this.formData.normType == 'M'?true:false,
|
|
|
name: 'el-checkbox-add',
|
|
|
- labelKey: 'dictValue',
|
|
|
- valueKey: 'dictCode',
|
|
|
+ labelKey: 'name',
|
|
|
+ valueKey: 'categoryId',
|
|
|
attributes: {},
|
|
|
options: this.categoryList,
|
|
|
formItemAttributes: {
|
|
@@ -223,63 +234,149 @@ export default {
|
|
|
}, {
|
|
|
md: 12,
|
|
|
isShow: true,
|
|
|
- name: 'el-input',
|
|
|
+ name: 'slot-component',
|
|
|
attributes: { placeholder: '请输入', type: 'number' },
|
|
|
formItemAttributes: {
|
|
|
label: '销售价格',
|
|
|
- prop: 'www',
|
|
|
+ prop: 'marketPrice',
|
|
|
rules: [...required]
|
|
|
- }
|
|
|
+ },
|
|
|
+ render: (h, { props, onInput }) => {
|
|
|
+ var { value } = props
|
|
|
+ return (
|
|
|
+ <div style="position: relative;">
|
|
|
+ <div style="display: flex;justify-content: space-around;align-items: center;position: relative;">
|
|
|
+ <el-input v-model={this.formData.marketPrice} onChange={(e)=>{
|
|
|
+ if(this.formData.selfWorkerAmount > e){
|
|
|
+ this.formData.marketPrice = ''
|
|
|
+ return this.$message.warning('自有库存师傅分账金额必须小于销售价格!');
|
|
|
+ }else if(this.formData.outWorkerAmount > e){
|
|
|
+ this.formData.outWorkerAmount = ''
|
|
|
+ return this.$message.warning('外购辅材师傅分账金额必须小于销售价格!');
|
|
|
+ }
|
|
|
+ this.formData.selfWebsitAmount = e - this.formData.selfWorkerAmount
|
|
|
+ this.formData.outWebsitAmount = e - this.formData.outWorkerAmount
|
|
|
+ }} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
|
|
|
+ </div>
|
|
|
+ <div style="color: #EA8000">注:维护网点销售给师傅的价格</div>
|
|
|
+ </div>
|
|
|
+ )
|
|
|
+ }
|
|
|
}, {
|
|
|
md: 12,
|
|
|
isShow: true,
|
|
|
- name: 'el-input',
|
|
|
+ name: 'slot-component',
|
|
|
attributes: { placeholder: '请输入', type: 'number' },
|
|
|
formItemAttributes: {
|
|
|
label: '收费标准',
|
|
|
- prop: 'email',
|
|
|
- rules: [...email]
|
|
|
- }
|
|
|
+ prop: 'normAmount',
|
|
|
+ rules: [...required]
|
|
|
+ },
|
|
|
+ render: (h, { props, onInput }) => {
|
|
|
+ var { value } = props
|
|
|
+ return (
|
|
|
+ <div style="position: relative;">
|
|
|
+ <div style="display: flex;justify-content: space-around;align-items: center;position: relative;">
|
|
|
+ <el-input v-model={this.formData.normAmount} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
|
|
|
+ </div>
|
|
|
+ <div style="color: #EA8000">注:分账金额需扣除手续费0.6%</div>
|
|
|
+ </div>
|
|
|
+ )
|
|
|
+ }
|
|
|
}, {
|
|
|
md: 12,
|
|
|
isShow: true,
|
|
|
- name: 'el-input',
|
|
|
+ name: 'slot-component',
|
|
|
attributes: { placeholder: '请输入', type: 'number' },
|
|
|
formItemAttributes: {
|
|
|
label: '自有库存师傅分账金额',
|
|
|
- prop: 'telNo',
|
|
|
+ prop: 'selfWorkerAmount',
|
|
|
rules: [...required]
|
|
|
- }
|
|
|
+ },
|
|
|
+ render: (h, { props, onInput }) => {
|
|
|
+ var { value } = props
|
|
|
+ const that = this
|
|
|
+ return (
|
|
|
+ <div style="position: relative;">
|
|
|
+ <div style="display: flex;justify-content: space-around;align-items: center;position: relative;">
|
|
|
+ <el-input v-model={this.formData.selfWorkerAmount} onChange={(e)=>{
|
|
|
+ if(e && (Number(e) > Number(that.formData.marketPrice))){
|
|
|
+ that.formData.selfWorkerAmount = ''
|
|
|
+ return this.$message.warning('自有库存师傅分账金额必须小于销售价格!');
|
|
|
+ }
|
|
|
+ that.formData.selfWebsitAmount = that.formData.marketPrice - e
|
|
|
+ }} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ )
|
|
|
+ }
|
|
|
}, {
|
|
|
md: 12,
|
|
|
isShow: true,
|
|
|
- name: 'el-input',
|
|
|
+ name: 'slot-component',
|
|
|
attributes: { placeholder: '请输入', type: 'number' },
|
|
|
formItemAttributes: {
|
|
|
label: '外购辅材师傅分账金额',
|
|
|
- prop: 'faxNo',
|
|
|
+ prop: 'outWorkerAmount',
|
|
|
rules: [...required]
|
|
|
- }
|
|
|
+ },
|
|
|
+ render: (h, { props, onInput }) => {
|
|
|
+ var { value } = props
|
|
|
+ const that = this
|
|
|
+ return (
|
|
|
+ <div style="position: relative;">
|
|
|
+ <div style="display: flex;justify-content: space-around;align-items: center;position: relative;">
|
|
|
+ <el-input v-model={this.formData.outWorkerAmount} onChange={(e)=>{
|
|
|
+ if(Number(e) > Number(that.formData.marketPrice)){
|
|
|
+ this.formData.outWorkerAmount = ''
|
|
|
+ return this.$message.warning('外购辅材师傅分账金额必须小于销售价格!');
|
|
|
+ }
|
|
|
+ this.formData.outWebsitAmount = this.formData.marketPrice - e
|
|
|
+ }} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ )
|
|
|
+ }
|
|
|
}, {
|
|
|
md: 12,
|
|
|
isShow: true,
|
|
|
- name: 'el-input',
|
|
|
+ name: 'slot-component',
|
|
|
attributes: { placeholder: '请输入', type: 'number' },
|
|
|
formItemAttributes: {
|
|
|
label: '自有库存网点分账金额',
|
|
|
- prop: 'telNo',
|
|
|
+ prop: 'selfWebsitAmount',
|
|
|
rules: [...required]
|
|
|
- }
|
|
|
+ },
|
|
|
+ render: (h, { props, onInput }) => {
|
|
|
+ var { value } = props
|
|
|
+ return (
|
|
|
+ <div style="position: relative;">
|
|
|
+ <div style="display: flex;justify-content: space-around;align-items: center;position: relative;">
|
|
|
+ <el-input v-model={this.formData.selfWebsitAmount} disabled type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ )
|
|
|
+ }
|
|
|
}, {
|
|
|
md: 12,
|
|
|
isShow: true,
|
|
|
- name: 'el-input',
|
|
|
+ name: 'slot-component',
|
|
|
attributes: { placeholder: '请输入', type: 'number' },
|
|
|
formItemAttributes: {
|
|
|
label: '外购辅材网点分账金额',
|
|
|
- prop: 'faxNo',
|
|
|
+ prop: 'outWebsitAmount',
|
|
|
rules: [...required]
|
|
|
- }
|
|
|
+ },
|
|
|
+ render: (h, { props, onInput }) => {
|
|
|
+ var { value } = props
|
|
|
+ return (
|
|
|
+ <div style="position: relative;">
|
|
|
+ <div style="display: flex;justify-content: space-around;align-items: center;position: relative;">
|
|
|
+ <el-input v-model={this.formData.outWebsitAmount} disabled type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ )
|
|
|
+ }
|
|
|
}, {
|
|
|
md: 24,
|
|
|
isShow: true,
|
|
@@ -293,11 +390,6 @@ export default {
|
|
|
}]
|
|
|
}
|
|
|
},
|
|
|
- created() {
|
|
|
- this.getTypeList('PARTS_UNIT','partsUnitList')
|
|
|
- this.getTypeList('BRAND','brandList')
|
|
|
- this.getTypeList('PARTS_UNIT','categoryList')
|
|
|
- },
|
|
|
methods: {
|
|
|
// 列表请求函数
|
|
|
getList(p) {
|
|
@@ -316,6 +408,11 @@ export default {
|
|
|
this[type] = res.data.records
|
|
|
})
|
|
|
},
|
|
|
+ getCategoryList(){
|
|
|
+ getCategoryList({"type":2}).then(res => {
|
|
|
+ this.categoryList = res.data
|
|
|
+ })
|
|
|
+ },
|
|
|
// 列表导出函数
|
|
|
exportList: pageExport,
|
|
|
// 表格列解析渲染数据更改
|
|
@@ -340,9 +437,11 @@ export default {
|
|
|
return (
|
|
|
<div class='operation-btns'>
|
|
|
<el-button type="text" onClick={() => {
|
|
|
- getDetail({ id: row.venderId }).then(res => {
|
|
|
- Object.assign(this.formData, res.data,{
|
|
|
- imageUrl:res.data?.imageUrl? res.data?.imageUrl?.split(",").map(item=>({url:item})) : []
|
|
|
+ getDetail({ id: row.goodsId }).then(res => {
|
|
|
+ Object.assign(this.formData, res.data, {
|
|
|
+ brandList: res.data.brandList?res.data.brandList:[],
|
|
|
+ categoryList: res.data.categoryList?res.data.categoryList:[],
|
|
|
+
|
|
|
})
|
|
|
console.log(this.formData)
|
|
|
this.formDialogType = 1
|
|
@@ -358,6 +457,9 @@ export default {
|
|
|
console.log(this.partsUnitList,this.brandList,this.categoryList)
|
|
|
},
|
|
|
openForm() {
|
|
|
+ this.getTypeList('PARTS_UNIT','partsUnitList')
|
|
|
+ this.getTypeList('BRAND','brandList')
|
|
|
+ this.getCategoryList()
|
|
|
this.formDialog = true;
|
|
|
},
|
|
|
formCancel() {
|
|
@@ -391,10 +493,7 @@ export default {
|
|
|
formConfirm() {
|
|
|
this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
|
|
|
if (valid) {
|
|
|
- ([add, edit][this.formDialogType])({
|
|
|
- ...this.formData,
|
|
|
- imageUrl:this.formData.imageUrl.map(item=>item.url).join(",")
|
|
|
- }).then(res => {
|
|
|
+ ([add, edit][this.formDialogType])(this.formData).then(res => {
|
|
|
this.$message({ type: 'success', message: `${this.formDialogTitles[this.formDialogType]}成功!` })
|
|
|
this.formCancel()
|
|
|
this.$refs.pageRef.refreshList()
|