Ver código fonte

零售pc 花材列表新增修改本价和加价、小程序app把socket地址修改到配置文件内

jiangfeng 5 anos atrás
pai
commit
37c841896d
4 arquivos alterados com 477 adições e 445 exclusões
  1. 10 0
      hd/src/service/product/index.js
  2. 462 443
      hd/src/views/item/list.vue
  3. 2 1
      hdApp/src/ext.json
  4. 3 1
      hdApp/src/utils/socket.js

+ 10 - 0
hd/src/service/product/index.js

@@ -13,5 +13,15 @@ export class ProductService extends BaseService {
 			};
 		});
 	}
+	/** *
+	 * 批量修改product信息  姜枫2021.06.05
+	 */
+	productBatchUpdate(data) {
+		return this.request({
+			url: '/batch-update',
+			method: 'POST',
+			data: data
+		});
+	}
 }
 export default new ProductService();

+ 462 - 443
hd/src/views/item/list.vue

@@ -1,521 +1,540 @@
 <template>
-  <div class="app-list-content">
-    <x-crud
-      class="liu-crud-wrap"
-      @load="onLoad"
-    >
-      <template #slot-tabs>
-        <el-tabs
-          class="liu-tabs"
-          type="border-card"
-          v-model="tabIndex"
-          @tab-click="tabClick"
-        >
-          <el-tab-pane
-            v-for="(item, index) in tabsData"
-            :key="index"
-            :label="item.text"
-            :name="item.key"
-          >
-          </el-tab-pane>
-        </el-tabs>
-      </template>
+	<div class="app-list-content">
+		<x-crud
+				class="liu-crud-wrap"
+				@load="onLoad"
+		>
+			<template #slot-tabs>
+				<el-tabs class="liu-tabs" type="border-card" v-model="tabIndex" @tab-click="tabClick">
+					<el-tab-pane v-for="(item, index) in tabsData" :key="index" :label="item.text" :name="item.key">
+					</el-tab-pane>
+				</el-tabs>
+			</template>
 
 			<template #table-column-cover="{ scope }">
 				<cl-avatar
-					shape="square"
-					:size="32"
-					:src="scope.row.cover"
-					:style="{ margin: 'auto' }"
+						shape="square"
+						:size="32"
+						:src="scope.row.cover"
+						:style="{ margin: 'auto' }"
 				></cl-avatar>
 			</template>
 
-      <template #table-column-goodsName="{scope}">
-        <span>{{ scope.row.goodsName }}</span>
-      </template>
+			<template #table-column-goodsName="{scope}">
+				<span>{{ scope.row.goodsName }}</span>
+			</template>
 
-      <template #table-column-unit="{scope}">
-        <span>{{ scope.row.bigUnit }} / {{scope.row.smallUnit}}</span>
-      </template>
+			<template #table-column-unit="{scope}">
+				<span>{{ scope.row.bigUnit }} / {{scope.row.smallUnit}}</span>
+			</template>
 
-      <template #table-column-inTurn="{scope}">
-        <span v-if="!sort.status">{{ scope.row.inTurn }}</span>
-        <el-input
-          ref="sort-input"
-          focus
-          size="mini"
-          v-else
-          v-model="scope.row.inTurn"
-          @blur="changeSort(scope.row)"
-        ></el-input>
-      </template>
 
-      <!-- 排序 -->
-      <template #table-header-inTurn>
-        <div class="set-sort">
-          <span>排序</span>
-          <el-button
-            v-if="!sort.status"
-            icon="el-icon-edit-outline"
-            size="small"
-            type="text"
-            @click="showSort"
-            class="show"
-          ></el-button>
+			<template #table-column-inTurn="{scope}">
+				<span v-if="!sort.status">{{ scope.row.inTurn }}</span>
+				<el-input style="width:50%;" ref="sort-input" focus size="mini" v-else v-model="scope.row.inTurn" @blur="changeSort(scope.row, 'inTurn')" ></el-input>
+			</template>
 
-          <el-button
-            class="hide"
-            v-else
-            size="mini"
-            @click="hideSort"
-            type="primary"
-          >完成</el-button>
-        </div>
-      </template>
+			<template #table-header-inTurn>
+				<div class="set-sort">
+					<span>排序</span>
+					<el-button v-if="!sort.status" icon="el-icon-edit-outline" size="small" type="text" @click="showSort" class="show"></el-button>
+					<el-button class="hide" v-else size="mini" @click="hideSort" type="primary">完成</el-button>
+				</div>
+			</template>
 
-       <template #slot-modify="{ scope }">
+			<template #slot-modify="{ scope }">
 				<el-button
-					type="text"
-					@click.native.stop="replaceBtnFn(scope.row.id)"
-					>修改</el-button
+						type="text"
+						@click.native.stop="replaceBtnFn(scope.row.id)"
+				>修改</el-button
 				>
 			</template>
 
+			<template #table-column-addPrice="{scope}">
+				<span v-if="!canAddPrice">{{ scope.row.addPrice }}</span>
+				<el-input style="width:50%;" ref="add-price-input" focus size="mini" v-else v-model="scope.row.addPrice" @blur="changeSort(scope.row, 'addPrice')" ></el-input>
+			</template>
+
+			<template #table-header-addPrice>
+				<div class="set-sort">
+					<span>每扎加价</span>
+					<el-button v-if="!canAddPrice" icon="el-icon-edit-outline" size="small" type="text" @click="showAddPrice" class="show"></el-button>
+					<el-button class="hide" v-else size="mini" @click="hideSort" type="primary">完成</el-button>
+				</div>
+			</template>
+
+			<template #table-header-cost>
+				<div class="set-sort">
+					<span>每扎成本价</span>
+					<el-button v-if="!costPrice" icon="el-icon-edit-outline" size="small" type="text" @click="showCost" class="show"></el-button>
+					<el-button class="hide" v-else size="mini" @click="hideSort" type="primary">完成</el-button>
+				</div>
+			</template>
 
-      <template
-        #slot-add-goods-btn
-      >
-        <el-button
-          type="primary"
-          size="mini"
-          @click="addFn()"
-        >添加</el-button>
-      </template>
-    </x-crud>
-    <item-list-layer
-      :show.sync="showItemModal"
-      :classId.sync="classId"
-      :className.sync="className"
-      @confirm="selGoodsConfirmFn"
-      @cancel="showItemModal = false"
-    ></item-list-layer>
 
-<!-- 新增弹窗 -->
+			<template #table-column-cost="{scope}">
+				<span v-if="!costPrice">{{ scope.row.cost }}</span>
+				<el-input style="width:50%;" ref="sort-input" focus size="mini" v-else v-model="scope.row.cost" @blur="changeSort(scope.row, 'cost')" ></el-input>
+			</template>
+			<template #slot-add-goods-btn>
+				<el-button type="primary" size="mini" @click="addFn()">添加</el-button>
+			</template>
+
+		</x-crud>
+		<item-list-layer :show.sync="showItemModal" :classId.sync="classId" :className.sync="className" @confirm="selectItemFn" @cancel="showItemModal = false">
+		</item-list-layer>
+		<!-- 新增弹窗 -->
 		<el-dialog
-			title="修改花材"
-			:visible.sync="addDialog"
-			:close-on-click-modal="false"
-			width="600px"
+				title="修改花材"
+				:visible.sync="addDialog"
+				:close-on-click-modal="false"
+				width="600px"
 		>
-      <div class="ad-modal-content">
-        <el-form
-					:model="replaceForm"
-					:rules="replaceFormRules"
-					ref="replaceForm"
-					label-width="100px"
-					class="demo-form"
+			<div class="ad-modal-content">
+				<el-form
+						:model="replaceForm"
+						:rules="replaceFormRules"
+						ref="replaceForm"
+						label-width="100px"
+						class="demo-form"
 				>
-
-        <el-form-item label="名称" prop="name">
+					<el-form-item label="名称" prop="name">
 						<el-input
-							v-model="replaceForm.name"
-							placeholder="请输入名称"
-							size="small"
+								v-model="replaceForm.name"
+								placeholder="请输入名称"
+								size="small"
 						></el-input>
 					</el-form-item>
 
-          <el-form-item label="别名" prop="alias">
+					<el-form-item label="别名" prop="alias">
 						<el-input
-							v-model="replaceForm.alias"
-							placeholder="请输入别名"
-							size="small"
+								v-model="replaceForm.alias"
+								placeholder="请输入别名"
+								size="small"
 						></el-input>
 					</el-form-item>
 
-          <el-form-item label="图片" prop="cover">
+					<el-form-item label="图片" prop="cover">
 						<cl-upload v-model="replaceForm.cover" :success="uploadSuccess"></cl-upload>
 						<p style="font-size: 14px; color: #cccccc">建议上传图片比例 400X400</p>
 					</el-form-item>
 
-          <el-form-item label="分类" prop="classId">
+					<el-form-item label="分类" prop="classId">
 						<el-select
-							v-model="replaceForm.className"
-							size="small"
-							placeholder="请选择分类"
-							@change="selClassFn"
+								v-model="replaceForm.className"
+								size="small"
+								placeholder="请选择分类"
+								@change="selClassFn"
 						>
 							<el-option
-								v-for="(item, index) in itemClassList"
-								:key="index"
-								:value="item.name"
-								>{{ item.name }}</el-option
+									v-for="(item, index) in itemClassList"
+									:key="index"
+									:value="item.name"
+							>{{ item.name }}</el-option
 							>
 						</el-select>
 					</el-form-item>
 
-          <el-form-item label="库存预警" prop="stockWarning">
+					<el-form-item label="库存预警" prop="stockWarning">
 						<el-input
-							v-model="replaceForm.stockWarning"
-							placeholder="请输入数值"
-							size="small"
+								v-model="replaceForm.stockWarning"
+								placeholder="请输入数值"
+								size="small"
 						></el-input>
 					</el-form-item>
 
-          <el-form-item label="每扎重量" prop="weight">
+					<el-form-item label="每扎重量" prop="weight">
 						<el-input
-							v-model="replaceForm.weight"
-							placeholder="请输入斤数"
-							size="small"
+								v-model="replaceForm.weight"
+								placeholder="请输入斤数"
+								size="small"
 						></el-input>
 					</el-form-item>
 
-          <el-form-item label="每扎成本价" prop="cost">
+					<el-form-item label="每扎成本价" prop="cost">
 						<el-input
-							v-model="replaceForm.cost"
-							placeholder="请输入成本价"
-							size="small"
+								v-model="replaceForm.cost"
+								placeholder="请输入成本价"
+								size="small"
 						></el-input>
 					</el-form-item>
 
-          <el-form-item label="每扎加价" prop="addPrice">
+					<el-form-item label="每扎加价" prop="addPrice">
 						<el-input
-							v-model="replaceForm.addPrice"
-							placeholder="请输入加价"
-							size="small"
+								v-model="replaceForm.addPrice"
+								placeholder="请输入加价"
+								size="small"
 						></el-input>
 					</el-form-item>
 
-
-        </el-form>
-      </div>
+				</el-form>
+			</div>
 			<div slot="footer" class="dialog-footer">
 				<el-button size="small" @click="resetForm">取 消</el-button>
 				<el-button type="primary" size="small" @click="replaceConfirmFn">确认</el-button>
 			</div>
 		</el-dialog>
-
-  </div>
+	</div>
 </template>
 <script>
-import { mapGetters } from 'vuex';
-import itemListLayer from '@/components/module/item-list-layer';
-
-export default {
-  name: 'item_list',
-  components: {
-    itemListLayer
-  },
-  data () {
-    return {
-      app: null,
-      sortLink: '',
-      operateData: {},
-      tabIndex: '0',
-      tabsData: [
-        {
-          text: '花材列表',
-          key: '0'
-        }
-      ],
-      selects: {},
-      sort: {
-        status: false
-      },
-      itemClassList: [],
-      classId: 0,
-      className:'',
-      showItemModal: false,
-      initData: [],
-      addDialog: false,
-      replaceForm: {
-				name: '',
-				alias: '',
-				classId: '',
-				className: '',
-				cover: '',
-        bigUnit: '',
-				smallUnit: '',
-				stockWarning:'',
-				cost:'',
-				addPrice:'',
-				weight:'',
-			},
-      replaceFormRules: {
-				name: {
-					required: true,
-					message: '名称不能为空',
-				},
-				cover: {
-					required: true,
-					message: '图片不能为空',
-				},
-				classId: {
-					required: true,
-					message: '请选择分类',
+	import { mapGetters } from 'vuex';
+	import itemListLayer from '@/components/module/item-list-layer';
+	export default {
+		name: 'item_list',
+		components: {
+			itemListLayer
+		},
+		data () {
+			return {
+				app: null,
+				sortLink: '',
+				operateData: {},
+				tabIndex: '0',
+				tabsData: [
+					{
+						text: '花材列表',
+						key: '0'
+					}
+				],
+				selects: {},
+				sort: {
+					status: false
 				},
-				stockWarning: {
-					required: true,
-					message: '最低库存不能为空',
+				canAddPrice:false,
+				costPrice: false,
+				classId: 0,
+				className:'',
+				showItemModal: false,
+				dataList: {
+					form: {
+						data: '',
+						type: ''
+					}
+
 				},
-				cost: {
-					required: true,
-					message: '运费不能为空',
+				initData: [],
+				addDialog: false,
+				replaceForm: {
+					name: '',
+					alias: '',
+					classId: '',
+					className: '',
+					cover: '',
+					bigUnit: '',
+					smallUnit: '',
+					stockWarning:'',
+					cost:'',
+					addPrice:'',
+					weight:'',
 				},
-				addPrice: {
-					required: true,
-					message: '加价不能为空',
+				replaceFormRules: {
+					name: {
+						required: true,
+						message: '名称不能为空',
+					},
+					cover: {
+						required: true,
+						message: '图片不能为空',
+					},
+					classId: {
+						required: true,
+						message: '请选择分类',
+					},
+					stockWarning: {
+						required: true,
+						message: '最低库存不能为空',
+					},
+					cost: {
+						required: true,
+						message: '运费不能为空',
+					},
+					addPrice: {
+						required: true,
+						message: '加价不能为空',
+					},
+					weight: {
+						required: true,
+						message: '重量不能为空',
+					}
 				},
-				weight: {
-					required: true,
-					message: '重量不能为空',
-				}
-			},
-    };
-  },
-  computed: {
-  },
-  methods: {
-     getAllClass() {
-			if (!this.$util.isEmpty(this.itemClassList)) {
-				return this.itemClassList;
-			}
-			this.$service.itemClass.list().then((res) => {
-        console.log(res)
-				this.itemClassList = res.list;
-			});
+				itemClassList: []
+			};
 		},
-    uploadSuccess() {},
-    selClassFn(val) {
-			let index = this.itemClassList.findIndex((e) => e.name == val);
-			this.replaceForm.classId = this.itemClassList[index].id;
+		computed: {
 		},
-    replaceConfirmFn() {
-      this.$refs.replaceForm.validate((valid) => {
-        if(valid) {
-          this.$service.product.update(this.replaceForm).then(res => {
-            console.log('res1111', res)
-            this.$message.success('操作成功!');
-            this.addDialog = false
-            this.app.refresh()
-          }).catch(err => {})
-        }
-      })
-    },
-    uploadSuccess() {
-			console.log(this.$refs['replaceForm'].validateField('cover'))
-		},
-     resetForm() {
-			this.goodsData = {};
-			this.$refs['replaceForm'].resetFields();
-			this.addDialog = false;
-		},
-    selGoodsConfirmFn (currentItem) {
+		mounted() {
 
-      let item = currentItem.list
-      let classId = currentItem.classId
+		},
+		methods: {
+			showCost() {
+				this.initData = []
+				this.costPrice = true
+			},
+			hideCost() {
+				this.costPrice = false
+			},
+			selectItemFn (currentItem) {
 
-      let param = []
-      item.forEach(value => {
-        let newObj = {}
-        newObj.itemId = value.id
-        newObj.classId = classId
-        newObj.cost = value.cost
-        newObj.addPrice = value.addPrice
-        newObj.stockWarning = value.stockWarning
-        param.push(newObj)
-      })
-      param = JSON.stringify(param)
-      console.log(param)
-      this.$service.item.batchAdd({ data: param }).then(res => {
-        this.$message.success('操作成功!');
-        this.showItemModal = false
-        this.app.refresh()
-      }).catch(err => { console.log(err) })
-    },
-    addFn () {
-      this.showItemModal = true
-    },
-    tabClick (tab, e) {
-      this.app.refresh({ classId: this.classId });
-    },
-    replaceBtnFn(id) {
-      this.addDialog = true
-      this.getAllClass()
-      this.$service.product.info({id}).then(res => {
-        console.log('res', res)
-        let index = this.itemClassList.findIndex((e) => e.id == res.classId)
-        this.replaceForm = res
-        this.replaceForm.className = this.itemClassList[index].name
-        if(this.replaceForm.cover.indexOf('http') != -1 && this.replaceForm.cover.indexOf('/uploads') != -1) {
-          let str = this.replaceForm.cover
-          let str1 = str.substring(0, str.indexOf("/uploads"));
-          this.replaceForm.cover = str.substring(str1.length+1, str.length);
-        }
-      })
-    },
-    onLoad ({ ctx, app }) {
-      if (this.$route.query.classId) {
-        this.classId = Number(this.$route.query.classId)
-        this.className = this.$route.query.className
-        this.tabsData[0].text = this.className
-      }
+				let item = currentItem.list
+				let classId = currentItem.classId
 
-      this.app = app
-      ctx.service(this.$service.product)
-        .set('table', {
-          columns: [
-            {
-              prop: 'id',
-              label: 'ID',
-              align: 'center'
-            },
-						{
-							prop: 'cover',
-							label: '图片',
-							align: 'center',
-							'min-width': 100,
+				let param = []
+				item.forEach(value => {
+					let newObj = {}
+					newObj.itemId = value.id
+					newObj.classId = classId
+					newObj.cost = value.cost
+					newObj.addPrice = value.addPrice
+					newObj.stockWarning = value.stockWarning
+					param.push(newObj)
+				})
+				param = JSON.stringify(param)
+				console.log(param)
+				this.$service.item.batchAdd({ data: param }).then(res => {
+					this.$message.success('操作成功!');
+					this.showItemModal = false
+					this.$router.go(0)
+				}).catch(err => { console.log(err) })
+			},
+			getAllClass() {
+				if (!this.$util.isEmpty(this.itemClassList)) {
+					return this.itemClassList;
+				}
+				this.$service.itemClass.list().then((res) => {
+					console.log(res)
+					this.itemClassList = res.list;
+				});
+			},
+			addFn () {
+				this.showItemModal = true
+			},
+			selClassFn(val) {
+				let index = this.itemClassList.findIndex((e) => e.name == val);
+				this.replaceForm.classId = this.itemClassList[index].id;
+			},
+			resetForm() {
+				this.goodsData = {};
+				this.$refs['replaceForm'].resetFields();
+				this.addDialog = false;
+			},
+			replaceConfirmFn() {
+				this.$refs.replaceForm.validate((valid) => {
+					if(valid) {
+						this.$service.product.update(this.replaceForm).then(res => {
+							console.log('res1111', res)
+							this.$message.success('操作成功!');
+							this.addDialog = false
+							this.app.refresh()
+						}).catch(err => {})
+					}
+				})
+			},
+			tabClick (tab, e) {
+				this.app.refresh({ classId: this.classId });
+			},
+			onLoad ({ ctx, app }) {
+				this.app = app
+				if (this.$route.query.classId) {
+					this.classId = Number(this.$route.query.classId);
+					if (this.$route.query.className != '') {
+						this.tabsData[0].text = this.$route.query.className;
+						this.$forceUpdate();
+					}
+				}
+				ctx.service(this.$service.product)
+					.set('table', {
+						columns: [
+							{
+								prop: 'id',
+								label: 'ID',
+								align: 'center'
+							},
+							{
+								prop: 'cover',
+								label: '图片',
+								align: 'center',
+								'min-width': 100,
+							},
+							{
+								prop: 'name',
+								label: '名称',
+								align: 'center',
+								'min-width': 100
+							},
+							{
+								prop: 'className',
+								label: '分类',
+								align: 'center',
+								'min-width': 100
+							},
+							{
+								prop: 'stockWarning',
+								label: '库存预警值',
+								align: 'center',
+								'min-width': 90
+							},
+							{
+								prop: 'cost',
+								label: '每扎成本价',
+								align: 'center',
+								'min-width': 120
+							},
+							{
+								prop: 'addPrice',
+								label: '每扎加价',
+								align: 'center',
+								'min-width': 120
+							},
+							{
+								prop: 'weight',
+								label: '重量(公斤)',
+								align: 'center',
+								'min-width': 90
+							},
+							{
+								prop: 'unit',
+								label: '单位',
+								align: 'center',
+								'min-width': 100
+							},
+							{
+								prop: 'ratio',
+								label: '单位比',
+								align: 'center',
+								'min-width': 80
+							},
+							{
+								prop: 'inTurn',
+								label: '排序',
+								align: 'center',
+								minWidth: 120
+							},
+							{
+								prop: 'addTime',
+								label: '创建时间',
+								align: 'center',
+								minWidth: 180
+							}
+						],
+						op: {
+							visible: true,
+							props: {
+								width: 200,
+								align: 'center',
+								fixed: 'right',
+								label: '操作'
+							},
+							layout: ['slot-modify']
+						}
+					})
+					.set('dict', {
+						search: {
+							keyWord: 'goodsName'
 						},
-            {
-              prop: 'name',
-              label: '名称',
-              align: 'center',
-              'min-width': 180
-            },
-            {
-              prop: 'className',
-              label: '分类',
-              align: 'center',
-              'min-width': 100
-            },
-            {
-              prop: 'stockWarning',
-              label: '库存预警值',
-              align: 'center',
-              'min-width': 90
-            },
-            {
-              prop: 'cost',
-              label: '每扎成本价',
-              align: 'center',
-              'min-width': 90
-            },
-            {
-              prop: 'addPrice',
-              label: '每扎加价',
-              align: 'center',
-              'min-width': 100
-            },
-            {
-              prop: 'weight',
-              label: '重量(公斤)',
-              align: 'center',
-              'min-width': 90
-            },
-            {
-              prop: 'unit',
-              label: '单位',
-              align: 'center',
-              'min-width': 100
-            },
-            {
-              prop: 'ratio',
-              label: '单位比',
-              align: 'center',
-              'min-width': 80
-            },
-            {
-              prop: 'inTurn',
-              label: '排序',
-              align: 'center',
-              minWidth: 120
-            },
-            {
-              prop: 'addTime',
-              label: '创建时间',
-              align: 'center',
-              minWidth: 180
-            }
-          ],
-          op: {
-            visible: true,
-            props: {
-              width: 200,
-              align: 'center',
-              fixed: 'right',
-              label: '操作'
-            },
-            layout: ['slot-modify']
-          }
-        })
-        .set('dict', {
-          search: {
-            keyWord: 'goodsName'
-          }
-        })
-        .set('search', {
-          key: {
-            placeholder: '分类名称'
-          }
-        })
-        .set('layout', [
-          ['slot-tabs'],
-          ['flex1', 'slot-add-goods-btn', 'refresh-btn'],
-          ['data-table'],
-          ['flex1', 'pagination']
-        ])
-        .done();
-      app.refresh({ classId: this.classId });
-      app.refresh({ showPage: 1 });
-    },
-
-    refresh (params) {
-      this.app.refresh(params);
-    },
-
-    showSort (e) {
-      this.sort.status = true;
-    },
-
-    hideSort (e) {
-      this.sort.status = false;
-    },
+					})
+					.set('search', {
+						key: {
+							placeholder: '分类名称'
+						}
+					})
+					.set('layout', [
+						['slot-tabs'],
+						['flex1', 'slot-add-goods-btn', 'refresh-btn'],
+						['data-table'],
+						['flex1', 'pagination']
+					])
+					.done();
+				app.refresh({ classId: this.classId});
+				app.refresh({ showPage: 1 });
+			},
+			uploadSuccess() {
+				console.log(this.$refs['replaceForm'].validateField('cover'))
+			},
+			refresh (params) {
+				this.app.refresh(params);
+			},
+			showAddPrice(){
+				this.initData = []
+				this.canAddPrice = true
+			},
+			showSort (e) {
+				this.initData = []
+				this.sort.status = true;
+			},
 
-    changeSort (d) {
-      this.$service.goods
-        .sort({
-          inTurn: d.inTurn,
-          id: d.id
-        })
-        .then(() => {
-          this.$message.success('修改成功');
-          this.refresh();
-        })
-        .catch(err => {
-          this.$message.error(err);
-        });
-    }
-  }
-};
+			hideSort (e) {
+				this.dataList.form.data = JSON.stringify(this.initData)
+				this.$service.product.productBatchUpdate(this.dataList.form).then(res => {
+					console.log(res)
+					this.$message.success('保存成功!');
+				}).catch(err => {console.log(err)})
+				this.sort.status = false;
+				this.canAddPrice = false
+				this.costPrice = false
+			},
+			replaceBtnFn(id) {
+				this.addDialog = true
+				this.getAllClass()
+				this.$service.product.info({id}).then(res => {
+					console.log(res)
+					// this.replaceForm.name = res.name
+					// this.replaceForm.alias = res.alias
+					// this.replaceForm.classId = res.classId
+					// this.replaceForm.className = res.classId
+					// this.replaceForm.cover = res.cover
+					// this.replaceForm.bigUnit = res.bigUnit
+					// this.replaceForm.smallUnit = res.smallUnit
+					// this.replaceForm.stockWarning = res.stockWarning
+					// this.replaceForm.cost = res.cost
+					// this.replaceForm.addPrice = res.addPrice
+					// this.replaceForm.weight = res.weight
+					let index = this.itemClassList.findIndex((e) => e.id == res.classId)
+					this.replaceForm = res
+					this.replaceForm.className = this.itemClassList[index].name
+					console.log(this.replaceForm.cover)
+					if(this.replaceForm.cover.indexOf('http') != -1 && this.replaceForm.cover.indexOf('/uploads') != -1) {
+						let str = this.replaceForm.cover
+						let str1 = str.substring(0, str.indexOf("/uploads"));
+						this.replaceForm.cover = str.substring(str1.length+1, str.length);
+					}
+				})
+			},
+			changeSort (d, type) {
+				this.dataList.form.type = type
+				let obj = {
+					id: d.id,
+				}
+				if(type == 'inTurn') {
+					obj.inTurn = d.inTurn
+				} else if(type == 'addPrice') {
+					obj.addPrice = d.addPrice
+				} else if(type == 'cost') {
+					obj.cost  = d.cost
+				}
+				this.initData.push(obj)
+			}
+		}
+	};
 </script>
 
 <style lang="scss" scoped>
-.short-link {
-  color: $mainColor;
-  margin-left: 10px;
-  cursor: pointer;
-}
-.set-sort {
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  .el-button {
-    margin-left: 10px;
-  }
-  .show {
-    font-size: 16px;
-  }
-  .hide {
-    padding: 2px 5px;
-  }
-}
+	.short-link {
+		color: $mainColor;
+		margin-left: 10px;
+		cursor: pointer;
+	}
+	.set-sort {
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		.el-button {
+			margin-left: 10px;
+		}
+		.show {
+			font-size: 16px;
+		}
+		.hide {
+			padding: 2px 5px;
+		}
+	}
 </style>

+ 2 - 1
hdApp/src/ext.json

@@ -5,7 +5,8 @@
   "ext": {
     "account": 12362,
     "apiHost": "https://api.shop.huaml.com",
+    "socketApiHost": "api.shop.huaml.com",
     "imgHost": "https://img.huaml.com",
     "name":"花美玲"
   }
-}
+}

+ 3 - 1
hdApp/src/utils/socket.js

@@ -1,3 +1,4 @@
+const extConfig = wx.getExtConfigSync ? wx.getExtConfigSync() : {}
 const SocketConfig = {
 	retry: 20,
 	timeout: 10000,
@@ -17,7 +18,8 @@ const SocketConfig = {
 };
 class SocketUtil {
 	constructor({ url, onOpen, onMessage, onClose, onError }) {
-		this.url = url || "api.shop.huaml.com:8282";
+		// this.url = url || "api.shop.huaml.com:8282";
+		this.url = url || `${extConfig.socketApiHost}:8282`;
 		this.socket = this.connectSocket(this.url);
 		this.onOpenCall = onOpen;
 		this.onMessageCall = onMessage;