Browse Source

配件销售订单

pengyh 1 năm trước cách đây
mục cha
commit
7474d86619

+ 3 - 3
src/api/auxiliaryFittings/auxiliaryAdjustPriceOrder.js

@@ -45,12 +45,12 @@ export function getDetail(params) {
   })
 }
 
-// 上下架
-export function confirm(data) {
+// 审核
+export function confirm(params) {
   return request({
     url: `/websit/goods/price/confirm`,
     method: 'post',
-    data
+    params
   })
 }
 

+ 21 - 3
src/api/auxiliaryFittings/auxiliarySalesOrder.js

@@ -45,12 +45,30 @@ export function getDetail(params) {
   })
 }
 
-// 上下架
-export function submit(data) {
+// 提交
+export function submit(params) {
   return request({
     url: `/websit/sales/submit`,
     method: 'post',
-    data
+    params
+  })
+}
+
+// 审核
+export function confirm(params) {
+  return request({
+    url: `/websit/sales/confirm`,
+    method: 'post',
+    params
+  })
+}
+
+// 支付二维码
+export function getCode(params) {
+  return request({
+    url: `/websit/sales/generate/pay/code`,
+    method: 'post',
+    params
   })
 }
 

+ 6 - 8
src/views/auxiliaryFittings/salesManagement/attachmentSalesOrder/index.vue

@@ -5,7 +5,7 @@
 		  :operation="operation" :exportList="exportList">
 		  
 		  <div slot="moreSearch">
-		    <el-radio-group v-model="goodsType" size="mini" @change="changeType">
+		    <el-radio-group v-model="flag" size="mini" @change="changeType">
 		    	<el-radio-button label="">全部</el-radio-button>
 		    	<el-radio-button label="PAY_NOT_TAKE">已支付</el-radio-button>
 		    	<el-radio-button label="SUBMIT">未支付</el-radio-button>
@@ -15,21 +15,21 @@
 		  </div>
 		</template-page>
 		<div class="detail" v-if="formDialog">
-			<auxiliarySalesOrderDetail :id="id" @back="backList" :formType="formDialogType" :title="'辅材销售订单' + formDialogTitles[formDialogType]"></auxiliarySalesOrderDetail>
+			<attachmentSalesOrderDetail :id="id" @back="backList" :formType="formDialogType" :title="'辅材销售订单' + formDialogTitles[formDialogType]"></attachmentSalesOrderDetail>
 		</div>
 	</div>
 </template>
 
 <script>
 import TemplatePage from '@/components/template/template-page-1.vue'
-import auxiliarySalesOrderDetail from '../components/auxiliarySalesOrderDetail.vue'
+import attachmentSalesOrderDetail from '../components/attachmentSalesOrderDetail.vue'
 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, submit } from "@/api/auxiliaryFittings/auxiliarySalesOrder";
 export default {
-  components: { TemplatePage, ImageUpload, auxiliarySalesOrderDetail },
+  components: { TemplatePage, ImageUpload, attachmentSalesOrderDetail },
   mixins: [import_mixin],
   data() {
     return {
@@ -60,7 +60,7 @@ export default {
       formDialogTitles: ["新增","编辑", "详情"],
       formDialog: false,
 	  id: '',
-	  goodsType: ''
+	  flag: ''
     }
   },
   computed: {
@@ -83,9 +83,7 @@ export default {
 	getList(p) {
 	  try {
 	    var pam = JSON.parse(JSON.stringify(p))
-	    if (this.examineStatus) {
-	      pam.params.push({ "param": "b.examine_status", "compare": "=", "value": this.examineStatus })
-	    }
+	    pam.params.push({ "param": "a.goods_type", "compare": "=", "value": 'P' },{'param': 'a.flag', "compare": "=", "value": this.flag})
 	    return listPageV2(pam)
 	  } catch (error) {
 	    console.log(error)

+ 5 - 6
src/views/auxiliaryFittings/salesManagement/auxiliarySalesOrder/index.vue

@@ -5,7 +5,7 @@
 		  :operation="operation" :exportList="exportList">
 		  
 		  <div slot="moreSearch">
-		    <el-radio-group v-model="goodsType" size="mini" @change="changeType">
+		    <el-radio-group v-model="flag" size="mini" @change="changeType">
 		    	<el-radio-button label="">全部</el-radio-button>
 		    	<el-radio-button label="PAY_NOT_TAKE">已支付</el-radio-button>
 		    	<el-radio-button label="SUBMIT">未支付</el-radio-button>
@@ -59,8 +59,8 @@ export default {
       formDialogType: 0,
       formDialogTitles: ["新增","编辑", "详情"],
       formDialog: false,
-	  id: '',
-	  goodsType: ''
+		id: '',
+		flag: ''
     }
   },
   computed: {
@@ -76,6 +76,7 @@ export default {
 	  this.$refs.pageRef.refreshList()
 	},
 	backList() {
+		this.id = ''
 		this.formDialog = false;
 		this.getList()
 	},
@@ -83,9 +84,7 @@ export default {
 	getList(p) {
 	  try {
 	    var pam = JSON.parse(JSON.stringify(p))
-	    if (this.examineStatus) {
-	      pam.params.push({ "param": "b.examine_status", "compare": "=", "value": this.examineStatus })
-	    }
+	    pam.params.push({ "param": "a.goods_type", "compare": "=", "value": 'M' },{'param': 'a.flag', "compare": "=", "value": this.flag})
 	    return listPageV2(pam)
 	  } catch (error) {
 	    console.log(error)

+ 35 - 191
src/views/auxiliaryFittings/salesManagement/auxiliarySalesReturnOrder/index.vue

@@ -1,41 +1,34 @@
 <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">
-	  
-	  <div slot="moreSearch">
-	    <el-radio-group v-model="goodsType" size="mini" @change="changeType">
-	    	<el-radio-button label="">全部</el-radio-button>
-	    	<el-radio-button label="PAY_NOT_TAKE">待确认</el-radio-button>
-	    	<el-radio-button label="SUBMIT">已确认</el-radio-button>
-	    </el-radio-group>
-	    <br><br>
-	  </div>
-	  
-	  <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="160px" :showPackUp="false"
-	        :form-data="formData" :form-items="formItems1" :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>
+	<div class="page">
+		<template-page v-show="!formDialog" 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">
+		  
+		  <div slot="moreSearch">
+		    <el-radio-group v-model="retState" size="mini" @change="changeType">
+		    	<el-radio-button label="">全部</el-radio-button>
+		    	<el-radio-button label="WAIT">待确认</el-radio-button>
+		    	<el-radio-button label="OK">已确认</el-radio-button>
+		    </el-radio-group>
+		    <br><br>
+		  </div>
+		</template-page>
+		<div class="detail" v-if="formDialog">
+			<auxiliarySalesReturnOrderDetail :id="id" @back="backList" :formType="formDialogType" :title="'辅材销售订单' + formDialogTitles[formDialogType]"></auxiliarySalesReturnOrderDetail>
+		</div>
+	</div>
 </template>
 
 <script>
 import TemplatePage from '@/components/template/template-page-1.vue'
+import auxiliarySalesReturnOrderDetail from '../components/auxiliarySalesReturnOrderDetail.vue'
 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, submit } from "@/api/auxiliaryFittings/auxiliarySalesReturnOrder";
 export default {
-  components: { TemplatePage, ImageUpload },
+  components: { TemplatePage, ImageUpload, auxiliarySalesReturnOrderDetail },
   mixins: [import_mixin],
   data() {
     return {
@@ -65,29 +58,8 @@ export default {
       formDialogType: 0,
       formDialogTitles: ["新增","编辑", "详情"],
       formDialog: false,
-      formData: {
-        companyWechatName: JSON.parse(localStorage.getItem('greemall_user')).companyName,
-        "companyWechatId": "",
-        "confirmBy": "",
-        "confirmTime": "",
-        "createBy": "",
-        "createTime": "",
-        "flag": "",
-        "goodsType": "",
-        "purchaseId": "",
-        "purchaseTime": "",
-        "remark": "",
-        "totalAmount": 0,
-        "updateBy": "",
-        "updateTime": "",
-        "venderId": "",
-        "venderName": "",
-        "websitId": "",
-        "websitName": "",
-        items: [],
-        imageUrl: []
-      },
-	  goodsType: ''
+		id: '',
+		retState: ''
     }
   },
   computed: {
@@ -95,107 +67,23 @@ export default {
     moreParameters() {
       return []
     },
-    formItems1() {
-      return [
-        {
-          md: 24,
-          isShow: true,
-          name: 'slot-component',
-          formItemAttributes: {
-            label: '',
-            prop: '',
-            'label-width': '0px'
-          },
-          render: (h, { props, onInput }) => {
-            var { value } = props
-            return (
-              <div>
-                <el-descriptions border title="" column={4} colon={false} labelStyle={{ width: '8%' }} contentStyle={{ width: '17%' }}>
-                  <el-descriptions-item label="单据状态">
-                    {({ SAVE: "保存", OK: "通过", FAIL: "失败" })[this.formData.flag]}
-                  </el-descriptions-item>
-                  <el-descriptions-item label="单据编号">
-                    {(!!~['auxiliaryMaterialsStorage', 'partsStorage'].indexOf(this.pageType) ? this.formData.purchaseId : this.formData.purchaseRetId) || ''}
-                  </el-descriptions-item>
-                  <el-descriptions-item label="所属商户" contentStyle={{ width: '42%' }}>
-                    {this.formData.companyWechatName}
-                  </el-descriptions-item>
-                </el-descriptions>
-                <el-descriptions border title="" column={2} colon={false} labelStyle={{ width: '8%' }} contentStyle={{ width: '42%' }} style="margin-top:-1px">
-                  <el-descriptions-item label="网点名称">
-                    <el-select style="width:100%" value={this.formData.websitId} onInput={(val) => { this.formData.websitId = val }} placeholder="请选择">
-                      {this.getWebsitList.map(item => <el-option key={item.websitId} label={item.name} value={item.websitId}></el-option>)}
-                    </el-select>
-                  </el-descriptions-item>
-                  <el-descriptions-item label="供应商名称">
-                    <el-select style="width:100%" value={this.formData.venderId} onInput={(val) => { this.formData.venderId = val }} placeholder="请选择">
-                      {this.listPageV2Data.map(item => <el-option key={item.venderId} label={item.venderName} value={item.venderId}></el-option>)}
-                    </el-select>
-                  </el-descriptions-item>
-                </el-descriptions>
-                {
-                  !!~['returnAuxiliaryMaterials', 'partsReturn'].indexOf(this.pageType) ?
-                    <el-descriptions border title="" column={4} colon={false} labelStyle={{ width: '8%' }} contentStyle={{ width: '17%' }} style="margin-top:-1px">
-                      <el-descriptions-item label="采购入库单号" contentStyle={{ width: '42%' }}>
-                        {this.formData.purchaseId}
-                      </el-descriptions-item>
-                      <el-descriptions-item label="退货数量">
-                        {this.formData.retTotalQty}
-                      </el-descriptions-item>
-                      <el-descriptions-item label="退款金额">
-                        {this.formData.retTotalAmount}
-                      </el-descriptions-item>
-                    </el-descriptions> : null
-                }
-                <el-descriptions border title="" column={4} colon={false} labelStyle={{ width: '8%' }} contentStyle={{ width: '17%' }} style="margin-top:-1px">
-                  <el-descriptions-item label="制单人">
-                    {this.formData.createBy}
-                  </el-descriptions-item>
-                  <el-descriptions-item label="制单时间">
-                    {this.formData.createTime}
-                  </el-descriptions-item>
-                  <el-descriptions-item label="审核人">
-                    {this.formData.confirmBy}
-                  </el-descriptions-item>
-                  <el-descriptions-item label="审核时间">
-                    {this.formData.confirmTime}
-                  </el-descriptions-item>
-                </el-descriptions>
-                <el-descriptions border title="" column={4} colon={false} labelStyle={{ width: '8%' }} contentStyle={{ width: '17%' }} style="margin-top:-1px">
-                  <el-descriptions-item label="附件">
-                    <ImageUpload fileList={this.formData.imageUrl} uid="imgSrc666_materials_drawing_images" limit={1} isEdit={this.formDialogType < 2} />
-                  </el-descriptions-item>
-                  <el-descriptions-item label="备注" contentStyle={{ width: '67%' }}>
-                    <el-input
-                      type="textarea"
-                      placeholder="请输入内容"
-                      value={this.formData.remark}
-                      onInput={(val) => { this.formData.remark = val }}
-                      maxlength="200"
-                      show-word-limit
-                      autosize={{ minRows: 6, maxRows: 8 }}
-                    >
-                    </el-input>
-                  </el-descriptions-item>
-                </el-descriptions>
-              </div>
-            )
-          }
-        },]
-    },
+    formItems() {}
   },
   methods: {
 	// 切换状态
 	changeType(val) {
 	  this.$refs.pageRef.refreshList()
 	},
+	backList() {
+		this.id = ''
+		this.formDialog = false;
+		this.getList()
+	},
     // 列表请求函数
 	getList(p) {
 	  try {
 	    var pam = JSON.parse(JSON.stringify(p))
-	    if (this.examineStatus) {
-	      pam.params.push({ "param": "b.examine_status", "compare": "=", "value": this.examineStatus })
-	    }
+	    pam.params.push({ "param": "a.goods_type", "compare": "=", "value": 'M' },{'param': 'a.retState', "compare": "=", "value": this.retState})
 	    return listPageV2(pam)
 	  } catch (error) {
 	    console.log(error)
@@ -225,14 +113,9 @@ 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})) : []
-			  })
-			   console.log(this.formData)
-		      this.formDialogType = 1
-		      this.openForm()
-		    })
+				this.id = row.salesId
+		    this.formDialogType = 1
+		    this.openForm()
 		  }}>编辑</el-button>
         </div>
       )
@@ -244,48 +127,6 @@ export default {
     openForm() {
       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(() => {
-			memberInner({
-				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,
-			  imageUrl:this.formData.imageUrl.map(item=>item.url).join(",")
-		  }).then(res => {
-            this.$message({ type: 'success', message: `${this.formDialogTitles[this.formDialogType]}成功!` })
-            this.formCancel()
-            this.$refs.pageRef.refreshList()
-          })
-        }
-      })
-    },
 	// 下载导入模版
 	handleDownload() {
 	  // downloadFiles('charging/standard/download');
@@ -295,6 +136,9 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+	.page{
+		height: 100%;
+	}
 	.tab{
 		padding: 20px 20px 0 20px;
 	}

+ 240 - 94
src/views/auxiliaryFittings/salesManagement/components/attachmentSalesOrderDetail.vue

@@ -9,33 +9,43 @@
 			<div class="mymain-container">
 				<el-form ref="formData" :rules="rules" :model="formData" label-width="110px" size="small" label-position="left">
 					<el-row :gutter="20" justify="start">
-						<el-col :span="12">
+						<el-col :span="8" v-if="id">
+							<el-form-item label="单据状态">
+								<el-input type="text" :value="formData.flag == 'SAVE'?'已保存':formData.flag == 'OK'?'审核通过':formData.flag == 'OK'?'FAIL':''" disabled></el-input>
+							</el-form-item>
+						</el-col>
+						<el-col :span="8" v-if="id">
+							<el-form-item label="单据编号">
+								<el-input type="text" :value="formData.salesId" disabled></el-input>
+							</el-form-item>
+						</el-col>
+						<el-col :span="8">
 							<el-form-item label="所属商户" :required="true" >
 								<el-input type="text" :value="companyName" disabled></el-input>
 							</el-form-item>
 						</el-col>
 						<el-col :span="12">
 							<el-form-item label="网点名称" prop="websitId" :required="true">
-								<el-select v-model="formData.websitId" @change="changeWebsit" placeholder="请选择" style="width: 100%;">
+								<el-select v-model="formData.websit" value-key="websitId" @change="changeWebsit" placeholder="请选择" style="width: 100%;">
 								    <el-option
 								      v-for="item in websitList"
 								      :key="item.websitId"
 								      :label="item.name"
-								      :value="item.websitId">
+								      :value="item">
 								    </el-option>
 								  </el-select>
 							</el-form-item>
 						</el-col>
 						<el-col :span="8">
 							<el-form-item label="师傅姓名" prop="worker" :required="true">
-								<el-select v-model="formData.worker" @focus="()=>{
+								<el-select v-model="formData.worker" value-key="nickName" @focus="()=>{
 									if(!this.formData.websitId){return this.$message.warning('请先选择网点名称!');}
 								}" filterable @change="changeWorker" @blur="workerBlur" placeholder="请选择" style="width: 100%;">
 								    <el-option
 								      v-for="item in workerList"
 								      :key="item.id"
 								      :label="item.nickName"
-								      :value="item.nickName">
+								      :value="item">
 								    </el-option>
 								  </el-select>
 							</el-form-item>
@@ -50,14 +60,39 @@
 								<el-input type="text" v-model="formData.phone" placeholder="请输入"></el-input>
 							</el-form-item>
 						</el-col>
+						<el-col :span="6" v-if="id">
+							<el-form-item label="单据金额">
+								<el-input type="text" :value="formData.createBy" disabled></el-input>
+							</el-form-item>
+						</el-col>
+						<el-col :span="6" v-if="id">
+							<el-form-item label="制单人">
+								<el-input type="text" :value="formData.createBy" disabled></el-input>
+							</el-form-item>
+						</el-col>
+						<el-col :span="6" v-if="id">
+							<el-form-item label="制单时间">
+								<el-input type="text" :value="formData.createTime" disabled></el-input>
+							</el-form-item>
+						</el-col>
+						<el-col :span="6" v-if="id">
+							<el-form-item label="审核人">
+								<el-input type="text" :value="formData.confirmBy" disabled></el-input>
+							</el-form-item>
+						</el-col>
+						<el-col :span="6" v-if="id">
+							<el-form-item label="审核时间">
+								<el-input type="text" :value="formData.confirmTime" disabled></el-input>
+							</el-form-item>
+						</el-col>
 						<el-col :span="12">
 							<el-form-item label="订单来源" prop="source" :required="true">
 								<el-select v-model="formData.source" placeholder="请选择" style="width: 100%;">
 								    <el-option
 								      v-for="item in [{name: '在线订单',id: 'ONLINE'},{name: '自建订单',id: 'SELF'}]"
-								      :key="item.workerId"
+								      :key="item.id"
 								      :label="item.name"
-								      :value="item.workerId">
+								      :value="item.id">
 								    </el-option>
 								  </el-select>
 							</el-form-item>
@@ -88,60 +123,35 @@
 		</el-card>
 		<el-card class="box-card">
 			<div slot="header" class="clearfix">
-				<span>辅材信息</span>
+				<span>配件信息</span>
 			</div>
 			<el-button size="small" type="primary" @click="add()">添加</el-button>
 			<div class="table">
 				<el-table :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe>
-					<el-table-column label="大类名称" align="center">
-						<template slot-scope="scope">
-							<el-select v-model="scope.row.productCategory" value-key="categoryId" @change="changeMain" :disabled="isEdit != scope.$index" placeholder="请选择" style="width: 100%;">
-							    <el-option
-							      v-for="item in mainList"
-							      :key="item.categoryId"
-							      :label="item.categoryName"
-							      :value="item">
-							    </el-option>
-							  </el-select>
-						</template>
-					</el-table-column>
-					<el-table-column label="小类名称" align="center">
+					<el-table-column label="配件名称" align="center">
 						<template slot-scope="scope">
-							<el-select v-model="scope.row.goodsCategory" @change="changeSmall" @focus="()=>{
-									if(!scope.row.productCategory){return this.$message.warning('请先选择大类!');}
-								}" :disabled="isEdit != scope.$index" value-key="categoryId" placeholder="请选择" style="width: 100%;">
+							<el-select v-model="scope.row.goods" @change="changeGoods" value-key="goodsId" :disabled="isEdit != scope.$index" placeholder="请选择" style="width: 100%;">
 							    <el-option
-							      v-for="item in smallList"
-							      :key="item.categoryId"
-							      :label="item.categoryName"
+							      v-for="item in scope.row.goodsList"
+							      :key="item.goodsId"
+							      :label="item.goodsName"
 							      :value="item">
 							    </el-option>
 							  </el-select>
 						</template>
 					</el-table-column>
-					<el-table-column label="辅材名称" align="center">
-						<template slot-scope="scope">
-							<el-select v-model="scope.row.goodsId" :disabled="isEdit != scope.$index" placeholder="请选择" style="width: 100%;">
-							    <el-option
-							      v-for="item in materialsList"
-							      :key="item.id"
-							      :label="item.name"
-							      :value="item.id">
-							    </el-option>
-							  </el-select>
-						</template>
-					</el-table-column>
-					<el-table-column prop="goodsSalesUnit" align="center" label="单位" ></el-table-column>
+					<el-table-column prop="goods.goodsSalesUnit" align="center" label="单位" ></el-table-column>
 					<el-table-column prop="" align="center" label="数量" >
 						<template slot-scope="scope">
 							<el-input type="number" v-model="scope.row.salesQty" :disabled="isEdit != scope.$index" placeholder="请输入"></el-input>
 						</template>
 					</el-table-column>
-					<el-table-column prop="" align="center" label="商品代码"></el-table-column>
-					<el-table-column prop="" align="center" label="规格型号"></el-table-column>
-					<el-table-column prop="" align="center" label="销售价格"></el-table-column>
-					<el-table-column prop="" align="center" label="销售金额"></el-table-column>
-					<el-table-column prop="" align="center" label="库存数量"></el-table-column>
+					<el-table-column prop="goods.goodsCode" align="center" label="配件编码"></el-table-column>
+					<el-table-column prop="goods.brandRelaName" align="center" label="适用品牌"></el-table-column>
+					<el-table-column prop="goods.productRelaName" align="center" label="适用产品大类"></el-table-column>
+					<el-table-column prop="goods.price" align="center" label="销售价格"></el-table-column>
+					<el-table-column prop="goods.saleAmount" align="center" label="销售金额" ></el-table-column>
+					<el-table-column prop="goods.qty" align="center" label="库存数量"></el-table-column>
 					<el-table-column label="操作" align="right" width="140">
 						<template slot-scope="scope">
 							<el-button size="mini" type="primary" v-if="scope.$index != isEdit" @click="isEdit = scope.$index">编辑</el-button>
@@ -153,8 +163,10 @@
 		</el-card>
 		<div class="page-footer">
 			<div class="footer">
-				<el-button v-if="true" size="small" type="primary" @click="confirm()">提交</el-button>
-				<el-button v-if="true" size="small" type="danger">确认收货</el-button>
+				<el-button v-if="formType == 0 || (formType == 1 && formData.flag == 'SAVE')" size="small" type="primary" @click="save()">保存</el-button>
+				<el-button v-if="formType != 0 && formData.flag == 'SAVE'" size="small" type="primary" @click="submit()">提交</el-button>
+				<el-button v-if="formData.flag == 'PAY_NOT_TAKE'" size="small" type="primary"  @click="confirm()">确认收货</el-button>
+				<el-button v-if="formData.flag == 'SUBMIT' && formData.payType == 'WECHAT'" size="small" type="primary" @click="wxPay()">微信支付</el-button>
 				<el-button size="small" type="info" @click="goBack">返回</el-button>
 			</div>
 		</div>
@@ -163,26 +175,33 @@
 
 <script>
 	import { getWebsit } from "@/api/customerManagement";
-	import { getWorker, getCategory, getGoods } from "@/api/auxiliaryFittings/auxiliarySalesOrder";
+	import { getWorker, getCategory, getGoods, getDetail, add, edit, confirm, submit, getCode } from "@/api/auxiliaryFittings/auxiliarySalesOrder";
 	export default {
-		props: ['id','title'],
+		props: ['id','title','formType'],
 		data() {
 			return {
 				dataList: [],
 				websitList: [],
 				workerList: [],
-				mainList: [],
-				smallList: [],
-				materialsList: [],
 				formData: {
+					websit: {},
 					websitId: '',
-					worker: '',
+					websitName: '',
+					file_url: [],
+					salesId: '',
+					flag: '',
+					createBy: '',
+					createTime: '',
+					confirmBy: '',
+					confirmTime: '',
+					worker: {},
+					workerName: '',
+					workerId: '',
 					idcard: '',
 					phone: '',
-					source: ''
+					source: '',
+					payType: ''
 				},
-				productCategory: {},
-				goodsCategory: {},
 				isEdit: 0,
 				companyName: JSON.parse(localStorage.getItem('greemall_user')).companyName,
 				rules: {
@@ -209,6 +228,9 @@
 		},
 		computed: {},
 		created() {
+			if(this.id){
+				this.getDetail()
+			}
 			this.getWebsit()
 		},
 		methods: {
@@ -216,63 +238,187 @@
 			goBack() {
 				this.$emit('back');
 			},
+			async getDetail(){
+				const that = this
+				getDetail({salesId: this.id}).then(res => {
+					this.formData.flag = res.data.flag
+					this.formData.websit = {websitId: res.data.websitId,name: res.data.websitName}
+					this.formData.websitId = res.data.websitId
+					this.formData.websitName = res.data.websitName
+					this.getWorker()
+					this.formData.salesId = res.data.salesId
+					this.formData.createBy = res.data.createBy
+					this.formData.createTime = res.data.createTime
+					this.formData.confirmBy = res.data.confirmBy
+					this.formData.confirmTime = res.data.confirmTime
+					this.formData.worker = {nickName: res.data.workerName,userId: res.data.workerId}
+					this.formData.workerName = res.data.workerName
+					this.formData.workerId = res.data.workerId
+					this.formData.idcard = res.data.identity
+					this.formData.phone = res.data.workerMobile
+					this.formData.source = res.data.source
+					this.formData.payType = res.data.payType
+					this.formData.remark = res.data.remark
+					res.data.items.forEach(item=>{
+						that.getGoods(item.goodsName,1).then(ress => {
+							item.goods = {...ress.data,oldPrice:ress.data.price}
+							item.goodsList = [{...ress.data,oldPrice:ress.data.price}]
+						})
+					})
+					setTimeout(()=>{
+						this.dataList = res.data.items
+					},200)
+					console.log(this.dataList)
+				})
+			},
 			getWebsit(){
-				getWebsit().then(res => {
+				getWebsit({type: 'C'}).then(res => {
 					this.websitList = res.data
 				})
 			},
-			changeWebsit(websitId){
+			changeWebsit(e){
+				this.formData.websitId = e.websitId
+				this.formData.websitName = e.name
 				this.getWorker()
-				getCategory({websitId}).then(res => {
-					this.mainList = res.data
-				})
+				this.getGoods()
 			},
-			getWorker(name){
+			async getGoods(goodsName,type){
 				const that = this
-				getWorker({pageNum: 1,pageSize: -1,params: [{param: 'a.nick_name',compare: '=',value: name},{param: 'b.websit_id',compare: '=',value: this.formData.websitId}]}).then(res => {
-					if(name){
-						that.formData.idcard = res.data.records[0].idCard
-						that.formData.phone = res.data.records[0].mobile
-					}else{
-						this.workerList = res.data.records
-					}
+				if(type == 1){
+					return new Promise((resolve, reject) => {
+						getGoods({websitId: this.formData.websitId,type: 'P',goodsName: goodsName}).then(res => {
+							resolve({
+								data: res.data[0]
+							})
+						})
+					})
+				}else{
+					getGoods({websitId: this.formData.websitId,type: 'P'}).then(res => {
+						that.dataList[that.isEdit].goodsList = res.data
+						console.log(this.dataList)
+					})
+				}
+			},
+			getWorker(){
+				getWorker({pageNum: 1,pageSize: -1,params: [{param: 'b.websit_id',compare: '=',value: this.formData.websitId}]}).then(res => {
+					this.workerList = res.data.records
 				})
 			},
 			changeWorker(e){
-				this.getWorker(e)
+				this.formData.idcard = e.idCard
+				this.formData.phone = e.mobile
+				this.formData.workerId = e.userId
+				this.formData.workerName = e.nickName
 			},
 			workerBlur(e){
 				this.formData.worker = e.target.value
 				this.$forceUpdate()
 			},
-			changeMain(e){
-				this.dataList[this.isEdit].goodsCategoryId = ''
-				this.dataList[this.isEdit].goodsCategoryName = ''
-				this.dataList[this.isEdit].goodsCategory = {}
-				this.dataList[this.isEdit].parentCategoryId = e.categoryId
-				this.dataList[this.isEdit].parentCategoryName = e.categoryName
-				this.smallList = e.items
-			},
-			changeSmall(e){
-				this.dataList[this.isEdit].goodsCategoryId = e.categoryId
-				this.dataList[this.isEdit].goodsCategoryName = e.categoryName
-				getGoods({websitId: this.formData.websitId,categoryId: e.categoryId,type: 'M',goodsName: e.categoryName}).then(res => {
-					
-				})
+			changeGoods(e){
+				console.log(e)
+				this.dataList[this.isEdit].goodsId = e.goodsId
+				this.dataList[this.isEdit].goodsName = e.goodsName
+				this.dataList[this.isEdit].goodsSalesUnit = e.goodsSalesUnit
+				this.dataList[this.isEdit].brandRelaName = e.brandRelaName
+				this.dataList[this.isEdit].productRelaName = e.productRelaName
+				this.dataList[this.isEdit].price = e.price
+				this.dataList[this.isEdit].goodsCode = e. goodsCode
+				this.dataList[this.isEdit].qty = e.qty
 			},
 			add(){
 				this.dataList.push({
-					productCategory: {},
-					parentCategoryId: '',
-					parentCategoryName: '',
-					goodsCategory: {},
-					goodsCategoryName: '',
-					goodsCategoryId: '',
-					goodsSalesUnit: '',
-					salesQty: '',
+					goodsList: [],
+					goods: {},
 					goodsId: '',
-					goodsSpecification: '',
-					saleAmount: ''
+					goodsName: '',
+					goodsSalesUnit: '',
+					brandRelaName: '',
+					productRelaName: '',
+					goodsCode: '',
+					price: '',
+					saleAmount: '',
+					salesQty: 1,
+					qty: '',
+					goodsType: 'P'
+				})
+			},
+			submit(){
+				this.$confirm(`请确定是否提交订单, 是否继续?`, '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(() => {
+					submit({
+						salesId: this.formData.salesId
+					}).then(res => {
+						if(res.code == 200){
+							this.$message.success('提交成功!')
+							this.goBack()
+						}
+					})
+				});
+			},
+			confirm(){
+				this.$confirm(`请确定是否确认提货, 是否继续?`, '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(() => {
+					confirm({
+						salesId: this.formData.salesId
+					}).then(res => {
+						if(res.code == 200){
+							this.$message.success('审核成功!')
+							this.goBack()
+						}
+					})
+				});
+			},
+			save(){
+				this.$refs.formData.validate((valid, invalidFields, errLabels) => {
+					if (valid) {
+						if(this.formType == 0){
+							add({
+								goodsType: 'P',
+								source: this.formData.source,
+								payType: this.formData.payType,
+								remark: this.formData.remark,
+								websitId: this.formData.websitId,
+								websitName: this.formData.websitName,
+								workerName: this.formData.workerName,
+								workerId: this.formData.workerId,
+								identity: this.formData.idcard,
+								workerMobile: this.formData.phone,
+								items: this.dataList
+							}).then(res => {
+								if(res.code == 200){
+									this.$message.success('提交成功!')
+									this.goBack()
+								}
+							})
+						}else if(this.formType == 1){
+							edit({
+								salesId: this.formData.salesId,
+								goodsType: 'P',
+								source: this.formData.source,
+								payType: this.formData.payType,
+								remark: this.formData.remark,
+								websitId: this.formData.websitId,
+								websitName: this.formData.websitName,
+								workerName: this.formData.workerName,
+								workerId: this.formData.workerId,
+								identity: this.formData.idcard,
+								workerMobile: this.formData.phone,
+								items: this.dataList
+							}).then(res => {
+								if(res.code == 200){
+									this.dataList = []
+									this.$message.success('提交成功!')
+									this.goBack()
+								}
+							})
+						}
+					}
 				})
 			}
 		}

+ 20 - 3
src/views/auxiliaryFittings/salesManagement/components/auxiliaryAdjustPriceOrderDetail.vue

@@ -141,8 +141,8 @@
 		<div class="page-footer">
 			<div class="footer">
 				<el-button size="small" type="info" @click="goBack">返回</el-button>
-				<el-button v-if="formType != 2" size="small" type="primary" @click="confirm()">提交</el-button>
-				<el-button v-if="formType == 1" size="small" type="danger">审核通过</el-button>
+				<el-button v-if="formType != 2" size="small" type="primary" @click="submit()">提交</el-button>
+				<el-button v-if="formType == 1" size="small" type="primary" @click="confirm()">审核通过</el-button>
 			</div>
 		</div>
 	</div>
@@ -244,7 +244,7 @@
 				})
 			},
 			getWebsit(){
-				getWebsit().then(res => {
+				getWebsit({type: 'C'}).then(res => {
 					this.websitList = res.data
 				})
 			},
@@ -360,6 +360,23 @@
 				})
 			},
 			confirm(){
+				this.$confirm(`请确认是否审核通过, 是否继续?`, '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(() => {
+					confirm({
+						sheetId: this.formData.sheetId,
+						flag: 'OK'
+					}).then(res => {
+						if(res.code == 200){
+							this.$message.success('审核成功!')
+							this.goBack()
+						}
+					})
+				});
+			},
+			submit(){
 				this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
 					if (valid) {
 						if(this.formType == 0){

+ 57 - 4
src/views/auxiliaryFittings/salesManagement/components/auxiliarySalesOrderDetail.vue

@@ -188,17 +188,23 @@
 		</el-card>
 		<div class="page-footer">
 			<div class="footer">
-				<el-button v-if="true" size="small" type="primary" @click="confirm()">提交</el-button>
-				<el-button v-if="true" size="small" type="danger">确认收货</el-button>
+				<el-button v-if="formType == 0 || (formType == 1 && formData.flag == 'SAVE')" size="small" type="primary" @click="save()">保存</el-button>
+				<el-button v-if="formType != 0 && formData.flag == 'SAVE'" size="small" type="primary" @click="submit()">提交</el-button>
+				<el-button v-if="formData.flag == 'SUBMIT' && formData.payType == 'WECHAT'" size="small" type="primary" @click="wxPay()">微信支付</el-button>
+				<el-button v-if="formData.flag == 'PAY_NOT_TAKE'" size="small" type="primary"  @click="confirm()">确认收货</el-button>
 				<el-button size="small" type="info" @click="goBack">返回</el-button>
 			</div>
 		</div>
+		<el-dialog title="微信支付" :visible.sync="isPay" width="50%" :close-on-click-modal="false" :modal-append-to-body="false" @close="payCodeUrl = ''">
+			<h3>扫二维码支付</h3>
+			<el-image :src="payCodeUrl" fit="fit"></el-image>
+		</el-dialog>
 	</div>
 </template>
 
 <script>
 	import { getWebsit } from "@/api/customerManagement";
-	import { getWorker, getCategory, getGoods, getDetail, add, edit, confirm } from "@/api/auxiliaryFittings/auxiliarySalesOrder";
+	import { getWorker, getCategory, getGoods, getDetail, add, edit, confirm, submit, getCode } from "@/api/auxiliaryFittings/auxiliarySalesOrder";
 	export default {
 		props: ['id','title','formType'],
 		data() {
@@ -207,6 +213,8 @@
 				websitList: [],
 				workerList: [],
 				mainList: [],
+				isPay: false,
+				payCodeUrl: '',
 				formData: {
 					websit: {},
 					websitId: '',
@@ -299,7 +307,7 @@
 				})
 			},
 			getWebsit(){
-				getWebsit().then(res => {
+				getWebsit({type: 'C'}).then(res => {
 					this.websitList = res.data
 				})
 			},
@@ -414,7 +422,52 @@
 					goodsType: 'M'
 				})
 			},
+			submit(){
+				this.$confirm(`请确定是否提交订单, 是否继续?`, '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(() => {
+					submit({
+						salesId: this.formData.salesId
+					}).then(res => {
+						if(res.code == 200){
+							this.$message.success('提交成功!')
+							if(this.formData.payType == 'WECHAT'){
+								this.isPay = true
+							}else{
+								this.goBack()
+							}
+						}
+					})
+				});
+			},
 			confirm(){
+				this.$confirm(`请确定是否确认提货, 是否继续?`, '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(() => {
+					confirm({
+						salesId: this.formData.salesId
+					}).then(res => {
+						if(res.code == 200){
+							this.$message.success('审核成功!')
+							this.goBack()
+						}
+					})
+				});
+			},
+			wxPay(){
+				getCode({
+					salesId: this.formData.salesId
+				}).then(res => {
+					if(res.code == 200){
+						
+					}
+				})
+			},
+			save(){
 				this.$refs.formData.validate((valid, invalidFields, errLabels) => {
 					if (valid) {
 						if(this.formType == 0){

+ 541 - 0
src/views/auxiliaryFittings/salesManagement/components/auxiliarySalesReturnOrderDetail.vue

@@ -0,0 +1,541 @@
+<template>
+	<div class="s-page">
+		<el-page-header @back="goBack" :content="title"></el-page-header>
+		<el-divider></el-divider>
+		<el-card class="box-card">
+			<div slot="header" class="clearfix">
+				<span>单据信息</span>
+			</div>
+			<div class="mymain-container">
+				<el-form ref="formData" :rules="rules" :model="formData" label-width="110px" size="small" label-position="left">
+					<el-row :gutter="20" justify="start">
+						<el-col :span="8" v-if="id">
+							<el-form-item label="单据状态">
+								<el-input type="text" :value="formData.flag == 'SAVE'?'已保存':formData.flag == 'OK'?'审核通过':formData.flag == 'OK'?'FAIL':''" disabled></el-input>
+							</el-form-item>
+						</el-col>
+						<el-col :span="8" v-if="id">
+							<el-form-item label="单据编号">
+								<el-input type="text" :value="formData.salesId" disabled></el-input>
+							</el-form-item>
+						</el-col>
+						<el-col :span="8">
+							<el-form-item label="所属商户" :required="true" >
+								<el-input type="text" :value="companyName" disabled></el-input>
+							</el-form-item>
+						</el-col>
+						<el-col :span="12">
+							<el-form-item label="网点名称" prop="websitId" :required="true">
+								<el-select v-model="formData.websit" value-key="websitId" @change="changeWebsit" placeholder="请选择" style="width: 100%;">
+								    <el-option
+								      v-for="item in websitList"
+								      :key="item.websitId"
+								      :label="item.name"
+								      :value="item">
+								    </el-option>
+								  </el-select>
+							</el-form-item>
+						</el-col>
+						<el-col :span="8">
+							<el-form-item label="师傅姓名" prop="worker" :required="true">
+								<el-select v-model="formData.worker" value-key="nickName" @focus="()=>{
+									if(!this.formData.websitId){return this.$message.warning('请先选择网点名称!');}
+								}" filterable @change="changeWorker" @blur="workerBlur" placeholder="请选择" style="width: 100%;">
+								    <el-option
+								      v-for="item in workerList"
+								      :key="item.id"
+								      :label="item.nickName"
+								      :value="item">
+								    </el-option>
+								  </el-select>
+							</el-form-item>
+						</el-col>
+						<el-col :span="8">
+							<el-form-item label="师傅身份证" prop="idcard" :required="true">
+								<el-input type="text" v-model="formData.idcard" placeholder="请输入"></el-input>
+							</el-form-item>
+						</el-col>
+						<el-col :span="8">
+							<el-form-item label="师傅联系电话" prop="phone" :required="true">
+								<el-input type="text" v-model="formData.phone" placeholder="请输入"></el-input>
+							</el-form-item>
+						</el-col>
+						<el-col :span="6" v-if="id">
+							<el-form-item label="单据金额">
+								<el-input type="text" :value="formData.createBy" disabled></el-input>
+							</el-form-item>
+						</el-col>
+						<el-col :span="6" v-if="id">
+							<el-form-item label="制单人">
+								<el-input type="text" :value="formData.createBy" disabled></el-input>
+							</el-form-item>
+						</el-col>
+						<el-col :span="6" v-if="id">
+							<el-form-item label="制单时间">
+								<el-input type="text" :value="formData.createTime" disabled></el-input>
+							</el-form-item>
+						</el-col>
+						<el-col :span="6" v-if="id">
+							<el-form-item label="审核人">
+								<el-input type="text" :value="formData.confirmBy" disabled></el-input>
+							</el-form-item>
+						</el-col>
+						<el-col :span="6" v-if="id">
+							<el-form-item label="审核时间">
+								<el-input type="text" :value="formData.confirmTime" disabled></el-input>
+							</el-form-item>
+						</el-col>
+						<el-col :span="24">
+							<el-form-item label="附件">
+								<ImageUpload :fileList="formData.file_url" :limit="1" :isEdit="formType !== 2" />
+							</el-form-item>
+						</el-col>
+						<el-col :span="24">
+							<el-form-item label="备注">
+								<el-input type="textarea" :rows="4" v-model="formData.remark" placeholder="请输入"></el-input>
+							</el-form-item>
+						</el-col>
+					</el-row>
+				</el-form>
+			</div>
+		</el-card>
+		<el-card class="box-card">
+			<div slot="header" class="clearfix">
+				<span>辅材信息</span>
+			</div>
+			<el-button size="small" type="primary" @click="add()">添加</el-button>
+			<div class="table">
+				<el-table :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe>
+					<el-table-column label="大类名称" align="center">
+						<template slot-scope="scope">
+							<el-select v-model="scope.row.parentCategory" value-key="categoryId" @change="changeMain" :disabled="isEdit != scope.$index" placeholder="请选择" style="width: 100%;">
+							    <el-option
+							      v-for="item in mainList"
+							      :key="item.categoryId"
+							      :label="item.categoryName"
+							      :value="item">
+							    </el-option>
+							  </el-select>
+						</template>
+					</el-table-column>
+					<el-table-column label="小类名称" align="center">
+						<template slot-scope="scope">
+							<el-select v-model="scope.row.goodsCategory" @change="changeSmall" @focus="()=>{
+									if(!scope.row.parentCategory){return this.$message.warning('请先选择大类!');}
+								}" :disabled="isEdit != scope.$index" value-key="categoryId" placeholder="请选择" style="width: 100%;">
+							    <el-option
+							      v-for="item in scope.row.parentCategory.items"
+							      :key="item.categoryId"
+							      :label="item.categoryName"
+							      :value="item">
+							    </el-option>
+							  </el-select>
+						</template>
+					</el-table-column>
+					<el-table-column label="辅材名称" align="center">
+						<template slot-scope="scope">
+							<el-select v-model="scope.row.goods" @change="changeGoods" value-key="goodsId" :disabled="isEdit != scope.$index" placeholder="请选择" style="width: 100%;">
+							    <el-option
+							      v-for="item in scope.row.goodsList"
+							      :key="item.goodsId"
+							      :label="item.goodsName"
+							      :value="item">
+							    </el-option>
+							  </el-select>
+						</template>
+					</el-table-column>
+					<el-table-column prop="goods.goodsSalesUnit" align="center" label="单位" ></el-table-column>
+					<el-table-column prop="" align="center" label="数量" >
+						<template slot-scope="scope">
+							<el-input type="number" v-model="scope.row.salesQty" :disabled="isEdit != scope.$index" placeholder="请输入"></el-input>
+						</template>
+					</el-table-column>
+					<el-table-column prop="goods.goodsCode" align="center" label="商品代码"></el-table-column>
+					<el-table-column prop="goods.goodsSpecification" align="center" label="规格型号"></el-table-column>
+					<el-table-column prop="goods.price" align="center" label="销售价格"></el-table-column>
+					<el-table-column prop="goods.saleAmount" align="center" label="销售金额" ></el-table-column>
+					<el-table-column prop="goods.qty" align="center" label="库存数量"></el-table-column>
+					<el-table-column label="操作" align="right" width="140">
+						<template slot-scope="scope">
+							<el-button size="mini" type="primary" v-if="scope.$index != isEdit" @click="isEdit = scope.$index">编辑</el-button>
+							<el-button size="mini" type="danger" @click="dataList.splice(scope.$index,1)">删除</el-button>
+						</template>
+					</el-table-column>
+				</el-table>
+			</div>
+		</el-card>
+		<div class="page-footer">
+			<div class="footer">
+				<el-button v-if="formType == 0 || (formType == 1 && formData.flag == 'SAVE')" size="small" type="primary" @click="save()">保存</el-button>
+				<el-button v-if="formType != 0 && formData.flag == 'SAVE'" size="small" type="primary" @click="submit()">提交</el-button>
+				<el-button v-if="formData.flag == 'SUBMIT' && formData.payType == 'WECHAT'" size="small" type="primary" @click="wxPay()">微信支付</el-button>
+				<el-button v-if="formData.flag == 'PAY_NOT_TAKE'" size="small" type="primary"  @click="confirm()">确认收货</el-button>
+				<el-button size="small" type="info" @click="goBack">返回</el-button>
+			</div>
+		</div>
+		<el-dialog title="微信支付" :visible.sync="isPay" width="50%" :close-on-click-modal="false" :modal-append-to-body="false" @close="payCodeUrl = ''">
+			<h3>扫二维码支付</h3>
+			<el-image :src="payCodeUrl" fit="fit"></el-image>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+	import { getWebsit } from "@/api/customerManagement";
+	import ImageUpload from '@/components/file-upload'
+	import { getWorker, getCategory, getGoods, getDetail, add, edit, confirm, submit, getCode } from "@/api/auxiliaryFittings/auxiliarySalesOrder";
+	export default {
+		components: { ImageUpload },
+		props: ['id','title','formType'],
+		data() {
+			return {
+				dataList: [],
+				websitList: [],
+				workerList: [],
+				mainList: [],
+				isPay: false,
+				payCodeUrl: '',
+				formData: {
+					websit: {},
+					websitId: '',
+					websitName: '',
+					file_url: [],
+					salesId: '',
+					flag: '',
+					createBy: '',
+					createTime: '',
+					confirmBy: '',
+					confirmTime: '',
+					worker: {},
+					workerName: '',
+					workerId: '',
+					idcard: '',
+					phone: '',
+					source: '',
+					payType: ''
+				},
+				isEdit: 0,
+				companyName: JSON.parse(localStorage.getItem('greemall_user')).companyName,
+				rules: {
+					websitId: [
+						{ required: true, message: '请选择网点', trigger: 'change' }
+					],
+					worker: [
+						{ required: true, message: '请选择师傅', trigger: 'change' }
+					],
+					source: [
+						{ required: true, message: '请选择订单来源', trigger: 'change' }
+					],
+					payType: [
+						{ required: true, message: '请选择订单来源', trigger: 'change' }
+					],
+					idcard: [
+						{ required: true, message: '请输入师傅身份证', trigger: 'blur' },
+					],
+					phone: [
+						{ required: true, message: '请输入师傅联系电话', trigger: 'blur' },
+					],
+				}
+			};
+		},
+		computed: {},
+		created() {
+			if(this.id){
+				this.getDetail()
+			}
+			this.getWebsit()
+		},
+		methods: {
+			// 返回
+			goBack() {
+				this.$emit('back');
+			},
+			async getDetail(){
+				const that = this
+				getDetail({salesId: this.id}).then(res => {
+					this.formData.flag = res.data.flag
+					this.formData.websit = {websitId: res.data.websitId,name: res.data.websitName}
+					this.formData.websitId = res.data.websitId
+					this.formData.websitName = res.data.websitName
+					this.getWorker()
+					this.formData.salesId = res.data.salesId
+					this.formData.createBy = res.data.createBy
+					this.formData.createTime = res.data.createTime
+					this.formData.confirmBy = res.data.confirmBy
+					this.formData.confirmTime = res.data.confirmTime
+					this.formData.worker = {nickName: res.data.workerName,userId: res.data.workerId}
+					this.formData.workerName = res.data.workerName
+					this.formData.workerId = res.data.workerId
+					this.formData.idcard = res.data.identity
+					this.formData.phone = res.data.workerMobile
+					this.formData.source = res.data.source
+					this.formData.payType = res.data.payType
+					this.getCategory(res.data.websitId)
+					this.formData.remark = res.data.remark
+					res.data.items.forEach(item=>{
+						item.parentCategory = {categoryId: item.parentCategoryId,categoryName: item.parentCategoryName,items: [{categoryId: item.goodsCategoryId,categoryName: item.goodsCategoryName}]}
+						item.goodsCategory = {categoryId: item.goodsCategoryId,categoryName: item.goodsCategoryName}
+						that.getGoods(item.goodsCategoryId,item.goodsName,1).then(ress => {
+							item.goods = {...ress.data,oldPrice:ress.data.price}
+							item.goodsList = [{...ress.data,oldPrice:ress.data.price}]
+						})
+					})
+					setTimeout(()=>{
+						this.dataList = res.data.items
+					},200)
+					console.log(this.dataList)
+				})
+			},
+			getWebsit(){
+				getWebsit({type: 'C'}).then(res => {
+					this.websitList = res.data
+				})
+			},
+			changeWebsit(e){
+				this.formData.websitId = e.websitId
+				this.formData.websitName = e.name
+				this.getWorker()
+				this.getCategory(e.websitId)
+			},
+			getCategory(websitId){
+				getCategory({websitId}).then(res => {
+					this.mainList = res.data
+				})
+			},
+			async getGoods(categoryId,goodsName,type){
+				const that = this
+				if(type == 1){
+					return new Promise((resolve, reject) => {
+						getGoods({websitId: this.formData.websitId,categoryId: categoryId,type: 'M',goodsName: goodsName}).then(res => {
+							resolve({
+								data: res.data[0]
+							})
+						})
+					})
+				}else{
+					getGoods({websitId: this.formData.websitId,categoryId: categoryId,type: 'M'}).then(res => {
+						that.dataList[that.isEdit].goodsList = res.data
+					})
+				}
+			},
+			getWorker(){
+				getWorker({pageNum: 1,pageSize: -1,params: [{param: 'b.websit_id',compare: '=',value: this.formData.websitId}]}).then(res => {
+					this.workerList = res.data.records
+				})
+			},
+			changeWorker(e){
+				this.formData.idcard = e.idCard
+				this.formData.phone = e.mobile
+				this.formData.workerId = e.userId
+				this.formData.workerName = e.nickName
+			},
+			workerBlur(e){
+				this.formData.worker = e.target.value
+				this.$forceUpdate()
+			},
+			changeMain(e){
+				this.dataList[this.isEdit].goodsList = [],
+				this.dataList[this.isEdit].parentCategory = e,
+				this.dataList[this.isEdit].parentCategoryId = e.categoryId,
+				this.dataList[this.isEdit].parentCategoryName = e.categoryName,
+				this.dataList[this.isEdit].goodsCategory = {},
+				this.dataList[this.isEdit].goodsCategoryName = '',
+				this.dataList[this.isEdit].goodsCategoryId = '',
+				this.dataList[this.isEdit].goods = {},
+				this.dataList[this.isEdit].goodsId = '',
+				this.dataList[this.isEdit].goodsName = '',
+				this.dataList[this.isEdit].goodsSalesUnit = '',
+				this.dataList[this.isEdit].goodsSpecification = '',
+				this.dataList[this.isEdit].goodsCode = '',
+				this.dataList[this.isEdit].price = '',
+				this.dataList[this.isEdit].saleAmount = '',
+				this.dataList[this.isEdit].salesQty = ''
+				this.dataList[this.isEdit].qty = '',
+				this.dataList[this.isEdit].goodsType = 'M'
+			},
+			async changeSmall(e){
+				this.dataList[this.isEdit].goods = {},
+				this.dataList[this.isEdit].goodsId = '',
+				this.dataList[this.isEdit].goodsName = '',
+				this.dataList[this.isEdit].goodsSalesUnit = '',
+				this.dataList[this.isEdit].goodsSpecification = '',
+				this.dataList[this.isEdit].goodsCode = '',
+				this.dataList[this.isEdit].price = '',
+				this.dataList[this.isEdit].saleAmount = '',
+				this.dataList[this.isEdit].salesQty = ''
+				this.dataList[this.isEdit].qty = '',
+				this.dataList[this.isEdit].goodsCategoryId = e.categoryId
+				this.dataList[this.isEdit].goodsCategoryName = e.categoryName
+				getGoods({websitId: this.formData.websitId,categoryId: e.categoryId,type: 'M'}).then(res => {
+					this.dataList[this.isEdit].goodsList = res.data
+				})
+			},
+			changeGoods(e){
+				console.log(e)
+				this.dataList[this.isEdit].goodsId = e.goodsId
+				this.dataList[this.isEdit].goodsName = e.goodsName
+				this.dataList[this.isEdit].goodsSalesUnit = e.goodsSalesUnit
+				this.dataList[this.isEdit].goodsSpecification = e.goodsSpecification
+				this.dataList[this.isEdit].price = e.price
+				this.dataList[this.isEdit].goodsCode = e. goodsCode
+				this.dataList[this.isEdit].qty = e.qty
+			},
+			add(){
+				this.dataList.push({
+					goodsList: [],
+					parentCategory: {},
+					parentCategoryId: '',
+					parentCategoryName: '',
+					goodsCategory: {},
+					goodsCategoryName: '',
+					goodsCategoryId: '',
+					goods: {},
+					goodsId: '',
+					goodsName: '',
+					goodsSalesUnit: '',
+					goodsSpecification: '',
+					goodsCode: '',
+					price: '',
+					saleAmount: '',
+					salesQty: 1,
+					qty: '',
+					goodsType: 'M'
+				})
+			},
+			submit(){
+				this.$confirm(`请确定是否提交订单, 是否继续?`, '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(() => {
+					submit({
+						salesId: this.formData.salesId
+					}).then(res => {
+						if(res.code == 200){
+							this.$message.success('提交成功!')
+							if(this.formData.payType == 'WECHAT'){
+								this.isPay = true
+							}else{
+								this.goBack()
+							}
+						}
+					})
+				});
+			},
+			confirm(){
+				this.$confirm(`请确定是否确认提货, 是否继续?`, '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(() => {
+					confirm({
+						salesId: this.formData.salesId
+					}).then(res => {
+						if(res.code == 200){
+							this.$message.success('审核成功!')
+							this.goBack()
+						}
+					})
+				});
+			},
+			wxPay(){
+				getCode({
+					salesId: this.formData.salesId
+				}).then(res => {
+					if(res.code == 200){
+						
+					}
+				})
+			},
+			save(){
+				this.$refs.formData.validate((valid, invalidFields, errLabels) => {
+					if (valid) {
+						if(this.formType == 0){
+							add({
+								goodsType: 'M',
+								source: this.formData.source,
+								payType: this.formData.payType,
+								remark: this.formData.remark,
+								websitId: this.formData.websitId,
+								websitName: this.formData.websitName,
+								workerName: this.formData.workerName,
+								workerId: this.formData.workerId,
+								identity: this.formData.idcard,
+								workerMobile: this.formData.phone,
+								items: this.dataList,
+								file_url: this.formData.file_url.map(item=>item.url).join(","),
+							}).then(res => {
+								if(res.code == 200){
+									this.$message.success('提交成功!')
+									this.goBack()
+								}
+							})
+						}else if(this.formType == 1){
+							edit({
+								salesId: this.formData.salesId,
+								goodsType: 'M',
+								source: this.formData.source,
+								payType: this.formData.payType,
+								remark: this.formData.remark,
+								websitId: this.formData.websitId,
+								websitName: this.formData.websitName,
+								workerName: this.formData.workerName,
+								workerId: this.formData.workerId,
+								identity: this.formData.idcard,
+								workerMobile: this.formData.phone,
+								items: this.dataList,
+								file_url: this.formData.file_url.map(item=>item.url).join(","),
+							}).then(res => {
+								if(res.code == 200){
+									this.dataList = []
+									this.$message.success('提交成功!')
+									this.goBack()
+								}
+							})
+						}
+					}
+				})
+			}
+		}
+	};
+</script>
+
+<style scoped="scoped" lang="scss">
+	.s-page {
+		padding: 20px;
+		background-color: #ffffff;
+	}
+	.page-footer {
+		height: 70px;
+	}
+	
+	.footer {
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		z-index: 1;
+		width: 100%;
+		background: #fff;
+		padding: 15px 40px;
+		box-sizing: border-box;
+		transition: all 0.28s;
+		text-align: right;
+		box-shadow: 0 2px 5px 0 rgb(0 0 0 / 50%), 0 2px 5px 0 rgb(0 0 0 / 10%);
+	
+		&.hideSidebar {
+			margin-left: 54px;
+			width: calc(100vw - 54px);
+		}
+	
+		&.openSidebar {
+			margin-left: 210px;
+			width: calc(100vw - 210px);
+		}
+	
+		.tips {
+			font-size: 12px;
+			color: red;
+			margin-top: 10px;
+		}
+	}
+</style>

+ 15 - 4
src/views/setting/departmentManage/index.vue

@@ -71,9 +71,12 @@
         <el-form-item label="名称" prop="name">
           <el-input placeholder="请输入网点名称" v-model="mainForm.name"></el-input>
         </el-form-item>
-		<el-form-item label="联系人" prop="linkName">
-		  <el-input placeholder="请输入联系人名称" v-model="mainForm.linkName"></el-input>
-		</el-form-item>
+			<el-form-item label="联系人" prop="linkName">
+				<el-input placeholder="请输入联系人名称" v-model="mainForm.linkName"></el-input>
+			</el-form-item>
+			<el-form-item label="联系人电话" prop="websitPhone">
+				<el-input placeholder="请输入联系人电话" maxlength="11" type="number" v-model="mainForm.websitPhone"></el-input>
+			</el-form-item>
         <el-form-item label="地址" prop="address" required>
 			<div style="display:flex;">
 				<el-input placeholder="请选择地址" readonly style="margin-right: 20px;" v-model="mainForm.address"></el-input>
@@ -119,6 +122,7 @@ export default {
         parentId: '',
         name: '',
 		linkName:'',
+		websitPhone: '',
 		lat: '',
 		lng: '',
         address: '',
@@ -126,7 +130,9 @@ export default {
       },
       mainFormRules: {
         name: [{ required: true, message: '请填写网点名称', trigger: 'blur' }],
-		linkName: [{ required: true, message: '请填写联系人名称', trigger: 'blur' }]
+		linkName: [{ required: true, message: '请填写联系人名称', trigger: 'blur' }],
+		websitPhone: [{ required: true, message: '请填写联系人电话', trigger: 'blur' }],
+		address: [{ required: true, message: '请选择GPS地址', trigger: 'blur' }],
       }
     }
   },
@@ -239,6 +245,10 @@ export default {
           this.mainForm = {
             parentId: res.data.parentId,
             name: res.data.name,
+			linkName: res.data.linkName,
+			websitPhone: res.data.websitPhone,
+			lat: res.data.lat,
+			lng: res.data.lng,
             address: res.data.address,
             status: res.data.status,
           }
@@ -269,6 +279,7 @@ export default {
             parentId,
             name: this.mainForm.name,
 			linkName: this.mainForm.linkName,
+			websitPhone: this.mainForm.websitPhone,
 			lat: this.mainForm.lat,
 			lng: this.mainForm.lng,
             address: this.mainForm.address,

+ 1 - 1
src/views/userManagement/customerManagement/index.vue

@@ -126,7 +126,7 @@ export default {
 			}}>详情</el-button>
           {row.examineStatus != 'WAIT' ?<el-button type="text" onClick={() => {
           this.workerForm.userId = row.userId
-          getWebsit().then(res => {
+          getWebsit({type: 'C'}).then(res => {
                    this.websitList = res.data
              this.dialogVisible = true
                 })