simple 5 роки тому
батько
коміт
b4045bac55

+ 0 - 1
config/fetch.js

@@ -117,7 +117,6 @@ export default async(url = '',baseUrl='',data = {},dataType = 'JSON', type = 'GE
       }
       dataStr += key + '=' + encodeURIComponent(data[key]) + '&';
     })
-
     if (dataStr !== '') {
       dataStr = dataStr.substr(0, dataStr.lastIndexOf('&'));
       url = url + '?' + dataStr+'&_t=' + new Date().getTime();

+ 175 - 51
src/page/purchase/components/order/orderAdd.vue

@@ -5,30 +5,49 @@
       <Card style="width:100%" :bordered="false" :dis-hover="true">
         <p slot="title">采购订单详情</p>
         <div slot="extra">
-          <Button>保存</Button>
-          <Button>提交</Button>
-          <Button @click="$emit('return')">取消</Button>
+          <Button @click="addCgdd" v-if="orderType == 'add'">提交</Button>
+          <Button
+            @click="editCgdd"
+            v-if="form.spzt == '1' || form.spzt == '' || form.spzt == '4'"
+          >保存</Button>
+          <Button @click="cancel">取消</Button>
         </div>
         <Row class="mainCont">
+          <Col span="4" class-name="tables">订购编号</Col>
+          <Col span="4" class-name="tables">
+            <span v-if="orderType == 'add'">保存成功后生成</span>
+            <span v-else>{{ form.dgbh }}</span>
+          </Col>
+          <Col span="4" class-name="tables">标题</Col>
+          <Col span="4" class-name="tables">
+            <span v-if="orderType == 'add'">保存成功后生成</span>
+            <span v-else>{{ form.bt }}</span>
+          </Col>
+          <Col span="4" class-name="tables">总价(元)</Col>
+          <Col span="4" class-name="tables">计算属性</Col>
           <Col span="4" class-name="tables">关联区域</Col>
           <Col span="4" class-name="tables">
-            <Select v-model="form.glqy" style="width: 95%">
+            <Select v-model="form.glqy" style="width: 95%" v-if="orderType == 'add'">
               <Option
                 v-for="item in glqyList"
                 :value="item.value + ',' + item.label"
                 :key="item.value"
+                :disabled="form.spzt != '1' || form.spzt != '4'"
               >{{ item.label }}</Option>
             </Select>
+            <span v-else>{{ form.glqy.split(',')[1] }}</span>
           </Col>
           <Col span="4" class-name="tables">关联项目</Col>
           <Col span="4" class-name="tables">
-            <Select v-model="form.glxm" style="width: 95%">
+            <Select v-model="form.glxm" style="width: 95%" v-if="orderType == 'add'">
               <Option
                 v-for="item in glxmList"
                 :value="item.value + ',' + item.label"
                 :key="item.value"
+                :disabled="form.spzt != '1' || form.spzt != '4'"
               >{{ item.label }}</Option>
             </Select>
+            <span v-else>{{ form.glxm.split(',')[1] }}</span>
           </Col>
           <Col span="4" class-name="tables">单据类型</Col>
           <Col span="4" class-name="tables">
@@ -37,13 +56,11 @@
                 v-for="item in djlxList"
                 :value="item.value"
                 :key="item.value"
+                :disabled="form.spzt != '1' || form.spzt != '4'"
               >{{ item.label }}</Option>
             </Select>
           </Col>
-          <Col span="4" class-name="tables">标题</Col>
-          <Col span="4" class-name="tables">计算属性</Col>
-          <Col span="4" class-name="tables">总价(元)</Col>
-          <Col span="4" class-name="tables">计算属性</Col>
+
           <Col span="4" class-name="tables">采购人</Col>
           <Col span="4" class-name="tables">
             <Select v-model="form.cgr" style="width: 95%">
@@ -51,12 +68,18 @@
                 v-for="item in cgrList"
                 :value="item.value + ',' + item.label"
                 :key="item.value"
+                :disabled="form.spzt != '1' || form.spzt != '4'"
               >{{ item.label }}</Option>
             </Select>
           </Col>
           <Col span="4" class-name="tables">采购人联系方式</Col>
           <Col span="4" class-name="tables">
-            <Input v-model="form.cgrlxfs" placeholder="请输入" style="width: 95%" />
+            <Input
+              v-model="form.cgrlxfs"
+              :disabled="form.spzt != '1' || form.spzt != '4'"
+              placeholder="请输入"
+              style="width: 95%"
+            />
           </Col>
           <Col span="4" class-name="tables">下单日期</Col>
           <Col span="4" class-name="tables">
@@ -67,11 +90,13 @@
               @on-change="form.xdrq=$event"
               type="datetime"
               placeholder="请选择"
+              :disabled="form.spzt != '1' || form.spzt != '4'"
             ></DatePicker>
           </Col>
           <Col span="4" class-name="tables">交货时间</Col>
           <Col span="4" class-name="tables">
             <DatePicker
+              :disabled="form.xdrq == '' || form.spzt != '1'"
               style="width: 95%"
               format="yyyy-MM-dd HH:mm:ss"
               :value="form.jhsj"
@@ -85,42 +110,62 @@
           <Col span="4" class-name="tables">计算属性</Col>
           <Col span="4" class-name="tables">收货人</Col>
           <Col span="4" class-name="tables">
-            <Input v-model="form.shr" placeholder="请输入" style="width: 95%" />
+            <Input
+              v-model="form.shr"
+              :disabled="form.spzt != '1' || form.spzt != '4'"
+              placeholder="请输入"
+              style="width: 95%"
+            />
           </Col>
           <Col span="4" class-name="tables">收货人联系方式</Col>
           <Col span="4" class-name="tables">
-            <Input v-model="form.shrlxfs" placeholder="请输入" style="width: 95%" />
+            <Input
+              v-model="form.shrlxfs"
+              :disabled="form.spzt != '1' || form.spzt != '4'"
+              placeholder="请输入"
+              style="width: 95%"
+            />
           </Col>
           <Col span="4" class-name="tables">供应商</Col>
-          <Col span="4" class-name="tables">
-            <Select v-model="form.gys" style="width: 95%">
-              <Option v-for="item in gysList" :value="item.value" :key="item.value">{{ item.label }}</Option>
-            </Select>
-          </Col>
-          <Col span="4" class-name="tables">供方负责人</Col>
-          <Col span="4" class-name="tables">
-            <Select v-model="form.gffzr" style="width: 95%">
+          <Col span="12" class-name="tables">
+            <Select v-model="form.gys" style="width: 95%" v-if="orderType == 'add'">
               <Option
-                v-for="item in gffzrList"
+                v-for="item in gysList"
+                :disabled="form.spzt != '1' || form.spzt != '4'"
                 :value="item.value"
                 :key="item.value"
               >{{ item.label }}</Option>
             </Select>
+            <span v-else>{{ form.gysmc }}</span>
           </Col>
+          <Col span="4" class-name="tables">供方负责人</Col>
+          <Col span="4" class-name="tables">{{ form.gffzr }}</Col>
           <Col span="4" class-name="tables">供应商联系电话</Col>
-          <Col span="4" class-name="tables">选择供方负责人之后带出</Col>
+          <Col span="4" class-name="tables">{{ form.gyslxdh }}</Col>
+          <Col span="4" class-name="tables">关联申购计划</Col>
+          <Col span="4" class-name="tables">-</Col>
+          <!-- <Col span="4" class-name="tables"></Col>
+          <Col span="4" class-name="tables"></Col>-->
           <Col span="4" class-name="tables">审批状态</Col>
-          <Col span="4" class-name="tables">计算属性</Col>
+          <Col span="4" class-name="tables">
+            <span v-if="form.spzt == ''">-</span>
+            <span v-if="form.spzt == '1'">未提交</span>
+            <span v-if="form.spzt == '2'">审核中</span>
+            <span v-if="form.spzt == '3'">审核通过</span>
+            <span v-if="form.spzt == '4'">审核拒绝</span>
+          </Col>
           <Col span="4" class-name="tables">审批通过时间</Col>
-          <Col span="4" class-name="tables">计算属性</Col>
+          <Col span="4" class-name="tables">-</Col>
           <Col span="4" class-name="tables">订单状态</Col>
-          <Col span="4" class-name="tables">计算属性</Col>
-          <Col span="4" class-name="tables">订购编号</Col>
-          <Col span="4" class-name="tables">计算属性</Col>
-          <Col span="4" class-name="tables">关联申购计划</Col>
-          <Col span="4" class-name="tables">计算属性</Col>
-          <Col span="4" class-name="tables"></Col>
-          <Col span="4" class-name="tables"></Col>
+          <Col span="4" class-name="tables">
+            <span v-if="form.ddzt == ''">-</span>
+            <span v-if="form.ddzt == '1'">未下单</span>
+            <span v-if="form.ddzt == '2'">待下单</span>
+            <span v-if="form.ddzt == '3'">已下单</span>
+            <span v-if="form.ddzt == '4'">入库中</span>
+            <span v-if="form.ddzt == '5'">已入库</span>
+            <span v-if="form.ddzt == '6'">已取消</span>
+          </Col>
         </Row>
         <Row class="uplCont" type="flex" justify="center" style="align-items: stretch">
           <Col span="4" class-name="upl">附件</Col>
@@ -129,6 +174,7 @@
               style="width: 80%"
               multiple
               type="drag"
+              :disabled="form.spzt != '1' || form.spzt != '4'"
               action="/landcrm/rest/uploadFileInfo/uploadMutiFile"
               :before-upload="beforeUpload"
               :on-success="uploadFilesSuccess"
@@ -153,7 +199,12 @@
         <Row class="mainCont">
           <Col span="4" class-name="tables">说明</Col>
           <Col span="20" class-name="tables">
-            <Input v-model="form.sm" placeholder="请输入" style="width: 99%" />
+            <Input
+              v-model="form.sm"
+              :disabled="form.spzt != '1' || form.spzt != '4'"
+              placeholder="请输入"
+              style="width: 99%"
+            />
           </Col>
         </Row>
         <Spin size="large" fix v-if="spinShow"></Spin>
@@ -161,7 +212,7 @@
       <Card style="width:100%" :bordered="false" :dis-hover="true">
         <p slot="title">采购明细</p>
         <div slot="extra">
-          <Button type="primary" @click="contentShow = false">新增明细</Button>
+          <Button type="primary" @click="contentShow = false" :disabled="orderType == 'add'">新增明细</Button>
         </div>
         <Table
           :columns="tableColumn"
@@ -246,6 +297,7 @@
 </template>
 
 <script>
+import { addPurchaseOrder, findPurchaseOrder } from "@/service/getData";
 import orderMxAdd from "./orderMxAdd";
 export default {
   components: {
@@ -253,9 +305,13 @@ export default {
   },
   data() {
     return {
-      spinShow: true,
+      orderType: "add",
+      orderId: "",
+      spinShow: false,
       contentShow: true,
       form: {
+        dgbh: "", //订购编号
+        bt: "", //标题
         glqy: "", //关联区域
         glxm: "", //关联项目
         cgr: "", //采购人
@@ -267,9 +323,13 @@ export default {
         shrlxfs: "", //收货人联系方式
         djlx: "", //单据类型
         gys: "", //供应商
+        gysmc: "", //供应商名称
         gffzr: "", //供方负责人
         gyslxdh: "", //供应商联系电话
         sm: "", //说明
+        spzt: "", //审批状态
+        sptgsj: "", //审批通过时间
+        ddzt: "", //订单状态
         filesList: []
       },
       jhsjOptions: {
@@ -277,12 +337,12 @@ export default {
           return date && date.valueOf() < new Date(this.form.xdrq);
         }
       },
-      glqyList: [{ label: "1", value: "1" }],
-      glxmList: [{ label: "1", value: "1" }],
-      cgrList: [{ label: "1", value: "1" }],
-      djlxList: [{ label: "1", value: "1" }],
-      gysList: [{ label: "1", value: "1" }],
-      gffzrList: [{ label: "1", value: "1" }],
+      glqyList: [{ label: "test", value: 1 }],
+      glxmList: [{ label: "test", value: 1 }],
+      cgrList: [{ label: "test", value: 1 }],
+      djlxList: [{ label: "test", value: 1 }],
+      gysList: [{ label: "test", value: 1 }],
+      gffzrList: [{ label: "test", value: 1 }],
       uploading: false,
       // 批量设置
       plszShow: false,
@@ -293,8 +353,7 @@ export default {
         {
           type: "selection",
           width: 60,
-          align: "center",
-          fixed: "left"
+          align: "center"
         },
         {
           title: "申购计划",
@@ -418,7 +477,7 @@ export default {
     };
   },
   created() {
-    this.getTableData();
+    // this.getTableData();
   },
   methods: {
     //批量设置弹窗
@@ -441,6 +500,40 @@ export default {
         fileDetailType: ""
       });
     },
+    getCgddXq(id) {
+      this.orderId = id;
+      let postData = {
+        orderId: id
+      };
+      this.spinShow = true;
+      findPurchaseOrder(postData).then(res => {
+        this.spinShow = false;
+        if (res.status == 200) {
+          let data = res.data;
+          this.form.dgbh = data.orderCode;
+          this.form.bt = data.title;
+          this.form.glqy = data.areaId + "," + data.areaName;
+          this.form.glxm = data.projectId + "," + data.projectName;
+          this.form.djlx = data.type;
+          this.form.cgr = data.purchaserId + "," + data.purchaserName;
+          this.form.cgrlxfs = data.purchaserTel;
+          this.form.xdrq = data.orderTime;
+          this.form.jhsj = [data.deliveryStartTime, data.deliveryEndTime];
+          this.form.shr = data.receivedName;
+          this.form.shrlxfs = data.receivedTel;
+          this.form.gys = data.gpName;
+          this.form.gffzr = data.gpcName;
+          this.form.gyslxdh = data.gpcPhone;
+          this.form.spzt = data.approvalState;
+          this.form.ddzt = data.orderState;
+          this.form.gysmc = data.gpName;
+          this.orderType = "edit";
+        } else {
+          this.$Message.error(res.message);
+        }
+      });
+    },
+    editCgdd() {},
     //新增采购订单
     addCgdd() {
       let postData = {
@@ -458,14 +551,24 @@ export default {
         deliveryEndTime: this.form.jhsj[1],
         deliveryPlace: this.form.jhdd,
         type: this.form.djlx,
-        // orderState: 1,
-        // projectCode: "AABB",
         instruction: this.form.sm,
         attachmentList: this.form.filesList,
-        gpCompanyName: this.form.gys,
-        gpcName: this.form.gffzr,
-        gpcPhone: this.form.gyslxdh
+        gpId: "1000574", //供应商ID
+        gpNmae: "" //供应商Name
       };
+      this.spinShow = true;
+      addPurchaseOrder(postData).then(res => {
+        this.spinShow = false;
+        if (res.status == 200) {
+          this.$Message.success("新增采购订单成功!");
+          this.orderId = res.data.orderId;
+          this.form.dgbh = res.data.orderCode;
+          this.form.bt = res.data.title;
+          this.orderType = "edit";
+        } else {
+          this.$Message.error(res.message);
+        }
+      });
     },
     //列表方法
     getTableData() {
@@ -474,7 +577,27 @@ export default {
     tableOnSelect(selection, row) {},
     //取消、返回
     cancel() {
-      this.spinShow = true;
+      this.form.dgbh = "";
+      this.form.bt = "";
+      this.form.glqy = "";
+      this.form.glxm = "";
+      this.form.djlx = "";
+      this.form.cgr = "";
+      this.form.cgrlxfs = "";
+      this.form.xdrq = "";
+      this.form.jhsj = [];
+      this.form.shr = "";
+      this.form.shrlxfs = "";
+      this.form.gys = "";
+      this.form.gffzr = "";
+      this.form.gyslxdh = "";
+      this.form.sm = "";
+      this.form.filesList = [];
+      this.form.spzt = "";
+      this.tableData = [];
+      this.orderType = "add";
+      this.spinShow = false;
+      this.$emit("return");
     }
   }
 };
@@ -507,8 +630,9 @@ button {
   height: 50px;
   border-right: 1px solid #e4e4e4;
   border-bottom: 1px solid #e4e4e4;
-  line-height: 50px;
-  text-align: center;
+  display: flex;
+  align-items: center;
+  justify-content: center;
   &:nth-child(2n + 1) {
     background: #f8f9fb;
   }

+ 27 - 9
src/page/purchase/components/order/orderMxAdd.vue

@@ -6,25 +6,34 @@
         <Button @click="$emit('return')">返回</Button>
       </div>
       <Row :gutter="10" style="margin-bottom: 10px">
-        <Col span="5">
+        <Col span="4">
+          <Input v-model="searchForm.ck" placeholder="仓库名" />
+        </Col>
+        <Col span="4">
           <Select v-model="searchForm.yjfl" placeholder="一级分类">
             <Option v-for="item in yjflList" :value="item.value" :key="item.value">{{ item.label }}</Option>
           </Select>
         </Col>
-        <Col span="5">
+        <Col span="4">
           <Select v-model="searchForm.ejfl" placeholder="二级分类">
             <Option v-for="item in ejflList" :value="item.value" :key="item.value">{{ item.label }}</Option>
           </Select>
         </Col>
-        <Col span="5">
+        <Col span="4">
           <Input v-model="searchForm.wlmc" placeholder="物料编码或名称" />
         </Col>
-        <Col span="9">
+        <Col span="8">
           <Button type="primary" style="width: 80px">查询</Button>
           <Button type="primary">批量添加</Button>
         </Col>
       </Row>
-      <Table :columns="tableColumn" style="width: 100%" :data="tableData" :loading="tableLoading" @on-select="tableOnSelect">
+      <Table
+        :columns="tableColumn"
+        style="width: 100%"
+        :data="tableData"
+        :loading="tableLoading"
+        @on-select="tableOnSelect"
+      >
         <template slot-scope="{ row, index }" slot="action">
           <div>
             <a href="javascript:;">编辑</a>
@@ -44,6 +53,7 @@ export default {
     return {
       //新增物料申请表单
       addForm: {
+        ck: "", //仓库名
         wlmc: "", //物料名称
         yjfl: "", //物料一级分类
         ejfl: "", //物料二级分类
@@ -77,8 +87,7 @@ export default {
         {
           type: "selection",
           width: 60,
-          align: "center",
-          fixed: "left"
+          align: "center"
         },
         {
           title: "申购计划",
@@ -143,12 +152,21 @@ export default {
         }
       ],
       tableData: [],
-      tableSelect: [],
+      tableSelect: []
     };
   },
   methods: {
     //列表方法
-    getTableData() {},
+    getTableData() {
+      let postData = {
+        page: 1,
+        pageSize: 20,
+        firstClassId: 1,
+        areaId: 1,
+        projectId: 1,
+        storehouseId: 123
+      };
+    },
     tableOnSelect(selection, row) {}
   }
 };

+ 49 - 10
src/page/purchase/purchaseOrder.vue

@@ -99,24 +99,42 @@
         :loading="tableLoading"
         @on-select="tableOnSelect"
       >
+        <template slot-scope="{ row, index }" slot="approvalState">
+          <div>
+            <span v-if="row.approvalState == '1'">未提交</span>
+            <span v-if="row.approvalState == '2'">审核中</span>
+            <span v-if="row.approvalState == '3'">审核通过</span>
+            <span v-if="row.approvalState == '4'">审核拒绝</span>
+          </div>
+        </template>
+        <template slot-scope="{ row, index }" slot="orderState">
+          <div>
+            <span v-if="row.orderState == '1'">未下单</span>
+            <span v-if="row.orderState == '2'">待下单</span>
+            <span v-if="row.orderState == '3'">已下单</span>
+            <span v-if="row.orderState == '4'">入库中</span>
+            <span v-if="row.orderState == '5'">已入库</span>
+            <span v-if="row.orderState == '6'">已取消</span>
+          </div>
+        </template>
         <template slot-scope="{ row, index }" slot="action">
           <div>
-            <a href="javascript:;">编辑</a>
+            <a href="javascript:;" @click="editRow(row)">编辑</a>
             <a href="javascript:;">复制</a>
-            <a href="javascript:;">删除</a>
+            <a href="javascript:;" @click="deleteRow(row)">删除</a>
             <a href="javascript:;">打印</a>
           </div>
         </template>
       </Table>
       <Page align="right" :total="pageTotal" @on-change="pageChange" show-total />
     </Card>
-    <orderAdd @return="addShow = false" v-show="addShow" />
+    <orderAdd ref="add" @return="addShow = false" v-show="addShow" />
     <orderPrint @return="printShow = false" v-show="printShow" />
   </div>
 </template>
 
 <script>
-import { getPurchaseOrder } from "@/service/getData";
+import { getPurchaseOrder, deletePurchaseOrder, findPurchaseOrder } from "@/service/getData";
 import orderAdd from "./components/order/orderAdd";
 import orderPrint from "./components/order/orderPrint";
 export default {
@@ -182,8 +200,7 @@ export default {
         {
           type: "selection",
           width: 60,
-          align: "center",
-          fixed: "left"
+          align: "center"
         },
 
         {
@@ -228,12 +245,12 @@ export default {
         },
         {
           title: "审批状态",
-          key: "approvalState",
+          slot: "approvalState",
           tooltip: "true"
         },
         {
           title: "状态",
-          key: "orderState",
+          slot: "orderState",
           tooltip: "true"
         },
         {
@@ -284,11 +301,33 @@ export default {
         orderState: this.searchForm.ddzt,
         queryText: this.searchForm.title
       };
+      this.tableLoading = true;
       getPurchaseOrder(postData).then(res => {
+        this.tableLoading = false;
         if (res.status == 200) {
-          console.log(res);
+          this.tableData = res.data.records;
+          this.pageTotal = res.data.total;
         } else {
-          this.$Message.error(res.message);
+          this.$Message.error("获取采购订单列表失败。");
+        }
+      });
+    },
+    editRow(row) {
+      this.addShow = true;
+      this.$refs.add.getCgddXq(row.orderId);
+    },
+    deleteRow(row) {
+      this.$Modal.confirm({
+        title: "删除",
+        content: "是否确定删除该采购订单?",
+        okText: "确定",
+        onOk: () => {
+          deletePurchaseOrder(row.orderId).then(res => {
+            if ((res.status = 200)) {
+              this.$Message.success("删除成功!");
+              this.getTableData();
+            }
+          });
         }
       });
     },

+ 7 - 2
src/service/getData.js

@@ -1,4 +1,3 @@
-
 import fetch from '../../config/fetch'
 import {
   getStore
@@ -95,6 +94,12 @@ export const queryPurchaseApplyList = (data) => fetch(`
 //采购订单 ---  获取采购订单
 export const getPurchaseOrder = (data) => fetch(`
 /purchaseOrder/getPurchaseOrder`, '/purchase', data, 'JSON2', 'POSt');
+//采购订单 ---  删除采购订单
+export const deletePurchaseOrder = (data) => fetch(`
+/purchaseOrder/deletePurchaseOrderById?orderId=${data}`, '/purchase', data, 'JSON2', 'POST');
 //采购订单 ---  新增采购订单
 export const addPurchaseOrder = (data) => fetch(`
-/purchaseOrder/addPurchaseOrder`, '/purchase', data, 'JSON2', 'POST');
+/purchaseOrder/addPurchaseOrder`, '/purchase', data, 'JSON2', 'POST');
+//采购订单 ---  获取采购订单详情
+export const findPurchaseOrder = (data) => fetch(`
+/purchaseOrder/findPurchaseOrderById`, '/purchase', data, 'JSON2', 'GET');