فهرست منبع

配件资料管理

linwenxin 1 سال پیش
والد
کامیت
d70340aabb
1فایلهای تغییر یافته به همراه642 افزوده شده و 639 حذف شده
  1. 642 639
      src/views/auxiliaryFittings/attachmentProfile/index.vue

+ 642 - 639
src/views/auxiliaryFittings/attachmentProfile/index.vue

@@ -1,19 +1,19 @@
 <template>
-	<template-page ref="pageRef" :get-list="getList" :table-attributes="tableAttributes" :table-events="tableEvents" :operationColumnWidth="50"
-	  :options-evens-group="optionsEvensGroup" :moreParameters="moreParameters" :column-parsing="columnParsing"
-	  :operation="operation" :exportList="exportList">
-	  <el-dialog title="" width="1200px" custom-class="diy-dialog" append-to-body :modal="true" :visible.sync="formDialog"
-	    :show-close="true" :close-on-click-modal="false" :modal-append-to-body="false" :before-close="formCancel">
-	    <zj-form-container ref="formRef" :form-data="formData" :styleSwitch="false">
-	      <zj-form-module :title="formDialogTitles[formDialogType]" label-width="170px" :showPackUp="false"
-	        :form-data="formData" :form-items="formItems" :disabled="formDialogType==2">
-	      </zj-form-module>
-	    </zj-form-container>
-	    <div slot="footer" class="dialog-footer">
-			<el-button size="mini" @click="formCancel">取 消</el-button>
-			<el-button size="mini" type="primary" @click="formConfirm()">确定</el-button>
-	    </div>
-	  </el-dialog>
+	<template-page ref="pageRef" :get-list="getList" :table-attributes="tableAttributes" :table-events="tableEvents"
+		:operationColumnWidth="50" :options-evens-group="optionsEvensGroup" :moreParameters="moreParameters"
+		:column-parsing="columnParsing" :operation="operation()" :exportList="exportList">
+		<el-dialog title="" width="1200px" custom-class="diy-dialog" append-to-body :modal="true" :visible.sync="formDialog"
+			:show-close="true" :close-on-click-modal="false" :modal-append-to-body="false" :before-close="formCancel">
+			<zj-form-container ref="formRef" :form-data="formData" :styleSwitch="false">
+				<zj-form-module :title="formDialogTitles[formDialogType]" label-width="170px" :showPackUp="false"
+					:form-data="formData" :form-items="formItems" :disabled="formDialogType == 2">
+				</zj-form-module>
+			</zj-form-container>
+			<div slot="footer" class="dialog-footer">
+				<el-button size="mini" @click="formCancel">取 消</el-button>
+				<el-button size="mini" type="primary" @click="formConfirm()">确定</el-button>
+			</div>
+		</el-dialog>
 	</template-page>
 </template>
 
@@ -23,647 +23,650 @@ 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, listImport1, listImport2, getTypeList, getCategoryList } from "@/api/auxiliaryFittings/attachmentProfile";
+import { listPageV2, pageExport, getDetail, add, edit, updateStatus, listImport1, listImport2, getTypeList, getCategoryList } from "@/api/auxiliaryFittings/attachmentProfile";
 import { commonTemplateDownload } from '@/api/common.js'
+import operation_mixin from '@/components/template/operation_mixin.js'
 export default {
-  components: { TemplatePage, ImageUpload },
-  mixins: [import_mixin],
-  data() {
-    return {
-      // 事件组合
-      optionsEvensGroup: [
-	  	[
-	  		[
-	  			{
-	  				name: '新建',
-	  				click: this.addData
-	  			}
-	  		]
-	  	],
-		[
-			[
-				{
-					name: '批量上架',
-					click: ()=>{
-						this.updateStatus('ON')
+	components: { TemplatePage, ImageUpload },
+	mixins: [import_mixin, operation_mixin],
+	data() {
+		return {
+			// 表格属性
+			tableAttributes: {
+				// 启用勾选列
+				selectColumn: true
+			},
+			// 表格事件
+			tableEvents: {
+				'selection-change': this.selectionChange
+			},
+			// 勾选选中行
+			recordSelected: [],
+			/** 表单变量 */
+			formDialogType: 0,
+			formDialogTitles: ["新增", "编辑", "详情"],
+			formDialog: false,
+			formData: {
+				companyName: JSON.parse(localStorage.getItem('greemall_user')).companyName,
+				goodsType: 'P',
+				goodsStockUnit: '',
+				goodsCode: '',
+				goodsName: '',
+				normType: 'M',
+				status: 'ON',
+				categoryList: [],
+				brandList: [],
+				marketPrice: '',
+				normAmount: '',
+				selfWebsitAmount: '',
+				selfWorkerAmount: '',
+				outWebsitAmount: '',
+				outWorkerAmount: '',
+				remark: ''
+			},
+			partsUnitList: [],
+			brandList: [],
+			categoryList: []
+		}
+	},
+	computed: {
+		// 事件组合
+		optionsEvensGroup() {
+			return [
+				[
+					[
+						this.optionsEvensAuth("add", {
+							click: this.addData
+						}),
+					],
+				],
+				[
+					[
+						this.optionsEvensAuth("shelfInBulk", {
+							click: () => {
+								this.updateStatus('ON')
+							}
+						}),
+					],
+				],
+				[
+					[
+						this.optionsEvensAuth("batchRemoval", {
+							click: () => {
+								this.updateStatus('OFF')
+							}
+						}),
+					],
+				],
+				[
+					[
+						this.optionsEvensAuth("template", {
+							click: this.handleDownload1
+						}),
+					],
+					[
+						this.optionsEvensAuth("imp", ({ moduleName }) => {
+							return {
+								name: moduleName,
+								render: () => {
+									return this.importButton(listImport1, moduleName)
+								}
+							}
+						}),
+					],
+				],
+				[
+					[
+						this.optionsEvensAuth("importTemplate", {
+							click: this.handleDownload2
+						}),
+					],
+					[
+						this.optionsEvensAuth("Import", ({ moduleName }) => {
+							return {
+								name: moduleName,
+								render: () => {
+									return this.importButton(listImport2, moduleName)
+								}
+							}
+						}),
+					],
+				]
+			]
+		},
+		// 更多参数
+		moreParameters() {
+			return []
+		},
+
+		//加法 
+		accAdd() {
+			return function (arg1, arg2) {
+				var r1, r2, m;
+				try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
+				try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }
+				m = Math.pow(10, Math.max(r1, r2))
+				return (arg1 * m + arg2 * m) / m
+			}
+		},
+		//减法 
+		Subtr() {
+			return function (arg1, arg2) {
+				var r1, r2, m, n;
+				try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
+				try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }
+				m = Math.pow(10, Math.max(r1, r2));
+				n = (r1 >= r2) ? r1 : r2;
+				return ((arg1 * m - arg2 * m) / m).toFixed(2);
+			}
+		},
+		formItems() {
+			return [{
+				md: 12,
+				isShow: true,
+				name: 'el-input',
+				attributes: { placeholder: '请输入', disabled: true },
+				formItemAttributes: {
+					label: '所属商户',
+					prop: 'companyName',
+					rules: [...required]
+				},
+			}, {
+				md: 12,
+				isShow: true,
+				name: 'slot-component',
+				attributes: {},
+				formItemAttributes: {
+					label: '状态',
+					prop: 'status',
+					rules: [...required]
+				},
+				render: (h, { props, onInput }) => {
+					var { value } = props
+					return (
+						<el-radio-group v-model={this.formData.status}>
+							<el-radio disabled={this.formDialogType == 2} label="ON">上架</el-radio>
+							<el-radio disabled={this.formDialogType == 2} label="OFF">下架</el-radio>
+						</el-radio-group>
+					)
+				}
+			}, {
+				md: 12,
+				isShow: true,
+				name: 'el-input',
+				attributes: { placeholder: '请输入配件名称', },
+				formItemAttributes: {
+					label: '配件名称',
+					prop: 'goodsName',
+					rules: [...required]
+				}
+			}, {
+				md: 12,
+				isShow: true,
+				name: 'el-select-add',
+				labelKey: 'dictValue',
+				valueKey: 'dictValue',
+				options: this.partsUnitList,
+				attributes: { placeholder: '请选择单位', filterable: true, clearable: true },
+				formItemAttributes: {
+					label: '单位',
+					prop: 'goodsStockUnit',
+					rules: [...required]
+				},
+				events: {
+					change: (e) => {
+						this.$refs.formRef.validateField(['goodsStockUnit'], (valid, invalidFields, errLabels) => { })
 					}
 				}
-			]
-		],
-		[
-			[
-				{
-					name: '批量下架',
-					click: ()=>{
-						this.updateStatus('OFF')
+			}, {
+				md: 12,
+				isShow: true,
+				name: 'el-input',
+				attributes: { placeholder: '请输入配件代码' },
+				formItemAttributes: {
+					label: '配件代码',
+					prop: 'goodsCode',
+					rules: [...required]
+				}
+			}, {
+				md: 12,
+				isShow: true,
+				name: 'slot-component',
+				attributes: {},
+				formItemAttributes: {
+					label: '收费类型',
+					prop: 'normType',
+					rules: [...required]
+				},
+				render: (h, { props, onInput }) => {
+					var { value } = props
+					return (
+						<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: this.formData.normType == 'M' ? true : false,
+				name: 'el-checkbox-add',
+				labelKey: 'dictValue',
+				valueKey: 'dictCode',
+				attributes: {},
+				options: this.brandList,
+				formItemAttributes: {
+					label: '适用品牌',
+					prop: 'brandList',
+					rules: [...required]
+				},
+				events: {
+					change: (e) => {
+						this.$refs.formRef.validateField(['brandList'], (valid, invalidFields, errLabels) => { })
 					}
 				}
-			]
-		],
-		[
-		  [
-		    {
-		      name: '下载配件物料导入模板',
-		      click: this.handleDownload1
-		    }
-		  ],
-		  [
-		    {
-		      name: '导入配件物料模板',
-		      render: () => {
-		        return this.importButton(listImport1, '导入模板')
-		      }
-		    }
-		  ],
-		],
-		[
-          [
-            {
-              name: '下载服务收费导入模板',
-              click: this.handleDownload2
-            }
-          ],
-          [
-            {
-              name: '导入服务收费模板',
-              render: () => {
-                return this.importButton(listImport2, '导入模板')
-              }
-            }
-          ],
-        ],
-	  ],
-      // 表格属性
-      tableAttributes: {
-        // 启用勾选列
-        selectColumn: true
-      },
-      // 表格事件
-      tableEvents: {
-        'selection-change': this.selectionChange
-      },
-      // 勾选选中行
-      recordSelected: [],
-      /** 表单变量 */
-      formDialogType: 0,
-      formDialogTitles: ["新增","编辑", "详情"],
-      formDialog: false,
-      formData: {
-		companyName: JSON.parse(localStorage.getItem('greemall_user')).companyName,
-		goodsType: 'P',
-		goodsStockUnit: '',
-		goodsCode: '',
-		goodsName: '',
-		normType: 'M',
-		status: 'ON',
-		categoryList: [],
-		brandList: [],
-		marketPrice: '',
-		normAmount: '',
-		selfWebsitAmount: '',
-		selfWorkerAmount: '',
-		outWebsitAmount: '',
-		outWorkerAmount: '',
-		remark: ''
-      },
-	  partsUnitList: [],
-	  brandList: [],
-	  categoryList: []
-    }
-  },
-  computed: {
-    // 更多参数
-    moreParameters() {
-      return []
-    },
-	
-	//加法 
-	accAdd(){
-		return function(arg1,arg2){
-			var r1,r2,m;
-			try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0} 
-			try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0} 
-			m=Math.pow(10,Math.max(r1,r2)) 
-			return (arg1*m+arg2*m)/m 
-		}
-	},
-	//减法 
-	Subtr(){ 
-		return function(arg1,arg2){
-			var r1,r2,m,n;
-			try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0} 
-			try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0} 
-			m=Math.pow(10,Math.max(r1,r2)); 
-			n=(r1>=r2)?r1:r2; 
-			return ((arg1*m-arg2*m)/m).toFixed(2); 
+			}, {
+				md: 24,
+				isShow: this.formData.normType == 'M' ? true : false,
+				name: 'el-checkbox-add',
+				labelKey: 'name',
+				valueKey: 'categoryId',
+				attributes: {},
+				options: this.categoryList,
+				formItemAttributes: {
+					label: '适用产品大类',
+					prop: 'categoryList',
+					rules: [...required]
+				},
+				events: {
+					change: (e) => {
+						this.$refs.formRef.validateField(['categoryList'], (valid, invalidFields, errLabels) => { })
+					}
+				}
+			}, {
+				md: 12,
+				isShow: this.formData.normType == 'M' ? true : false,
+				name: 'slot-component',
+				attributes: { placeholder: '请输入', type: 'number' },
+				formItemAttributes: {
+					label: '销售价格',
+					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} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
+							</div>
+							<div style="color: #EA8000">注:维护网点销售给师傅的价格</div>
+						</div>
+					)
+				}
+			}, {
+				md: 12,
+				isShow: this.formData.normType == 'M' ? true : false,
+				name: 'slot-component',
+				attributes: { placeholder: '请输入', type: 'number' },
+				formItemAttributes: {
+					label: '收费标准',
+					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} onChange={(e) => {
+									this.formData.normAmount = Number(e).toFixed(2)
+									if (this.formData.selfWorkerAmount > e) {
+										this.formData.normAmount = ''
+										return this.$message.warning('自有库存师傅分账金额必须小于收费标准!');
+									} else if (this.formData.outWorkerAmount > e) {
+										this.formData.outWorkerAmount = ''
+										return this.$message.warning('外购配件师傅分账金额必须小于收费标准!');
+									}
+									this.formData.selfWebsitAmount = this.Subtr(e, this.formData.selfWorkerAmount)
+									this.formData.outWebsitAmount = this.Subtr(e, this.formData.outWorkerAmount)
+									this.$refs.formRef.validateField(['selfWebsitAmount'], (valid, invalidFields, errLabels) => { })
+									this.$refs.formRef.validateField(['outWebsitAmount'], (valid, invalidFields, errLabels) => { })
+								}} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
+							</div>
+							<div style="color: #EA8000">注:分账金额需扣除手续费0.6%</div>
+						</div>
+					)
+				}
+			}, {
+				md: 12,
+				isShow: this.formData.normType == 'M' ? true : false,
+				name: 'slot-component',
+				attributes: { placeholder: '请输入', type: 'number' },
+				formItemAttributes: {
+					label: '自有库存师傅分账金额',
+					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) => {
+									this.formData.selfWorkerAmount = Number(this.formData.selfWorkerAmount).toFixed(2)
+									if (e && (Number(e) > Number(that.formData.normAmount))) {
+										that.formData.selfWorkerAmount = ''
+										return this.$message.warning('自有库存师傅分账金额必须小于收费标准!');
+									}
+									that.formData.selfWebsitAmount = this.Subtr(that.formData.normAmount, e)
+								}} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
+							</div>
+						</div>
+					)
+				}
+			}, {
+				md: 12,
+				isShow: this.formData.normType == 'M' ? false : true,
+				name: 'slot-component',
+				attributes: { placeholder: '请输入', type: 'number' },
+				formItemAttributes: {
+					label: '师傅分账比例',
+					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) => {
+									this.formData.selfWorkerAmount = Number(this.formData.selfWorkerAmount).toFixed(2)
+									if (e && (Number(e) < 0)) {
+										return this.$message.warning('师傅分账比例不能为0!');
+									}
+									if (e && (this.accAdd(Number(e), Number(that.formData.selfWebsitAmount)) > 100)) {
+										this.formData.selfWorkerAmount = 0
+										return this.$message.warning('商户与师傅分账比例和最大只能100%!');
+									} else {
+										that.formData.selfWebsitAmount = this.Subtr(100, e)
+									}
+								}} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">%</span>
+							</div>
+						</div>
+					)
+				}
+			}, {
+				md: 12,
+				isShow: this.formData.normType == 'M' ? true : false,
+				name: 'slot-component',
+				attributes: { placeholder: '请输入', type: 'number' },
+				formItemAttributes: {
+					label: '外购配件师傅分账金额',
+					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) => {
+									this.formData.outWorkerAmount = Number(this.formData.outWorkerAmount).toFixed(2)
+									if (Number(e) > Number(that.formData.normAmount)) {
+										this.formData.outWorkerAmount = ''
+										return this.$message.warning('外购配件师傅分账金额必须小于收费标准!');
+									}
+									this.formData.outWebsitAmount = this.Subtr(this.formData.normAmount, e)
+								}} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
+							</div>
+						</div>
+					)
+				}
+			}, {
+				md: 12,
+				isShow: this.formData.normType == 'M' ? true : false,
+				name: 'slot-component',
+				attributes: { placeholder: '请输入', type: 'number' },
+				formItemAttributes: {
+					label: '自有库存商户分账金额',
+					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: this.formData.normType == 'M' ? false : true,
+				name: 'slot-component',
+				attributes: { placeholder: '请输入', type: 'number' },
+				formItemAttributes: {
+					label: '商户分账比例',
+					prop: 'selfWebsitAmount',
+					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.selfWebsitAmount} onChange={(e) => {
+									this.formData.selfWebsitAmount = Number(this.formData.selfWebsitAmount).toFixed(2)
+									if (e && (Number(e) < 0)) {
+										return this.$message.warning('商户分账比例不能为0!');
+									}
+									if (e && (this.accAdd(Number(e), Number(that.formData.selfWorkerAmount)) > 100)) {
+										this.formData.selfWebsitAmount = 0
+										return this.$message.warning('商户与师傅分账比例和最大只能100%!');
+									} else {
+										that.formData.selfWorkerAmount = this.Subtr(100, e)
+									}
+								}} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">%</span>
+							</div>
+						</div>
+					)
+				}
+			}, {
+				md: 12,
+				isShow: this.formData.normType == 'M' ? true : false,
+				name: 'slot-component',
+				attributes: { placeholder: '请输入', type: 'number' },
+				formItemAttributes: {
+					label: '外购配件商户分账金额',
+					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,
+				name: 'el-input',
+				attributes: { placeholder: '请输入备注内容', type: "textarea", rows: 5 },
+				formItemAttributes: {
+					label: '备注',
+					prop: 'remark',
+					rules: []
+				}
+			}]
 		}
 	},
-    formItems() {
-      return [{
-        md: 12,
-        isShow: true,
-        name: 'el-input',
-        attributes: { placeholder: '请输入', disabled: true },
-        formItemAttributes: {
-          label: '所属商户',
-          prop: 'companyName',
-          rules: [...required]
-        },
-      }, {
-        md: 12,
-        isShow: true,
-        name: 'slot-component',
-        attributes: { },
-        formItemAttributes: {
-          label: '状态',
-          prop: 'status',
-          rules: [...required]
-        },
-		render: (h, { props, onInput }) => {
-			var { value } = props
-			return (
-				<el-radio-group v-model={this.formData.status}>
-				    <el-radio disabled={this.formDialogType==2} label="ON">上架</el-radio>
-				    <el-radio disabled={this.formDialogType==2} label="OFF">下架</el-radio>
-				</el-radio-group>
-			)
-		}
-      }, {
-        md: 12,
-        isShow: true,
-        name: 'el-input',
-        attributes: { placeholder: '请输入配件名称', },
-        formItemAttributes: {
-          label: '配件名称',
-          prop: 'goodsName',
-          rules: [...required]
-        }
-      }, {
-        md: 12,
-        isShow: true,
-        name: 'el-select-add',
-		labelKey: 'dictValue',
-		valueKey: 'dictValue',
-		options: this.partsUnitList,
-        attributes: { placeholder: '请选择单位',filterable: true, clearable: true },
-        formItemAttributes: {
-          label: '单位',
-          prop: 'goodsStockUnit',
-          rules: [...required]
-        },
-		events: {
-			change:(e)=>{
-				this.$refs.formRef.validateField(['goodsStockUnit'],(valid, invalidFields, errLabels) => {})
+	methods: {
+		// 列表请求函数
+		getList(p, cb) {
+			try {
+				var pam = JSON.parse(JSON.stringify(p))
+				if (this.examineStatus) {
+					pam.params.push({ "param": "b.examine_status", "compare": "=", "value": this.examineStatus })
+				}
+				cb && cb(pam)
+				return listPageV2(pam)
+			} catch (error) {
+				console.log(error)
 			}
-		}
-      }, {
-        md: 12,
-        isShow: true,
-        name: 'el-input',
-        attributes: { placeholder: '请输入配件代码' },
-        formItemAttributes: {
-          label: '配件代码',
-          prop: 'goodsCode',
-          rules: [...required]
-        }
-      }, {
-        md: 12,
-        isShow: true,
-        name: 'slot-component',
-        attributes: {},
-        formItemAttributes: {
-          label: '收费类型',
-          prop: 'normType',
-          rules: [...required]
-        },
-		render: (h, { props, onInput }) => {
-			var { value } = props
-			return (
-				<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: this.formData.normType == 'M'?true:false,
-        name: 'el-checkbox-add',
-		labelKey: 'dictValue',
-		valueKey: 'dictCode',
-        attributes: {},
-		options: this.brandList,
-        formItemAttributes: {
-          label: '适用品牌',
-          prop: 'brandList',
-          rules: [...required]
-        },
-		events: {
-			change:(e)=>{
-				this.$refs.formRef.validateField(['brandList'],(valid, invalidFields, errLabels) => {})
+		},
+		getTypeList(value, type) {
+			getTypeList({ "pageNum": 1, "pageSize": -1, "params": [{ "param": "a.dict_type", "compare": "=", "value": `${value}` }, { "param": "a.status", "compare": "=", "value": "ON" }] }).then(res => {
+				this[type] = res.data.records
+			})
+		},
+		getCategoryList() {
+			getCategoryList({ "type": 2 }).then(res => {
+				this.categoryList = res.data
+			})
+		},
+		// 列表导出函数
+		exportList: pageExport,
+		// 表格列解析渲染数据更改
+		columnParsing(item, defaultData) {
+			if (item.jname === 'idCardImg') {
+				defaultData.render = (h, { row, index, column }) => {
+					return (
+						<div style="padding:0 6px;cursor: pointer;">
+							{row.idCardImg ? row.idCardImg.split(",").map(url => <el-image src={url} preview-src-list={[url]} fit="fit" style="width:80px;height:80px;" />) : null}
+						</div>
+					)
+				}
 			}
-		}
-      }, {
-        md: 24,
-        isShow: this.formData.normType == 'M'?true:false,
-        name: 'el-checkbox-add',
-		labelKey: 'name',
-		valueKey: 'categoryId',
-        attributes: {},
-		options: this.categoryList,
-        formItemAttributes: {
-          label: '适用产品大类',
-          prop: 'categoryList',
-          rules: [...required]
-        },
-		events: {
-			change:(e)=>{
-				this.$refs.formRef.validateField(['categoryList'],(valid, invalidFields, errLabels) => {})
+			if (item.jname === 'selfWorkerAmount') {
+				defaultData.render = (h, { row, index, column }) => {
+					return (
+						<div>{row.normType == 'M' ? row.selfWorkerAmount : (row.selfWorkerAmount + '%')}</div>
+					)
+				}
 			}
-		}
-      }, {
-        md: 12,
-        isShow: this.formData.normType == 'M'?true:false,
-        name: 'slot-component',
-        attributes: { placeholder: '请输入', type: 'number' },
-        formItemAttributes: {
-          label: '销售价格',
-          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} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
-					</div>
-					<div style="color: #EA8000">注:维护网点销售给师傅的价格</div>
-				</div>
-			)
-		}
-      }, {
-        md: 12,
-        isShow: this.formData.normType == 'M'?true:false,
-        name: 'slot-component',
-        attributes: { placeholder: '请输入', type: 'number' },
-        formItemAttributes: {
-          label: '收费标准',
-          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} onChange={(e)=>{
-							this.formData.normAmount = Number(e).toFixed(2)
-							if(this.formData.selfWorkerAmount > e){
-								this.formData.normAmount = ''
-								return this.$message.warning('自有库存师傅分账金额必须小于收费标准!');
-							}else if(this.formData.outWorkerAmount > e){
-								this.formData.outWorkerAmount = ''
-								return this.$message.warning('外购配件师傅分账金额必须小于收费标准!');
-							}
-							this.formData.selfWebsitAmount = this.Subtr(e,this.formData.selfWorkerAmount)
-							this.formData.outWebsitAmount = this.Subtr(e,this.formData.outWorkerAmount)
-							this.$refs.formRef.validateField(['selfWebsitAmount'],(valid, invalidFields, errLabels) => {})
-							this.$refs.formRef.validateField(['outWebsitAmount'],(valid, invalidFields, errLabels) => {})
-						}} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
-					</div>
-					<div style="color: #EA8000">注:分账金额需扣除手续费0.6%</div>
-				</div>
-			)
-		}
-      }, {
-        md: 12,
-        isShow: this.formData.normType == 'M'?true:false,
-        name: 'slot-component',
-        attributes: { placeholder: '请输入', type: 'number' },
-        formItemAttributes: {
-          label: '自有库存师傅分账金额',
-          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)=>{
-							this.formData.selfWorkerAmount = Number(this.formData.selfWorkerAmount).toFixed(2)
-							if(e && (Number(e) > Number(that.formData.normAmount))){
-								that.formData.selfWorkerAmount = ''
-								return this.$message.warning('自有库存师傅分账金额必须小于收费标准!');
-							}
-							that.formData.selfWebsitAmount =  this.Subtr(that.formData.normAmount,e)
-						}} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
-					</div>
-				</div>
-			)
-		}
-      }, {
-        md: 12,
-        isShow: this.formData.normType == 'M'?false:true,
-        name: 'slot-component',
-        attributes: { placeholder: '请输入', type: 'number' },
-        formItemAttributes: {
-          label: '师傅分账比例',
-          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)=>{
-							this.formData.selfWorkerAmount = Number(this.formData.selfWorkerAmount).toFixed(2)
-							if(e && (Number(e) < 0)){
-								return this.$message.warning('师傅分账比例不能为0!');
-							}
-							if(e && (this.accAdd(Number(e),Number(that.formData.selfWebsitAmount)) >100)){
-								this.formData.selfWorkerAmount = 0
-								return this.$message.warning('商户与师傅分账比例和最大只能100%!');
-							}else{
-								that.formData.selfWebsitAmount = this.Subtr(100,e)
-							}
-						}} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">%</span>
-					</div>
-				</div>
-			)
-		}
-      }, {
-        md: 12,
-        isShow: this.formData.normType == 'M'?true:false,
-        name: 'slot-component',
-        attributes: { placeholder: '请输入', type: 'number' },
-        formItemAttributes: {
-          label: '外购配件师傅分账金额',
-          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)=>{
-							this.formData.outWorkerAmount = Number(this.formData.outWorkerAmount).toFixed(2)
-							if(Number(e) > Number(that.formData.normAmount)){
-								this.formData.outWorkerAmount = ''
-								return this.$message.warning('外购配件师傅分账金额必须小于收费标准!');
-							}
-							this.formData.outWebsitAmount = this.Subtr(this.formData.normAmount,e)
-						}} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
-					</div>
-				</div>
-			)
-		}
-      }, {
-        md: 12,
-        isShow: this.formData.normType == 'M'?true:false,
-        name: 'slot-component',
-        attributes: { placeholder: '请输入', type: 'number' },
-        formItemAttributes: {
-          label: '自有库存商户分账金额',
-          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: this.formData.normType == 'M'?false:true,
-        name: 'slot-component',
-        attributes: { placeholder: '请输入', type: 'number' },
-        formItemAttributes: {
-          label: '商户分账比例',
-          prop: 'selfWebsitAmount',
-          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.selfWebsitAmount} onChange={(e)=>{
-							this.formData.selfWebsitAmount = Number(this.formData.selfWebsitAmount).toFixed(2)
-							if(e && (Number(e) < 0)){
-								return this.$message.warning('商户分账比例不能为0!');
-							}
-							if(e && (this.accAdd(Number(e),Number(that.formData.selfWorkerAmount)) >100)){
-								this.formData.selfWebsitAmount = 0
-								return this.$message.warning('商户与师傅分账比例和最大只能100%!');
-							}else{
-								that.formData.selfWorkerAmount = this.Subtr(100,e)
-							}
-						}} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">%</span>
-					</div>
-				</div>
-			)
-		}
-      }, {
-        md: 12,
-        isShow: this.formData.normType == 'M'?true:false,
-        name: 'slot-component',
-        attributes: { placeholder: '请输入', type: 'number' },
-        formItemAttributes: {
-          label: '外购配件商户分账金额',
-          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,
-        name: 'el-input',
-        attributes: { placeholder: '请输入备注内容',type: "textarea", rows: 5 },
-        formItemAttributes: {
-          label: '备注',
-          prop: 'remark',
-          rules: []
-        }
-      }]
-    }
-  },
-  methods: {
-    // 列表请求函数
-	getList(p,cb) {
-	  try {
-	    var pam = JSON.parse(JSON.stringify(p))
-	    if (this.examineStatus) {
-	      pam.params.push({ "param": "b.examine_status", "compare": "=", "value": this.examineStatus })
-	    }
-		cb && cb(pam)
-	    return listPageV2(pam)
-	  } catch (error) {
-	    console.log(error)
-	  }
-	},
-	getTypeList(value,type){
-		getTypeList({"pageNum":1,"pageSize":-1,"params":[{"param":"a.dict_type","compare":"=","value":`${value}`},{"param":"a.status","compare":"=","value": "ON"}]}).then(res => {
-		   this[type] = res.data.records
-		})
-	},
-	getCategoryList(){
-		getCategoryList({"type":2}).then(res => {
-		   this.categoryList = res.data
-		})
-	},
-    // 列表导出函数
-    exportList: pageExport,
-    // 表格列解析渲染数据更改
-    columnParsing(item, defaultData) {
-		if (item.jname === 'idCardImg') {
-		 	defaultData.render = (h, { row, index, column }) => {
-		   		return (
-		     		<div style="padding:0 6px;cursor: pointer;">
-		    	   		{row.idCardImg ? row.idCardImg.split(",").map(url => <el-image src={url} preview-src-list={[url]} fit="fit" style="width:80px;height:80px;" />) : null}
-		    	 	</div>
-		   		)
-		 	}
-		}
-		if(item.jname === 'selfWorkerAmount'){
-			defaultData.render = (h, { row, index, column }) => {
-			  	return (
-			   		<div>{row.normType == 'M'?row.selfWorkerAmount:(row.selfWorkerAmount + '%')}</div>
-			  	)
+			if (item.jname === 'selfWebsitAmount') {
+				defaultData.render = (h, { row, index, column }) => {
+					return (
+						<div>{row.normType == 'M' ? row.selfWebsitAmount : (row.selfWebsitAmount + '%')}</div>
+					)
+				}
 			}
-		}
-		if(item.jname === 'selfWebsitAmount'){
-			defaultData.render = (h, { row, index, column }) => {
-			  	return (
-			   		<div>{row.normType == 'M'?row.selfWebsitAmount: (row.selfWebsitAmount + '%')}</div>
-			  	)
+			return defaultData
+		},
+		// 监听勾选变化
+		selectionChange(data) {
+			this.recordSelected = data
+		},
+
+		operation() {
+			return this.operationBtn({
+				edit: {
+					click: ({ row, index, column }) => {
+						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
+							this.openForm()
+						})
+					}
+				},
+			})
+		},
+
+		addData() {
+			this.formDialogType = 0
+			this.openForm()
+			console.log(this.partsUnitList, this.brandList, this.categoryList)
+		},
+		openForm() {
+			this.getTypeList('PARTS_UNIT', 'partsUnitList')
+			this.getTypeList('BRAND', 'brandList')
+			this.getCategoryList()
+			this.formDialog = true;
+		},
+		formCancel() {
+			this.$refs.formRef.$refs.inlineForm.clearValidate()
+			this.$data.formData = this.$options.data().formData
+			this.formDialog = false
+		},
+		updateStatus(stateEnum) {
+			if (this.recordSelected.length == 0) {
+				return this.$message.warning('请至少勾选一条数据!');
 			}
-		}
-      return defaultData
-    },
-    // 监听勾选变化
-    selectionChange(data) {
-      this.recordSelected = data
-    },
-    // 表格操作列
-    operation(h, { row, index, column }) {
-      return (
-        <div class='operation-btns'>
-		  <el-button type="text" onClick={() => {
-		    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
-		      this.openForm()
-		    })
-		  }}>编辑</el-button>
-        </div>
-      )
-    },
-    addData() {
-      this.formDialogType = 0
-      this.openForm()
-	  console.log(this.partsUnitList,this.brandList,this.categoryList)
-    },
-    openForm() {
-	  this.getTypeList('PARTS_UNIT','partsUnitList')
-	  this.getTypeList('BRAND','brandList')
-	  this.getCategoryList()
-      this.formDialog = true;
-    },
-    formCancel() {
-      this.$refs.formRef.$refs.inlineForm.clearValidate()
-      this.$data.formData = this.$options.data().formData
-      this.formDialog = false
-    },
-	updateStatus(stateEnum){
-		if(this.recordSelected.length == 0){
-			return this.$message.warning('请至少勾选一条数据!');
-		}
-		console.log(this.recordSelected)
-		this.$confirm(`请确认是否${stateEnum=='OFF'?'下架':'上架'}该配件, 是否继续?`, '提示', {
-			confirmButtonText: '确定',
-			cancelButtonText: '取消',
-			type: 'warning'
-		}).then(() => {
-			updateStatus({
-				stateEnum,
-				ids: this.recordSelected.map(item=>{return item.goodsId}).join(',')
-			}).then(res => {
-				if (res.code == 200) {
-					this.$message({ type: 'success', message: `${stateEnum=='ON'?'上架':'下架'}成功!` })
-					this.$refs.pageRef.refreshList()
-				} else {
-					this.$message.error(res.msg);
+			console.log(this.recordSelected)
+			this.$confirm(`请确认是否${stateEnum == 'OFF' ? '下架' : '上架'}该配件, 是否继续?`, '提示', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning'
+			}).then(() => {
+				updateStatus({
+					stateEnum,
+					ids: this.recordSelected.map(item => { return item.goodsId }).join(',')
+				}).then(res => {
+					if (res.code == 200) {
+						this.$message({ type: 'success', message: `${stateEnum == 'ON' ? '上架' : '下架'}成功!` })
+						this.$refs.pageRef.refreshList()
+					} else {
+						this.$message.error(res.msg);
+					}
+				})
+			});
+		},
+		formConfirm() {
+			this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
+				if (valid) {
+					([add, edit][this.formDialogType])(this.formData).then(res => {
+						this.$message({ type: 'success', message: `${this.formDialogTitles[this.formDialogType]}成功!` })
+						this.formCancel()
+						this.$refs.pageRef.refreshList()
+					})
 				}
 			})
-		});
-	},
-    formConfirm() {
-      this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
-        if (valid) {
-          ([add, edit][this.formDialogType])(this.formData).then(res => {
-            this.$message({ type: 'success', message: `${this.formDialogTitles[this.formDialogType]}成功!` })
-            this.formCancel()
-            this.$refs.pageRef.refreshList()
-          })
-        }
-      })
-    },
-	// 下载导入模版
-	handleDownload1() {
-		commonTemplateDownload({ name: '配件模板(配件物料).xlsx' }, `${this.$route.meta.title}`).then(res => {
-		    this.$message({
-		        message: '下载成功',
-		        type: 'success'
-		    })
-		}).catch(err => {
-		    this.$message.error('下载失败')
-		})
-	  // downloadFiles('charging/standard/download');
-	},
-	handleDownload2() {
-		commonTemplateDownload({ name: '配件模板(服务收费).xlsx' }, `${this.$route.meta.title}`).then(res => {
-		    this.$message({
-		        message: '下载成功',
-		        type: 'success'
-		    })
-		}).catch(err => {
-		    this.$message.error('下载失败')
-		})
-	  // downloadFiles('charging/standard/download');
-	},
-  }
+		},
+		// 下载导入模版
+		handleDownload1() {
+			commonTemplateDownload({ name: '配件模板(配件物料).xlsx' }, `${this.$route.meta.title}`).then(res => {
+				this.$message({
+					message: '下载成功',
+					type: 'success'
+				})
+			}).catch(err => {
+				this.$message.error('下载失败')
+			})
+			// downloadFiles('charging/standard/download');
+		},
+		handleDownload2() {
+			commonTemplateDownload({ name: '配件模板(服务收费).xlsx' }, `${this.$route.meta.title}`).then(res => {
+				this.$message({
+					message: '下载成功',
+					type: 'success'
+				})
+			}).catch(err => {
+				this.$message.error('下载失败')
+			})
+			// downloadFiles('charging/standard/download');
+		},
+	}
 }
 </script>
 
 <style lang="scss" scoped>
-	.tab{
-		padding: 20px 20px 0 20px;
-	}
+.tab {
+	padding: 20px 20px 0 20px;
+}
 </style>