Просмотр исходного кода

Merge branch 'master' of 121.41.102.225:Nidong/jiufang into hw

mushencc 3 лет назад
Родитель
Сommit
710ea13a88

+ 248 - 155
src/views/BasicSettings/Partfield.vue

@@ -1,129 +1,170 @@
 <template>
   <div>
-    <FullPage title='部件分类字段'
-              :list='list'
-              @init='init'
-              :loading='loading'
-              @searchData='init'
-              @changePage='changePage'
-              @changeSize='changeSize'
-              :tableColums='tableColums'
-              :tableData='tableData'
-              :pageIndex='pageIndex'
-              :total='total'>
-      <div slot='titleButton'>
-        <Upload style="display:inline"
-                name='your_file'
-                :show-upload-list='false'
-                :headers='headers'
-                :on-error='uploadError'
-                :on-success='uploadSuccess'
-                :action="$store.state.ip+'/api/parts_classify'">
-          <Button type="success"
-                  ghost
-                  icon='md-exit'
-                  style="margin-right:10px;">批量导入</Button>
+    <FullPage
+      title="部件分类字段"
+      :list="list"
+      @init="init"
+      :loading="loading"
+      @searchData="init"
+      @changePage="changePage"
+      @changeSize="changeSize"
+      :tableColums="tableColums"
+      :tableData="tableData"
+      :pageIndex="pageIndex"
+      :total="total"
+    >
+      <div slot="titleButton">
+        <Upload
+          style="display:inline"
+          name="your_file"
+          :show-upload-list="false"
+          :headers="headers"
+          :on-error="uploadError"
+          :on-success="uploadSuccess"
+          :action="$store.state.ip + '/api/parts_classify'"
+        >
+          <Button type="success" ghost icon="md-exit" style="margin-right:10px;"
+            >批量导入</Button
+          >
         </Upload>
-        <Button @click="exportData"
-                type="warning"
-                ghost
-                icon='md-return-left'
-                style="margin-right:10px;">批量导出</Button>
-        <Button type="primary"
-                ghost
-                icon='md-add'
-                @click="addItems">新增部件</Button>
-      </div>
-      <div slot='navButton'>
+        <Button
+          @click="exportData"
+          type="warning"
+          ghost
+          icon="md-return-left"
+          style="margin-right:10px;"
+          >批量导出</Button
+        >
+        <Button type="primary" ghost icon="md-add" @click="addItems"
+          >新增部件</Button
+        >
       </div>
+      <div slot="navButton"></div>
 
-      <template slot='set'
-                slot-scope='{row}'>
+      <template slot="set" slot-scope="{ row }">
         <div class="table-set">
-          <svg style="font-size:20px"
-               color='#3764FF'
-               @click="addItems(row)"
-               class="icon icon-nav"
-               aria-hidden="true">
+          <svg
+            style="font-size:20px"
+            color="#3764FF"
+            @click="addItems(row)"
+            class="icon icon-nav"
+            aria-hidden="true"
+          >
             <use xlink:href="#iconbianji"></use>
           </svg>
 
-          <svg @click="delItems(row)"
-               class="icon icon-nav"
-               style="font-size:20px"
-               color='red'
-               aria-hidden="true">
+          <svg
+            @click="delItems(row)"
+            class="icon icon-nav"
+            style="font-size:20px"
+            color="red"
+            aria-hidden="true"
+          >
             <use xlink:href="#iconshanchu"></use>
           </svg>
         </div>
       </template>
 
       <div>
-        <Modal class-name="vertical-center-modal"
-               :title="showType == 1 ? '新增部件': '编辑部件'"
-               v-model="showModal"
-               :width="480"
-               @on-visible-change='vivibleModal'>
-          <Form :label-width="90">
+        <Modal
+          class-name="vertical-center-modal"
+          :title="showType == 1 ? '新增部件' : '编辑部件'"
+          v-model="showModal"
+          :width="480"
+          @on-visible-change="vivibleModal"
+        >
+          <Form :label-width="130">
             <FormItem label="ID:">
-              <Input disabled
-                     placeholder="ID自动生成"
-                     v-model="classInfo.id" />
+              <Input disabled placeholder="ID自动生成" v-model="classInfo.id" />
             </FormItem>
-            <span v-if="repeatFlag"
-                  style="color:red;margin-left:8px;">以下属性重复</span>
+            <span v-if="repeatFlag" style="color:red;margin-left:8px;"
+              >以下属性重复</span
+            >
             <FormItem label="部件名称:">
               <div v-if="showType == 1">
-                <div class="item-attr"
-                     v-for="(item,index) of attribute"
-                     :key="index">
-                  <Input placeholder="请输入部件名称"
-                         v-model="item.title" />
-                  <Icon @click="add(attribute)"
-                        style="'margin:0 10px"
-                        color='#32C800'
-                        size='20'
-                        type="ios-add-circle" />
-                  <Icon v-if="attribute.length!=1"
-                        @click="remove(attribute,index)"
-                        style="'margin:0 10px"
-                        color='#FF5E5C'
-                        size='20'
-                        type="md-remove-circle" />
+                <div
+                  class="item-attr"
+                  v-for="(item, index) of attribute"
+                  :key="index"
+                >
+                  <Input placeholder="请输入部件名称" v-model="item.title" />
+                  <Icon
+                    @click="add(attribute)"
+                    style="'margin:0 10px"
+                    color="#32C800"
+                    size="20"
+                    type="ios-add-circle"
+                  />
+                  <Icon
+                    v-if="attribute.length != 1"
+                    @click="remove(attribute, index)"
+                    style="'margin:0 10px"
+                    color="#FF5E5C"
+                    size="20"
+                    type="md-remove-circle"
+                  />
                 </div>
               </div>
-              <Input v-if="showType == 2"
-                     placeholder="请输入部件名称"
-                     v-model="classInfo.title" />
+              <Input
+                v-if="showType == 2"
+                placeholder="请输入部件名称"
+                v-model="classInfo.title"
+              />
+            </FormItem>
+            <FormItem label="关联工艺属性分类">
+              <vxe-checkbox-group v-model="classInfo.process">
+                <vxe-checkbox
+                  v-for="_process in processList"
+                  :key="_process.id"
+                  :label="_process.id"
+                  :content="_process.title"
+                ></vxe-checkbox>
+              </vxe-checkbox-group>
+            </FormItem>
+            <FormItem label="关联测量字段">
+              <vxe-checkbox-group v-model="classInfo.measure">
+                <vxe-checkbox label="H" content="高"></vxe-checkbox>
+                <vxe-checkbox label="W" content="宽"></vxe-checkbox>
+                <vxe-checkbox label="T" content="厚"></vxe-checkbox>
+              </vxe-checkbox-group>
             </FormItem>
           </Form>
-          <div slot="footer"
-               class="modal-footer">
+          <div slot="footer" class="modal-footer">
             <Button @click="showModal = false">取消</Button>
-            <Button type="primary"
-                    @click="postInfo">确定</Button>
+            <Button type="primary" @click="postInfo">确定</Button>
           </div>
         </Modal>
       </div>
     </FullPage>
-
   </div>
 </template>
 
 <script>
-import { mapActions } from 'vuex'
+import { mapActions } from "vuex";
 export default {
-  data () {
+  data() {
     return {
       list: [
-        { title: '部件名称', name: 'Input', value: '', serverName: 'title', placeholder: '请输入部件名称' },
+        {
+          title: "部件名称",
+          name: "Input",
+          value: "",
+          serverName: "title",
+          placeholder: "请输入部件名称",
+        },
       ],
       tableColums: [
-        { title: '序号', type: 'index', align: 'center', key: 'id', width: '100' },
-        { title: '部件名称', align: 'center', key: 'title' },
-        { title: '操作', align: 'center', slot: 'set', width: '150' },
+        {
+          title: "序号",
+          type: "index",
+          align: "center",
+          key: "id",
+          width: "100",
+        },
+        { title: "部件名称", align: "center", key: "title" },
+        { title: "操作", align: "center", slot: "set", width: "150" },
       ],
-      headers: { 'Authorization': localStorage.getItem('token') },
+      headers: { Authorization: localStorage.getItem("token") },
       tableData: [],
       pageIndex: 1,
       pageSize: 10,
@@ -133,126 +174,178 @@ export default {
       classInfo: {},
       proxyObj: {},
       loading: false,
-      attribute: [{ title: '' }],
+      attribute: [{ title: "" }],
       repeatFlag: false,
-    }
+      measure: ["H", "W", "T"],
+      process: [],
+      processList: [],
+    };
+  },
+  created() {
+    this.axios.get("/api/basics_properties_index").then((res) => {
+      this.processList = res.data.data;
+      this.processList.map((item) => this.process.push(item.id));
+    });
   },
   methods: {
-    ...mapActions(['undata_navData']),
-    init (row) {
-      this.pageIndex = 1
+    ...mapActions(["undata_navData"]),
+    init(row) {
+      this.pageIndex = 1;
       row.page_size = this.pageSize;
       row.page_index = this.pageIndex;
       this.proxyObj = row;
-      this.getData(row)
+      this.getData(row);
     },
-    getData (row) {
+    getData(row) {
       this.loading = true;
-      this.axios('/api/basics_parts_index', { params: row }).then(res => {
-        this.loading = false,
-          this.tableData = res.data.data;
-        this.total = res.data.total
-      })
+      this.axios("/api/basics_parts_index", { params: row }).then((res) => {
+        (this.loading = false), (this.tableData = res.data.data);
+        this.total = res.data.total;
+      });
+    },
+    difference(arr1, arr2) {
+      let diff = [];
+      let tmp = arr2;
+      arr1.forEach(function(val1) {
+        if (arr2.indexOf(val1) < 0) {
+          diff.push(val1);
+        } else {
+          tmp.splice(tmp.indexOf(val1), 1);
+        }
+      });
+
+      console.log(diff.concat(tmp));
+      return diff.concat(tmp);
     },
-    changePage (e) {
+    changePage(e) {
       this.pageIndex = e;
       this.proxyObj.page_index = this.pageIndex;
-      this.getData(this.proxyObj)
+      this.getData(this.proxyObj);
     },
-    changeSize (e) {
+    changeSize(e) {
       this.pageSize = e;
       this.proxyObj.page_size = this.pageSize;
-      this.getData(this.proxyObj)
+      this.getData(this.proxyObj);
     },
-    addItems (obj) {
+    addItems(obj) {
       this.showModal = true;
       if (obj.id) {
-        this.showType = 2
+        this.showType = 2;
         this.classInfo.id = obj.id;
         this.classInfo.title = obj.title;
+        this.classInfo.process = this.difference(
+          this.process,
+          this.classInfo.process || []
+        );
+        this.classInfo.measure = this.difference(
+          this.measure,
+          this.classInfo.measure || []
+        );
       } else {
         //新增
-        this.showType = 1
+        this.showType = 1;
+        this.classInfo.process = JSON.parse(JSON.stringify(this.process));
+        this.classInfo.measure = JSON.parse(JSON.stringify(this.measure));
       }
     },
-    postInfo () {
-      let postData = {}, post_url = '';
+    postInfo() {
+      let postData = {},
+        post_url = "";
       if (this.showType == 1) {
-        post_url = '/api/basics_parts_add';
-        let result = []
-        this.attribute.map(v => result.push(v.title))
+        post_url = "/api/basics_parts_add";
+        let result = [];
+        this.attribute.map((v) => result.push(v.title));
         postData = {
           id: this.classInfo.id,
-          title: result.join(',')
-        }
+          title: result.join(","),
+          process: this.difference(this.process, this.classInfo.process),
+          measure: this.difference(this.measure, this.classInfo.measure),
+        };
       } else {
-        post_url = '/api/basics_parts_edit'
+        post_url = "/api/basics_parts_edit";
         postData = this.classInfo;
+        postData.process = this.difference(
+          this.process,
+          this.classInfo.process
+        );
+        postData.measure = this.difference(
+          this.measure,
+          this.classInfo.measure
+        );
       }
-      this.axios.post(post_url, postData).then(res => {
+      this.axios.post(post_url, postData).then((res) => {
         if (res.code == 200) {
-          this.$Message.success(res.msg)
-          this.getData(this.proxyObj)
+          this.$Message.success(res.msg);
+          this.getData(this.proxyObj);
           this.showModal = false;
-          this.undata_navData()
+          this.undata_navData();
         } else {
           if (Array.isArray(res.data)) {
             this.repeatFlag = true;
             let result = [];
-            res.data.map(v => {
+            res.data.map((v) => {
               let obj = {};
-              v ? obj.title = v : ''
-              obj.title ? result.push(obj) : ''
-            })
+              v ? (obj.title = v) : "";
+              obj.title ? result.push(obj) : "";
+            });
             this.attribute = result;
-            this.getData(this.proxyObj)
+            this.getData(this.proxyObj);
           }
         }
-      })
+      });
     },
-    vivibleModal (e) {
-      if (!e) { this.classInfo = {}; this.attribute = [{ title: '' },]; this.repeatFlag = false }
-
+    vivibleModal(e) {
+      if (!e) {
+        this.classInfo = {};
+        this.attribute = [{ title: "" }];
+        this.repeatFlag = false;
+      }
     },
-    add (array) {
-      array.push({ title: '' })
+    add(array) {
+      array.push({ title: "" });
+    },
+    remove(array, n) {
+      array.splice(n, 1);
     },
-    remove (array, n) { array.splice(n, 1) },
 
-    delItems (row) {
+    delItems(row) {
       this.confirmDelete({
-        content: '确认删除么?',
+        content: "确认删除么?",
         then: () => {
-          this.axios.post('/api/basics_parts_del', { id: row.id, state: 0 }).then(res => {
-            if (res.code == 200) {
-              this.$Message.success(res.msg)
-              this.getData(this.proxyObj)
-              // this.undata_navData()
-            }
-          })
-        }
-      })
+          this.axios
+            .post("/api/basics_parts_del", { id: row.id, state: 0 })
+            .then((res) => {
+              if (res.code == 200) {
+                this.$Message.success(res.msg);
+                this.getData(this.proxyObj);
+                // this.undata_navData()
+              }
+            });
+        },
+      });
     },
-    uploadSuccess (res) {
+    uploadSuccess(res) {
       if (res.code == 200) {
-        this.$Message.success(res.msg || '上传成功')
+        this.$Message.success(res.msg || "上传成功");
       } else {
-        this.$Message.warning(res.msg || '上传失败')
+        this.$Message.warning(res.msg || "上传失败");
       }
-      this.getData(this.proxyObj)
+      this.getData(this.proxyObj);
     },
-    uploadError (err) {
-      this.$Message.error(err.msg || '上传失败')
+    uploadError(err) {
+      this.$Message.error(err.msg || "上传失败");
     },
-    async exportData () {
-      const res = await this.axios('/api/parts_classify_export', { params: { ...this.proxyObj } })
+    async exportData() {
+      const res = await this.axios("/api/parts_classify_export", {
+        params: { ...this.proxyObj },
+      });
       if (res.code == 200) {
-        let url = `${this.$store.state.ip}/api/storage/${res.data.file}`
-        location.href = url
+        let url = `${this.$store.state.ip}/api/storage/${res.data.file}`;
+        location.href = url;
       }
     },
-  }
-}
+  },
+};
 </script>
 
 <style lang="scss" scoped>
@@ -266,4 +359,4 @@ export default {
   align-items: center;
   margin-bottom: 10px;
 }
-</style>
+</style>

+ 6 - 2
src/views/BidSystem/ContractList/info.vue

@@ -466,7 +466,7 @@
       <div>
         <Table :columns="supTableColumns" :data="supTableData" border>
           <template slot="combine" slot-scope="{ index }">
-            <Select
+            <!-- <Select
               v-model="supTableData[index].id"
               @on-change="handlechange"
               size="small"
@@ -477,7 +477,10 @@
                 :key="item.id"
                 :label="item.title"
               ></Option>
-            </Select>
+            </Select> -->
+            <span v-for="_item in combineList" :key="_item.id" v-show="_item.id==supTableData[index].id">
+              {{_item.title}}
+            </span>
           </template>
           <template slot="supSet" slot-scope="{ row, index }">
             <a
@@ -898,6 +901,7 @@ export default {
                   row.url.forEach((el) => {
                     list.push({ img_url: el });
                   });
+                  console.log('row.url :>> ', row.url);
                   this.$previewImg({
                     list,
                     baseUrl: this.$store.state.ip,

+ 329 - 76
src/views/BidSystem/ProductDeOrder/deorderdetail.vue

@@ -318,13 +318,14 @@
               slot="content"
               v-show="!partsItem.isAddProcessRoute || type == 2"
             >
-              若要编辑工艺路线,请先选择工艺组合
+              若要编辑工艺路线,请先选择或更改工艺组合
             </div>
             <Button
               :disabled="!partsItem.isAddProcessRoute || type == 2"
               @click="editRouter(partsItem, partsIndex)"
               >选择工艺路线</Button
             >
+            {{ process_name }}
           </Tooltip>
         </div>
 
@@ -334,7 +335,7 @@
             border
             :data="partsItem.partsProcessLineTableData"
           >
-            <template slot="processLineSet" slot-scope="{ row, index }">
+            <!-- <template slot="processLineSet" slot-scope="{ row, index }">
               <a
                 :style="
                   type == 2
@@ -345,7 +346,7 @@
                 @click="handleProcessLineDele(row, index, partsIndex)"
                 >删除</a
               >
-            </template>
+            </template> -->
           </Table>
         </div>
         <div class="parts_content_part">
@@ -722,14 +723,36 @@
       </div>
     </Modal>
     <Modal
-      class-name="vertical-center-modal"
+      class-name="vertical-center-modal vertical-center-modal1"
       v-model="showProcessLineDetailModal"
+      width="80%"
+      :mask-closable="false"
       title="工艺路线"
-      @on-ok="saveTableData()"
     >
-      <span>已选:</span>
-      <Form>
-        <FormItem>
+      <div class="modal_process_route modal_process_route1">
+        <div>
+          <span style="width: 100px">id: </span
+          ><Input
+            v-model="info.id"
+            disabled
+            placeholder="自动生成"
+            style="width: 150px"
+            size="small"
+          />
+        </div>
+        <div>
+          <span style="width: 100px">工艺路线名称: </span
+          ><Input
+            v-model="info.title"
+            placeholder="请输入工艺路线名称"
+            size="small"
+            style="width: 250px"
+          />
+        </div>
+      </div>
+      <div class="modal_content">
+        <div class="modal_content_left">
+          <span>已选:</span>
           <SlickList
             :distance="10"
             :lockToContainerEdges="true"
@@ -746,39 +769,142 @@
               class="SortableItem"
               :index="key"
             >
-              <div class="tag-modal">
-                <div class="before">{{ key + 1 }}</div>
-                <Tag
-                  @on-close="closeTag(key, selectTags, item)"
-                  color="primary"
-                  type="border"
-                  closable
-                  >{{ item.title }}</Tag
-                >
-              </div>
+              <Tooltip>
+                <div slot="content">
+                  <p>工时:{{ item.time }}</p>
+                  <p>工价:{{ item.wages }}</p>
+                  <p>产能:{{ item.capacity }}</p>
+                </div>
+                <div class="tag-modal">
+                  <div class="before">{{ key + 1 }}</div>
+                  <Tag
+                    @on-close="closeTag(key, selectTags, item)"
+                    color="primary"
+                    type="border"
+                    closable
+                    >{{ item.title }}</Tag
+                  >
+                </div>
+              </Tooltip>
             </SlickItem>
           </SlickList>
-        </FormItem>
-        <FormItem
-          v-for="(item, index) of info.bps"
-          :key="index"
-          :label="item.title"
-        >
-          <Tooltip v-for="(_item, _index) of item.cld" :key="_index">
-            <div slot="content">
-              <p>工时:{{ _item.time }}</p>
-              <p>工价:{{ _item.wages }}</p>
-              <p>产能:{{ _item.capacity }}</p>
+        </div>
+        <div class="modal_content_right">
+          <div v-for="(item, index) of info.bps" :key="index">
+            <div v-if="item.cld && item.cld.length > 0">
+              <span style="font-weight:bold">{{ item.title }}</span>
+              <div
+                style="display: flex;justify-content: flex-start;flex-wrap: wrap;"
+              >
+                <div
+                  v-for="(_item, _index) in item.cld"
+                  :key="_index"
+                  :style="
+                    _item.p_id
+                      ? [{ 'margin-left': '10px' }]
+                      : [{ 'margin-left': '10px' }, { width: '100%' }]
+                  "
+                >
+                  <div v-if="_item.cld && _item.cld.length > 0">
+                    <div>
+                      <div style="font-weight:bold;width:100%">
+                        {{ _item.title }}:
+                      </div>
+                      <div
+                        style="display: flex;justify-content: flex-start;flex-wrap: wrap;"
+                      >
+                        <div
+                          v-for="(__item, __index) in _item.cld"
+                          :key="__index"
+                          :style="
+                            __item.p_id
+                              ? [{ 'margin-left': '10px' }]
+                              : [{ 'margin-left': '10px' }, { width: '100%' }]
+                          "
+                        >
+                          <div v-if="__item.cld && __item.cld.length > 0">
+                            <span style="font-weight:bold"
+                              >{{ __item.title }}:</span
+                            >
+                            <div
+                              style="display: flex;justify-content: flex-start;flex-wrap: wrap;"
+                            >
+                              <Tooltip
+                                v-for="(___item, ___index) of __item.cld"
+                                :key="___index"
+                              >
+                                <div slot="content">
+                                  <p>工时:{{ ___item.time }}</p>
+                                  <p>工价:{{ ___item.wages }}</p>
+                                  <p>产能:{{ ___item.capacity }}</p>
+                                </div>
+                                <Checkbox
+                                  @on-change="
+                                    changeCheck($event, ___item, selectTags)
+                                  "
+                                  v-model="___item.show"
+                                  style="padding: 0px 5px"
+                                  >{{ ___item.title }}</Checkbox
+                                >
+                              </Tooltip>
+                            </div>
+                          </div>
+                          <div v-else>
+                            <Tooltip v-if="__item.p_id">
+                              <div slot="content">
+                                <p>工时:{{ __item.time }}</p>
+                                <p>工价:{{ __item.wages }}</p>
+                                <p>产能:{{ __item.capacity }}</p>
+                              </div>
+                              <Checkbox
+                                @on-change="
+                                  changeCheck($event, __item, selectTags)
+                                "
+                                v-model="__item.show"
+                                style="padding: 0px 5px"
+                                >{{ __item.title }}</Checkbox
+                              >
+                            </Tooltip>
+                          </div>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                  <div v-else>
+                    <Tooltip v-if="_item.p_id">
+                      <div slot="content">
+                        <p>工时:{{ _item.time }}</p>
+                        <p>工价:{{ _item.wages }}</p>
+                        <p>产能:{{ _item.capacity }}</p>
+                      </div>
+                      <Checkbox
+                        @on-change="changeCheck($event, _item, selectTags)"
+                        v-model="_item.show"
+                        style="padding: 0px 5px"
+                        >{{ _item.title }}</Checkbox
+                      >
+                    </Tooltip>
+                    <!-- <span v-else>{{ _item.title }}</span> -->
+                  </div>
+                </div>
+              </div>
             </div>
-            <Checkbox
-              @on-change="changeCheck($event, _item, selectTags)"
-              v-model="_item.show"
-              style="padding: 0px 5px"
-              >{{ _item.title }}</Checkbox
-            >
-          </Tooltip>
-        </FormItem>
-      </Form>
+            <!-- <div v-else>{{ item.title }}</div> -->
+          </div>
+        </div>
+      </div>
+      <div slot="footer">
+        <Button
+          @click="
+            showProcessLineDetailModal = false;
+            showProcessLineModal = true;
+          "
+          type="primary"
+          ghost
+          >取消</Button
+        >
+        <Button @click="saveTableData()" type="primary">确定</Button>
+      </div>
     </Modal>
     <!-- 输入框弹窗 -->
     <Modal
@@ -902,13 +1028,13 @@ export default {
       processRouteId: "",
       processRouteName: "",
       partsProcessLineColumns: [
-        { type: "index", minWidth: 30, align: "center" },
+        { title: "序号", type: "index", minWidth: 30, align: "center" },
         // { title: "工序分类", key: "type", align: "center" },
         { title: "工序名称", key: "title", align: "center" },
         { title: "工时", key: "time", align: "center" },
         { title: "工价", key: "wages", align: "center" },
         { title: "产能", key: "capacity", align: "center" },
-        { title: "操作", key: "set", align: "center", slot: "processLineSet" },
+        // { title: "操作", key: "set", align: "center", slot: "processLineSet" },
       ], //工艺路线表头
       partsPartColumns: [
         {
@@ -1159,6 +1285,8 @@ export default {
       metalsList: [], // 五金列表
       productTypes: [],
       nowSelectObj: {},
+      temp_info_bps: [],
+      process_name: "",
     };
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
@@ -1169,6 +1297,25 @@ export default {
     });
     this.axios("/api/bp_list").then((res) => {
       this.info.bps = res.data;
+      for (const key in this.info.bps) {
+        const element = this.info.bps[key];
+        element.cld &&
+          element.cld.length > 0 &&
+          element.cld.forEach((z) => {
+            z.show = false;
+            z.cld &&
+              z.cld.length > 0 &&
+              z.cld.forEach((elem) => {
+                elem.show = false;
+                elem.cld &&
+                  elem.cld.length > 0 &&
+                  elem.cld.forEach((el) => {
+                    el.show = false;
+                  });
+              });
+          });
+      }
+      this.temp_info_bps = JSON.parse(JSON.stringify(this.info.bps));
     });
     this.axios("/api/bpp_list_new").then((res) => {
       res.data.map((v) => {
@@ -1375,6 +1522,7 @@ export default {
       ].partsProcessLineTableData = this.formData.parts[
         this.tempSelectedPartIndex
       ].partsProcessLineTableData.concat(this.selectTags);
+      this.process_name = this.info.process_route_title;
     },
     // 删除工艺路线列表项
     handleProcessLineDele(row, i, index) {
@@ -1570,10 +1718,24 @@ export default {
     //新增工艺组合名称
     handleProcessRouteCreate(item, val) {
       //////
-      item.isAddProcessRoute = false;
+      item.isAddProcessRoute = true;
       item.ProcessAttrList = JSON.parse(
         JSON.stringify(this.tempProcessAttrList)
       );
+      // 新增工艺组合,展示所有工艺
+      item.ProcessAttrList.map((item) => {
+        item.cld &&
+          item.cld.length > 0 &&
+          item.cld.map((level1) => {
+            level1.list &&
+              level1.list.length > 0 &&
+              level1.list.map((level2) => {
+                level2.display = true;
+              });
+          });
+      });
+      // 新增工艺组合,清空已选工艺路线
+      item.partsProcessLineTableData = [];
       if (!item.partsProcessRouteList) {
         item.partsProcessRouteList = [];
       }
@@ -1581,6 +1743,7 @@ export default {
         id: val,
         title: val,
       });
+      console.log("this.tempProcessAttrList  :>> ", this.tempProcessAttrList);
       this.$forceUpdate();
     },
     // 部件名称
@@ -1645,28 +1808,37 @@ export default {
               id: val.value,
             },
           }).then((res) => {
-            this.$nextTick(() => {
-              this.info = res.data;
-              item.process_price = res.data.price;
-              this.selectTags = res.data.produce_list;
-              const selectTagsId = this.selectTags.map((item) => item.id);
-              item.ProcessAttrList = res.data.list;
-              item.properties = res.data.pp_id.split(","); ///存在问题
-              item.ProcessAttrList.forEach((v) => {
+            this.info = res.data;
+            this.info.bps = this.temp_info_bps;
+            item.process_price = res.data.price;
+            this.selectTags = res.data.produce_list;
+            const selectTagsId = this.selectTags.map((item) => item.id);
+            item.ProcessAttrList = res.data.list;
+            item.properties = res.data.pp_id.split(","); ///存在问题
+            this.info.bps.forEach((v) => {
+              v.cld &&
+                v.cld.length > 0 &&
                 v.cld.forEach((z) => {
-                  // z.show = selectTagsId.includes(z.id)
-                  ///////
-                  z.display = !z.show;
-                  // z.display = !selectTagsId.includes(z.id)
-                  z.list.forEach((element) => {
-                    element.display = JSON.parse(JSON.stringify(element.show));
-                    element.show = false;
-                  });
-                  console.log("z :>> ", z);
+                  z.show = selectTagsId.includes(z.id);
+                  z.cld &&
+                    z.cld.length > 0 &&
+                    z.cld.forEach((elem) => {
+                      elem.show = selectTagsId.includes(elem.id);
+                      elem.cld &&
+                        elem.cld.length > 0 &&
+                        elem.cld.forEach((ele) => {
+                          ele.show = selectTagsId.includes(ele.id);
+                          ele.cld &&
+                            ele.cld.length > 0 &&
+                            ele.cld.forEach((el) => {
+                              el.show = selectTagsId.includes(el.id);
+                            });
+                        });
+                    });
                 });
-              });
-              item.partsProcessLineTableData = this.selectTags;
             });
+            this.process_name = res.data.technological_route_title;
+            item.partsProcessLineTableData = this.selectTags;
           });
         } else {
           item.isAddProcessRoute = true;
@@ -1686,11 +1858,9 @@ export default {
         params: {
           title,
         },
-      })
-        .then((res) => {
-          this.processLineTableData = res.data.data;
-        })
-        .catch((err) => {});
+      }).then((res) => {
+        this.processLineTableData = res.data.data;
+      });
     },
     changeCheck(e, item, selectArray) {
       //复选框选中与非选中同时同步tag标签跟随操作
@@ -1705,12 +1875,28 @@ export default {
     },
     closeTag(key, arr, row) {
       //取消tag标签展示操作并同步下方的复选框ui同步
-      arr.splice(key, 1);
-      this.info.bps.map((v) => {
-        v.cld.map((p) => {
+      for (const key in this.info.bps) {
+        const element = this.info.bps[key];
+        element.cld.map((p) => {
           p.id == row.id ? (p.show = false) : "";
+          p.cld &&
+            p.cld.length > 0 &&
+            p.cld.map((q) => {
+              q.id == row.id ? (q.show = false) : "";
+              q.cld &&
+                q.cld.length > 0 &&
+                q.cld.map((r) => {
+                  r.id == row.id ? (r.show = false) : "";
+                  r.cld &&
+                    r.cld.length > 0 &&
+                    r.cld.map((s) => {
+                      s.id == row.id ? (s.show = false) : "";
+                    });
+                });
+            });
         });
-      });
+      }
+      arr.splice(key, 1);
     },
     setBoxChange(parent, child) {
       return;
@@ -1756,6 +1942,7 @@ export default {
     //   this.$forceUpdate();
     // },
     handleProcessLineSet(row, index) {
+      this.process_name = row.title;
       this.info.id = row.id;
       // this.info.title = row.title;
       this.info.procedure_id = row.procedure_id;
@@ -1764,12 +1951,48 @@ export default {
         ? this.info.procedure_id.split(",")
         : [];
       for (const key in this.info.bps) {
-        const element = this.info.bps[key];
-        element.cld.forEach((z) => {
-          z.show = arr.includes(z.id + "");
-          if (arr.includes(z.id + "")) {
-            this.selectTags.push(z);
-          }
+        const el = this.info.bps[key];
+        el.cld.forEach((z) => {
+          z.show = false;
+          z.cld &&
+            z.cld.length > 0 &&
+            z.cld.forEach((elem) => {
+              elem.show = false;
+              elem.cld &&
+                elem.cld.length > 0 &&
+                elem.cld.forEach((ele) => {
+                  ele.show = false;
+                });
+            });
+        });
+      }
+      for (let index = 0; index < arr.length; index++) {
+        const element = arr[index];
+        this.info.bps.map((lv1) => {
+          lv1.cld &&
+            lv1.cld.length > 0 &&
+            lv1.cld.map((lv2) => {
+              if (lv2.id == element) {
+                lv2.show = true;
+                lv2.p_id && this.selectTags.push(lv2);
+              }
+              lv2.cld &&
+                lv2.cld.length > 0 &&
+                lv2.cld.map((lv3) => {
+                  if (lv3.id == element) {
+                    lv3.show = true;
+                    lv3.p_id && this.selectTags.push(lv3);
+                  }
+                  lv3.cld &&
+                    lv3.cld.length > 0 &&
+                    lv3.cld.map((lv4) => {
+                      if (lv4.id == element) {
+                        lv4.show = true;
+                        lv4.p_id && this.selectTags.push(lv4);
+                      }
+                    });
+                });
+            });
         });
       }
       this.showProcessLineDetailModal = true;
@@ -2312,6 +2535,10 @@ export default {
     }
   }
 }
+.modal_process_route1 {
+  display: flex;
+  justify-content: space-around;
+}
 .modal_process_route {
   .modal_process_route_top {
     display: flex;
@@ -2354,7 +2581,33 @@ export default {
   }
 }
 /deep/.ivu-modal-body {
-  height: 700px;
+  height: 750px;
   overflow: auto;
 }
+.modal_content {
+  display: flex;
+  justify-content: space-around;
+  height: 100%;
+  .modal_content_left {
+    max-width: 40%;
+    min-width: 30%;
+    border-right: 1px solid #d8d8d8;
+  }
+  .modal_content_right {
+    width: 60%;
+    max-height: 700px;
+    padding-left: 10px;
+    overflow: hidden;
+    overflow-y: auto;
+    font-size: 18px;
+  }
+}
+.vertical-center-modal1 {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  .ivu-modal {
+    top: 0;
+  }
+}
 </style>

+ 320 - 182
src/views/OrderMannage/BusinessOrderlist/edit.vue

@@ -944,13 +944,29 @@
                     </Select>
                   </FormItem>
                   <FormItem label="备注:">
-                    <Input
+                    <Select
+                      size="small"
+                      clearable
+                      filterable
+                      allow-create
+                      @on-create="handleRemarkCreate"
+                      style="width: 120px"
+                      v-model="item.remark"
+                    >
+                      <Option
+                        v-for="_remark of support_remark"
+                        :key="_remark"
+                        :value="_remark"
+                        :label="_remark"
+                      ></Option>
+                    </Select>
+                    <!-- <Input
                       size="small"
                       type="textarea"
                       v-model="item.remark"
                       style="width: 120px"
                       placeholder="请输入备注"
-                    />
+                    /> -->
                   </FormItem>
                   <FormItem label="产品图:">
                     <!-- v-show="modalData.url && modalData.url.length > 0" -->
@@ -991,7 +1007,7 @@
                       @click.native.prevent="handleRadioClick(element)"
                       v-model="element.isChoosed"
                     ></Radio>
-                    <span v-show="element.isBP">{{ element.part_title }} </span>
+                    <!-- <span v-show="element.isBP">{{ element.part_title }} </span> -->
                   </FormItem>
                   <FormItem label="部件:" v-show="!element.is_metal">
                     <Select
@@ -1014,7 +1030,13 @@
                       ></Option>
                     </Select>
                   </FormItem>
-                  <FormItem label="高:" v-show="!element.is_metal">
+                  <FormItem
+                    label="高:"
+                    v-show="
+                      !element.is_metal &&
+                        !element.hide_measure.filter((v) => v == 'H').length > 0
+                    "
+                  >
                     <Input
                       size="small"
                       clearable
@@ -1023,7 +1045,13 @@
                       placeholder="请输入厚"
                     />
                   </FormItem>
-                  <FormItem label="宽:" v-show="!element.is_metal">
+                  <FormItem
+                    label="宽:"
+                    v-show="
+                      !element.is_metal &&
+                        !element.hide_measure.filter((v) => v == 'W').length > 0
+                    "
+                  >
                     <Input
                       size="small"
                       clearable
@@ -1032,7 +1060,13 @@
                       placeholder="请输入宽"
                     />
                   </FormItem>
-                  <FormItem label="厚:" v-show="!element.is_metal">
+                  <FormItem
+                    label="厚:"
+                    v-show="
+                      !element.is_metal &&
+                        !element.hide_measure.filter((v) => v == 'T').length > 0
+                    "
+                  >
                     <Input
                       size="small"
                       clearable
@@ -1045,7 +1079,12 @@
                     v-for="(process_detail, idx) in element.process"
                     :key="process_detail.name + '222' + element.part_id"
                     :label="process_detail.name + ':'"
-                    v-show="!element.is_metal"
+                    v-show="
+                      !element.is_metal &&
+                        !element.hide_process.filter(
+                          (v) => v == process_detail.process_id
+                        ).length > 0
+                    "
                   >
                     <Tooltip style="width: 120px" transfer>
                       <span slot="content">
@@ -1060,6 +1099,7 @@
                         style="width: 120px"
                         filterable
                         clearable
+                        transfer
                         label-in-value
                         @on-change="
                           (e) => handlePartProcessChange(e, idx, element)
@@ -1099,14 +1139,14 @@
                       style="margin-right: 5px"
                       size="small"
                       >{{
-                        element.isShowPartDetail ? "收起" : "修改原材料"
+                        !element.isShowPartDetail ? "收起" : "修改原材料"
                       }}</Button
                     >
                   </FormItem>
                   <div
                     :class="[
                       'part_detail_form',
-                      element.isShowPartDetail ? '' : 'hide_part_detail',
+                      !element.isShowPartDetail ? '' : 'hide_part_detail',
                     ]"
                     :data-index="idx"
                   >
@@ -1175,6 +1215,7 @@
                                 style="width: 80px"
                                 filterable
                                 clearable
+                                transfer
                                 v-model="ele.material_detail_id"
                                 @on-change="(e) => handleMaterialChange(e, ele)"
                                 placeholder="请选择高"
@@ -1193,6 +1234,7 @@
                                 style="width: 80px"
                                 filterable
                                 clearable
+                                transfer
                                 v-model="ele.material_detail_id"
                                 placeholder="请选择宽"
                                 size="small"
@@ -1210,6 +1252,7 @@
                                 style="width: 80px"
                                 filterable
                                 clearable
+                                transfer
                                 v-model="ele.material_detail_id"
                                 placeholder="请选择厚"
                                 size="small"
@@ -1705,14 +1748,30 @@
                     </Select>
                   </FormItem>
                   <FormItem label="备注:">
-                    <Input
+                    <Select
+                      size="small"
+                      clearable
+                      filterable
+                      style="width: 120px"
+                      allow-create
+                      @on-create="handleRemarkCreate"
+                      v-model="modalData.remark"
+                    >
+                      <Option
+                        v-for="_remark of support_remark"
+                        :key="_remark"
+                        :value="_remark"
+                        :label="_remark"
+                      ></Option>
+                    </Select>
+                    <!-- <Input
                       size="small"
                       type="textarea"
                       :disabled="isCheck"
                       v-model="modalData.remark"
                       style="width: 120px"
                       placeholder="请输入备注"
-                    />
+                    /> -->
                   </FormItem>
                   <FormItem label="产品图:">
                     <!-- v-show="modalData.url && modalData.url.length > 0" -->
@@ -1754,7 +1813,7 @@
                       @click.native.prevent="handleRadioClick(element)"
                       v-model="element.isChoosed"
                     ></Radio>
-                    <span v-show="element.isBP">{{ element.part_title }} </span>
+                    <!-- <span v-show="element.isBP">{{ element.part_title }} </span> -->
                   </FormItem>
                   <FormItem
                     label="部件:"
@@ -1785,7 +1844,13 @@
                       ></Option>
                     </Select>
                   </FormItem>
-                  <FormItem label="高:" v-show="!element.is_metal">
+                  <FormItem
+                    label="高:"
+                    v-show="
+                      !element.is_metal &&
+                        !element.hide_measure.filter((v) => v == 'H').length > 0
+                    "
+                  >
                     <Input
                       size="small"
                       clearable
@@ -1795,7 +1860,13 @@
                       placeholder="请输入厚"
                     />
                   </FormItem>
-                  <FormItem label="宽:" v-show="!element.is_metal">
+                  <FormItem
+                    label="宽:"
+                    v-show="
+                      !element.is_metal &&
+                        !element.hide_measure.filter((v) => v == 'W').length > 0
+                    "
+                  >
                     <Input
                       size="small"
                       clearable
@@ -1805,7 +1876,13 @@
                       placeholder="请输入宽"
                     />
                   </FormItem>
-                  <FormItem label="厚:" v-show="!element.is_metal">
+                  <FormItem
+                    label="厚:"
+                    v-show="
+                      !element.is_metal &&
+                        !element.hide_measure.filter((v) => v == 'T').length > 0
+                    "
+                  >
                     <Input
                       size="small"
                       clearable
@@ -1819,7 +1896,12 @@
                     v-for="(process_detail, idx) in element.process"
                     :key="idx + '555' + element.part_id"
                     :label="process_detail.name + ':'"
-                    v-show="!element.is_metal"
+                    v-show="
+                      !element.is_metal &&
+                        !element.hide_process.filter(
+                          (v) => v == process_detail.process_id
+                        ).length > 0
+                    "
                   >
                     <Tooltip style="width: 120px" transfer>
                       <span slot="content">
@@ -1834,6 +1916,7 @@
                         style="width: 120px"
                         filterable
                         clearable
+                        transfer
                         label-in-value
                         :disabled="isCheck"
                         @on-change="
@@ -1876,7 +1959,7 @@
                       style="margin-right: 5px"
                       size="small"
                       >{{
-                        element.isShowPartDetail
+                        !element.isShowPartDetail
                           ? "收起"
                           : isCheck
                           ? "查看"
@@ -1887,7 +1970,7 @@
                   <div
                     :class="[
                       'part_detail_form',
-                      element.isShowPartDetail ? '' : 'hide_part_detail',
+                      !element.isShowPartDetail ? '' : 'hide_part_detail',
                     ]"
                     :data-index="idx"
                   >
@@ -1976,6 +2059,7 @@
                                 style="width: 80px"
                                 filterable
                                 clearable
+                                transfer
                                 :disabled="isCheck"
                                 v-model="ele.material_detail_id"
                                 placeholder="请选择宽"
@@ -1994,6 +2078,7 @@
                                 style="width: 80px"
                                 filterable
                                 clearable
+                                transfer
                                 :disabled="isCheck"
                                 v-model="ele.material_detail_id"
                                 placeholder="请选择厚"
@@ -2589,6 +2674,7 @@ export default {
       cus_list: [],
       add_pre_bp_id: "",
       edit_pre_bp_id: "",
+      support_remark: [],
     };
   },
   computed: {
@@ -2973,175 +3059,198 @@ export default {
       });
     },
     handleAddProductSubmit() {
-      this.modalArray.forEach((element) => {
-        // 工艺属性
-        if (!element.procedure_properties_str) {
-          element.procedure_properties_str = [];
-        }
-        element.process.forEach((elem, index) => {
-          const _temp = elem.processList.filter(
-            (item) => item.id == elem.value
-          );
-          element.procedure_properties_str[index] =
-            _temp.length > 0 ? _temp[0].title : "";
-        });
-        element.process_str = element.procedure_properties_str.join("/");
-        // 尺寸
-        if (!element.measurement) {
-          element.measurement = "";
-        }
-        let tempStr = "";
-        element.measure.forEach((elem) => {
-          tempStr += elem.measureCalc + elem.value + "*";
-        });
-        element.measurement = tempStr.substring(0, tempStr.length - 1);
-        // 五金、  附加项目
-        element.ext = [...element.metalArray, ...element.extArray];
-        //其他项
-        element.other = element.customize;
-        // 部件字段
-        element.part.forEach((elem) => {
-          if (!elem.is_metal) {
-            elem.title ? "" : (elem.title = elem.part_title);
-            // if (elem.procedure_properties_str && elem.procedure_properties_str != 0) {
-            //   elem.process_str = elem.procedure_properties_str.join('/')
-            // } else {
-            elem.procedure_properties_str = [];
-            elem.process.forEach((item, index) => {
-              const _temp = item.cld.filter(
-                (_cld) => _cld.id == item.procedure_property
+      this.$Modal.confirm({
+        content: "请确认线条名称是否正确!",
+        onOk: () => {
+          this.modalArray.forEach((element) => {
+            // 工艺属性
+            if (!element.procedure_properties_str) {
+              element.procedure_properties_str = [];
+            }
+            element.process.forEach((elem, index) => {
+              const _temp = elem.processList.filter(
+                (item) => item.id == elem.value
               );
-              elem.procedure_properties_str[index] =
+              element.procedure_properties_str[index] =
                 _temp.length > 0 ? _temp[0].title : "";
             });
-            elem.process_str = elem.procedure_properties_str.join("/");
-            // }
-          }
-        });
-        element.ext &&
-          element.ext.length > 0 &&
-          (element.ext.map((elem) => {
-            if (elem.type == 1) {
-              elem.total_num = elem.num;
-              elem.unit_price = elem.price;
-              elem.ext_price = elem.num * elem.price;
-              elem.is_metal = true;
-              element.part.push(elem);
-            } else {
-              if (!element.extra) {
-                element.extra = "";
-              }
-              element.extra += `${elem.title}/`;
+            element.process_str = element.procedure_properties_str.join("/");
+            // 尺寸
+            if (!element.measurement) {
+              element.measurement = "";
             }
-          }),
-          (element.extra = element.extra.substring(
-            0,
-            element.extra.length - 1
-          )));
-        // element.part.push({
-        //   title: "五金",
-        //   total_num: "",
-        //   unit_price: "",
-        // });
-      });
-      this.modalArray.forEach((element) => {
-        element.part.forEach((elem) => {
-          if (!elem.is_metal) {
-            elem.measurement = `${elem.long}*${elem.wide}*${elem.high}`;
-            elem.title = elem.part_title;
-          }
-        });
+            let tempStr = "";
+            element.measure.forEach((elem) => {
+              tempStr += elem.measureCalc + elem.value + "*";
+            });
+            element.measurement = tempStr.substring(0, tempStr.length - 1);
+            // 五金、  附加项目
+            element.ext = [...element.metalArray, ...element.extArray];
+            //其他项
+            element.other = element.customize;
+            // 部件字段
+            element.part.forEach((elem) => {
+              if (!elem.is_metal) {
+                elem.title ? "" : (elem.title = elem.part_title);
+                // if (elem.procedure_properties_str && elem.procedure_properties_str != 0) {
+                //   elem.process_str = elem.procedure_properties_str.join('/')
+                // } else {
+                elem.procedure_properties_str = [];
+                elem.process.forEach((item, index) => {
+                  const _temp = item.cld.filter(
+                    (_cld) => _cld.id == item.procedure_property
+                  );
+                  elem.procedure_properties_str[index] =
+                    _temp.length > 0 ? _temp[0].title : "";
+                });
+                elem.process_str = elem.procedure_properties_str.join("/");
+                // }
+              }
+            });
+            element.ext &&
+              element.ext.length > 0 &&
+              (element.ext.map((elem) => {
+                if (elem.type == 1) {
+                  elem.total_num = elem.num;
+                  elem.unit_price = elem.price;
+                  elem.ext_price = elem.num * elem.price;
+                  elem.is_metal = true;
+                  element.part.push(elem);
+                } else {
+                  if (!element.extra) {
+                    element.extra = "";
+                  }
+                  element.extra += `${elem.title}/`;
+                }
+              }),
+              (element.extra = element.extra.substring(
+                0,
+                element.extra.length - 1
+              )));
+            // element.part.push({
+            //   title: "五金",
+            //   total_num: "",
+            //   unit_price: "",
+            // });
+          });
+          this.modalArray.forEach((element) => {
+            element.part.forEach((elem) => {
+              if (!elem.is_metal) {
+                elem.measurement = `${elem.long}*${elem.wide}*${elem.high}`;
+                elem.title = elem.part_title;
+                elem.procedure_properties = [];
+                elem.process.map((item) => {
+                  elem.procedure_properties.push(item.procedure_property);
+                });
+              }
+            });
+          });
+          this.tableData = [...this.tableData, ...this.modalArray];
+          this.currencyIndex = null;
+          this.route_id_at_copy = "";
+          // 合计 、 线条 统计价格
+          this.handleCalcCount();
+          this.showAddProduct = false;
+          this.$forceUpdate();
+        },
+        onCancel: () => {},
       });
-      this.tableData = [...this.tableData, ...this.modalArray];
-      this.currencyIndex = null;
-      this.route_id_at_copy = "";
-      // 合计 、 线条 统计价格
-      this.handleCalcCount();
-      this.showAddProduct = false;
-      this.$forceUpdate();
     },
     handleEditProductSubmit() {
-      // 工艺属性
-      if (!this.modalData.procedure_properties_str) {
-        this.modalData.procedure_properties_str = [];
-      }
-      this.modalData.process.forEach((elem, index) => {
-        const _temp = elem.processList.filter((item) => item.id == elem.value);
-        this.modalData.procedure_properties_str[index] =
-          _temp.length > 0 ? _temp[0].title : "";
-      });
-      this.modalData.process_str = this.modalData.procedure_properties_str.join(
-        "/"
-      );
-      // 尺寸
-      if (!this.modalData.measurement) {
-        this.modalData.measurement = "";
-      }
-      let tempStr = "";
-      this.modalData.measure.forEach((elem) => {
-        tempStr += elem.measureCalc + elem.value + "*";
-      });
-      this.modalData.measurement = tempStr.substring(0, tempStr.length - 1);
-      // 五金、  附加项目
-      this.modalData.ext = [
-        ...this.modalData.metalArray,
-        ...this.modalData.extArray,
-      ];
-      //其他项
-      this.modalData.other = this.modalData.customize;
-      // 部件字段
-      this.modalData.part.forEach((elem, idx) => {
-        if (!elem.is_metal) {
-          elem.title ? "" : (elem.title = elem.part_title);
-          // if (elem.procedure_properties_str && elem.procedure_properties_str != 0) {
-          //   elem.process_str = elem.procedure_properties_str.join('/')
-          // } else {
-          elem.procedure_properties_str = [];
-          elem.process.forEach((item, index) => {
-            const _temp = item.cld.filter(
-              (_cld) => _cld.id == item.procedure_property
+      this.$Modal.confirm({
+        content: "请确认线条名称是否正确!",
+        onOk: () => {
+          // 工艺属性
+          if (!this.modalData.procedure_properties_str) {
+            this.modalData.procedure_properties_str = [];
+          }
+          this.modalData.process.forEach((elem, index) => {
+            const _temp = elem.processList.filter(
+              (item) => item.id == elem.value
             );
-            elem.procedure_properties_str[index] =
+            this.modalData.procedure_properties_str[index] =
               _temp.length > 0 ? _temp[0].title : "";
           });
-          elem.process_str = elem.procedure_properties_str.join("/");
-          // }
-        } else {
-          this.modalData.part.splice(idx, 1);
-        }
-      });
-      this.modalData.metalArray.map((item) => {
-        const obj = {
-          total_num: item.num,
-          title: item.title,
-          unit_price: item.price,
-          ext_price: item.num * item.price,
-          is_metal: true,
-        };
-        this.modalData.part.push(obj);
-      });
-      this.modalData.extra = "";
-      this.modalData.extArray.map((item) => {
-        const temp = this.extList.filter((it) => it.id == item.ext_id);
-        temp && temp.length > 0 && (item.title = temp[0].title);
+          this.modalData.process_str = this.modalData.procedure_properties_str.join(
+            "/"
+          );
+          // 尺寸
+          if (!this.modalData.measurement) {
+            this.modalData.measurement = "";
+          }
+          let tempStr = "";
+          this.modalData.measure.forEach((elem) => {
+            tempStr += elem.measureCalc + elem.value + "*";
+          });
+          this.modalData.measurement = tempStr.substring(0, tempStr.length - 1);
+          // 五金、  附加项目
+          this.modalData.ext = [
+            ...this.modalData.metalArray,
+            ...this.modalData.extArray,
+          ];
+          //其他项
+          this.modalData.other = this.modalData.customize;
+          // 部件字段
+          this.modalData.part.forEach((elem, idx) => {
+            if (!elem.is_metal) {
+              elem.title ? "" : (elem.title = elem.part_title);
+              // if (elem.procedure_properties_str && elem.procedure_properties_str != 0) {
+              //   elem.process_str = elem.procedure_properties_str.join('/')
+              // } else {
+              elem.procedure_properties_str = [];
+              elem.process.forEach((item, index) => {
+                const _temp = item.cld.filter(
+                  (_cld) => _cld.id == item.procedure_property
+                );
+                elem.procedure_properties_str[index] =
+                  _temp.length > 0 ? _temp[0].title : "";
+              });
+              elem.process_str = elem.procedure_properties_str.join("/");
+              elem.procedure_properties = [];
+              elem.process.map((item) => {
+                elem.procedure_properties.push(item.procedure_property);
+              });
+
+              // }
+            } else {
+              this.modalData.part.splice(idx, 1);
+            }
+          });
+          this.modalData.metalArray.map((item) => {
+            const obj = {
+              total_num: item.num,
+              title: item.title,
+              unit_price: item.price,
+              ext_price: item.num * item.price,
+              is_metal: true,
+            };
+            this.modalData.part.push(obj);
+          });
+          this.modalData.extra = "";
+          this.modalData.extArray.map((item) => {
+            const temp = this.extList.filter((it) => it.id == item.ext_id);
+            temp && temp.length > 0 && (item.title = temp[0].title);
+          });
+          this.modalData.extra = this.modalData.extArray.reduce((pre, cur) => {
+            return pre + `${cur.title}/`;
+          }, "");
+          this.modalData.extra = this.modalData.extra.substring(
+            0,
+            this.modalData.extra.length - 1
+          );
+          const _temp = this.productList.filter(
+            (item) => item.id == this.modalData.product_id
+          );
+          this.modalData.title = _temp[0].title;
+          this.tableData.splice(this.currencyIndex, 1, this.modalData);
+          this.route_id_at_copy = "";
+          // 合计 、 线条 统计价格
+          this.handleCalcCount();
+          this.showEditProduct = false;
+          this.$forceUpdate();
+        },
+        onCancel: () => {},
       });
-      this.modalData.extra = this.modalData.extArray.reduce((pre, cur) => {
-        return pre + `${cur.title}/`;
-      }, "");
-      this.modalData.extra = this.modalData.extra.substring(
-        0,
-        this.modalData.extra.length - 1
-      );
-      const _temp = this.productList.filter(
-        (item) => item.id == this.modalData.product_id
-      );
-      this.modalData.title = _temp[0].title;
-      this.tableData.splice(this.currencyIndex, 1, this.modalData);
-      this.route_id_at_copy = "";
-      // 合计 、 线条 统计价格
-      this.handleCalcCount();
-      this.showEditProduct = false;
-      this.$forceUpdate();
     },
     // 合计 、 线条 统计价格
     handleCalcCount() {
@@ -3339,6 +3448,9 @@ export default {
         this.coumstList = res.data;
       });
     },
+    handleRemarkCreate(val){
+      this.support_remark.push(val)
+    },
     getLockList() {
       this.axios("/api/lock_list").then((res) => (this.lock_list = res.data));
     },
@@ -3524,7 +3636,7 @@ export default {
     getEditData(modalData, curData) {
       // console.log("modalData :>> ", modalData);
       // console.log("curData :>> ", curData);
-      /////
+      /////   org_part_id
       modalData.ext_price = curData.ext_price * 1 || 0;
       modalData.model = curData.model;
       modalData.num = curData.num || 1;
@@ -3642,6 +3754,9 @@ export default {
       curData.part.forEach((element, index) => {
         if (!element.is_metal) {
           modalData.part[index].change_id = element.change_id;
+          modalData.part[index].org_part_id = JSON.parse(
+            JSON.stringify(modalData.part[index].part_id)
+          );
           // 部件测量字段
           if (element.measure && element.measure.length > 0) {
             const part_measure_detail = element.measure.split("*");
@@ -3931,6 +4046,7 @@ export default {
               console.log("this.pre_process_obj :>> ", this.pre_process_obj);
             }
             let modalData = this.modalArray[n];
+            this.support_remark = res.data.support_remark;
             modalData.route_id = res.data.process.list[0].id;
             modalData.url = res.data.url;
             modalData.total_num = res.data.total_num || 1;
@@ -4015,6 +4131,12 @@ export default {
                         (item) => item.id == this.route_id_at_copy
                       );
                       if (compare_copy && compare_copy.length > 0) {
+                        if (!modalData.procedure_properties) {
+                          modalData.procedure_properties = [];
+                        }
+                        modalData.procedure_properties[
+                          modalData.process.lenngth
+                        ] = compare_copy[0].detail[key] * 1;
                         modalData.process.push({
                           key: key,
                           title: ele,
@@ -4034,6 +4156,12 @@ export default {
                         (item) => item.detail[key] == this.pre_process_obj[key]
                       );
                       if (compare.length > 0) {
+                        if (!modalData.procedure_properties) {
+                          modalData.procedure_properties = [];
+                        }
+                        modalData.procedure_properties[
+                          modalData.process.lenngth
+                        ] = this.pre_process_obj[key] * 1;
                         modalData.process.push({
                           key: key,
                           title: ele,
@@ -4061,6 +4189,7 @@ export default {
                       const ele = res.data.process.title[key];
                       if (elem.name == ele) {
                         elem.procedure_property = this.pre_process_obj[key] * 1;
+                        elem.process_id = key;
                         if (!element.procedure_properties) {
                           element.procedure_properties = [];
                         }
@@ -4107,6 +4236,7 @@ export default {
         }).then((res) => {
           if (res.code == 200) {
             this.process_match_list = res.data.process.list;
+            this.support_remark = res.data.support_remark;
             // 赋值默认工艺路线
             let _temp_obj = {};
             if (res.data.process.list.length > 1) {
@@ -4216,6 +4346,9 @@ export default {
                     );
 
                     if (compare.length > 0) {
+                      this.modalData.procedure_properties[
+                        this.modalData.process.lenngth
+                      ] = this.pre_process_obj[key] * 1;
                       this.modalData.process.push({
                         key: key,
                         title: ele,
@@ -4242,6 +4375,7 @@ export default {
                       const ele = res.data.process.title[key];
                       if (elem.name == ele) {
                         elem.procedure_property = this.pre_process_obj[key] * 1;
+                        elem.process_id = key;
                         if (!element.procedure_properties) {
                           element.procedure_properties = [];
                         }
@@ -4295,6 +4429,7 @@ export default {
           },
         }).then((res) => {
           if (res.code == 200) {
+            this.support_remark = res.data.support_remark;
             this.process_match_list = res.data.process.list;
             //获取产品
             this.modalData.total_num = res.data.total_num || 1;
@@ -4399,11 +4534,11 @@ export default {
         let cur = row.change.filter((item) => item.id == row.change_id);
         row.org_part_id = JSON.parse(JSON.stringify(row.part_id));
         row.part_id = cur[0].part_id;
-        row.high = cur[0].high;
+        row.high = cur[0].high | 0;
         row.highCalc = JSON.parse(JSON.stringify(row.high));
-        row.long = cur[0].long;
+        row.long = cur[0].long | 0;
         row.longCalc = JSON.parse(JSON.stringify(row.long));
-        row.wide = cur[0].wide;
+        row.wide = cur[0].wide | 0;
         row.wideCalc = JSON.parse(JSON.stringify(row.wide));
         row.part_detail = cur[0].sub_part;
         row.part_detail.forEach((elem) => {
@@ -4850,7 +4985,7 @@ export default {
       row.material_detail_num = e.target.value;
       this.$forceUpdate();
     },
-    //修改材质/颜/工艺的disbled
+    //修改材质/颜/工艺的 disabled
     handleProductProcessChange(e, n, modelData, ele) {
       if (e) {
         this.pre_process_obj[n + 1] = e.value;
@@ -4893,12 +5028,15 @@ export default {
           let target = _target.join(",");
           _sorce.forEach((element) => {
             if (element.new_detail == target) {
+              console.log("element.new_detail :>> ", element);
+              console.log("element.new_detail :>> ", element.new_detail);
               modelData.route_id = element.id;
             }
           });
         }
         // 产品 - 部件 工艺属性联动
         modelData.part.forEach((element) => {
+          // 此处有错误,产品选择完工艺路线之后部件的展示跟着改了但是procedure_properties没有
           if (!element.is_metal) {
             element.process.forEach((elem) => {
               if (elem.name == ele.title) {
@@ -5211,7 +5349,7 @@ export default {
     }
     /deep/ .ivu-form-item {
       display: inline-block;
-      min-width: 80px;
+      min-width: 30px;
     }
   }
   .modal_extra {

+ 0 - 1
src/views/ProcessRoute/edit.vue

@@ -417,7 +417,6 @@ export default {
       const arr = this.info.procedure_id
         ? this.info.procedure_id.split(",")
         : [];
-      console.log("this.info.bps :>> ", this.info.bps);
       for (let index = 0; index < arr.length; index++) {
         const element = arr[index];
         this.info.bps.map((lv1) => {

+ 365 - 206
src/views/ProductionOrderList/Deliverylist/Deliverylist.vue

@@ -1,56 +1,73 @@
 <template>
   <div>
-    <FullPage title='发货单'
-              :list='set_list'
-              @init='init'
-              :loading='loading'
-              @searchData='init'
-              @changePage='changePage'
-              @changeSize='changeSize'
-              :tableColums='computedTable'
-              :tableData='tableData'
-              :pageIndex='pageIndex'
-              :total='total'>
-      <div slot='navButton'>
-        <Button v-if='persimissionData["表头设置"]||persimissionData.all'
-                @click="setupTableHeader"
-                type="primary"
-                ghost
-                icon='ios-cog'>表头设置</Button>
+    <FullPage
+      title="发货单"
+      :list="set_list"
+      @init="init"
+      :loading="loading"
+      @searchData="init"
+      @changePage="changePage"
+      @changeSize="changeSize"
+      :tableColums="computedTable"
+      :tableData="tableData"
+      :pageIndex="pageIndex"
+      :total="total"
+    >
+      <div slot="navButton">
+        <!-- <Button
+          v-if="persimissionData['表头设置'] || persimissionData.all"
+          @click="setupTableHeader"
+          type="primary"
+          ghost
+          icon="ios-cog"
+          >表头设置</Button
+        > -->
       </div>
-      <template slot="basicTypeSet"
-                slot-scope="{row}">
+      <template slot="basicTypeSet" slot-scope="{ row }">
         <div>
-          <span v-for="item in warningList"
-                :key="item.id"
-                :style="{color:item.color}"
-                v-show="item.id==row.warning_state">{{item.title}}</span>
+          <span
+            v-for="item in warningList"
+            :key="item.id"
+            :style="{ color: item.color }"
+            v-show="item.id == row.warning_state"
+            >{{ item.title }}</span
+          >
         </div>
       </template>
-      <template slot='set'
-                slot-scope='{row}'>
-        <a @click="confirmOutStock(row,1)"
-           v-if='row.state == 0&&(persimissionData["确认出库"]||persimissionData.all)'
-           class="map-margin">确认出库</a>
-        <a @click="confirmOutStock(row,2)"
-           v-if='row.state == 1&&(persimissionData["确认运输"]||persimissionData.all)'
-           class="map-margin">确认运输</a>
-        <a v-if='persimissionData["订单详情"]||persimissionData.all'
-           class="map-margin"
-           @click="goPage(row)">详情</a>
-        <a class="map-margin"
-           @click="goBigScreen(row);showModal = true">大屏</a>
+      <template slot="set" slot-scope="{ row }">
+        <a class="map-margin" @click="goPage(row)">详情</a>
+        <a
+          @click="confirmOutStock(row, 1)"
+          v-if="row.state == 0"
+          class="map-margin"
+          >确认出库</a
+        >
+        <!-- &&(persimissionData['确认出库'] || persimissionData.all) -->
+        <a
+          @click="confirmOutStock(row, 2)"
+          v-if="row.state == 1"
+          class="map-margin"
+          >确认运输</a
+        >
+        <!-- &&(persimissionData['确认运输'] || persimissionData.all) -->
+        <a
+          class="map-margin"
+          @click="
+            goBigScreen(row);
+            showModal = true;
+          "
+          >大屏</a
+        >
       </template>
     </FullPage>
-    <Modal v-model="showModal"
-           fullscreen
-           footer-hide
-           class="modal-bs">
+    <Modal v-model="showModal" fullscreen footer-hide class="modal-bs">
       <template slot="header">
         <div class="modal-title">
-          <span class="modal-titlt-side">{{selectedName}}</span>
-          <span class="modal-title-name font-gradient-style">倍思特发货清单</span>
-          <span class="modal-titlt-side">{{currentDate}}</span>
+          <span class="modal-titlt-side">{{ selectedName }}</span>
+          <span class="modal-title-name font-gradient-style"
+            >倍思特发货清单</span
+          >
+          <span class="modal-titlt-side">{{ currentDate }}</span>
         </div>
       </template>
       <div class="modal-body">
@@ -60,8 +77,7 @@
               <div class="font-gradient-style">
                 芯片总数
               </div>
-              <div class="card-number-style"
-                   ref="tag_num_total">
+              <div class="card-number-style" ref="tag_num_total">
                 <div>0</div>
                 <div>0</div>
                 <div>0</div>
@@ -72,8 +88,7 @@
               <div class="font-gradient-style">
                 今日发货
               </div>
-              <div class="card-number-style"
-                   ref="today_total_total">
+              <div class="card-number-style" ref="today_total_total">
                 <div>0</div>
                 <div>0</div>
                 <div>0</div>
@@ -84,8 +99,7 @@
               <div class="font-gradient-style">
                 已发货
               </div>
-              <div class="card-number-style"
-                   ref="send_total_total">
+              <div class="card-number-style" ref="send_total_total">
                 <div>0</div>
                 <div>0</div>
                 <div>0</div>
@@ -98,8 +112,7 @@
               <div>
                 异常芯片
               </div>
-              <div class="card-number-style"
-                   ref="unusual_tag_num_total">
+              <div class="card-number-style" ref="unusual_tag_num_total">
                 <div>0</div>
                 <div>0</div>
                 <div>0</div>
@@ -112,17 +125,23 @@
         </div>
         <div class="modal-body-content">
           <div class="modal-body-content-left">
-            <Table max-height='400'
-                   :columns="modalHouseColums"
-                   :data="modalHouseList"></Table>
-            <div style="padding-top:10px;color:white">共{{today_total-send_total}}条未发货</div>
+            <Table
+              max-height="400"
+              :columns="modalHouseColums"
+              :data="modalHouseList"
+            ></Table>
+            <div style="padding-top:10px;color:white">
+              共{{ today_total - send_total }}条未发货
+            </div>
           </div>
           <div class="modal-body-content-right">
-            <Table style="background-color: transparent;"
-                   stripe
-                   max-height='470'
-                   :columns="modalHouseColums"
-                   :data="modalUnusualTagList"></Table>
+            <Table
+              style="background-color: transparent;"
+              stripe
+              max-height="470"
+              :columns="modalHouseColums"
+              :data="modalUnusualTagList"
+            ></Table>
           </div>
         </div>
       </div>
@@ -131,32 +150,93 @@
 </template>
 
 <script>
-import { mapState } from 'vuex'
+import { mapState } from "vuex";
 export default {
-  data () {
+  data() {
     return {
       tableColums: [
-        { title: '订单编号', align: 'center', key: 'order_no', fixed: 'left', width: '200' },
-        { title: '运输单号', align: 'center', key: 'transport_no', minWidth: 200 },
         {
-          title: '订单类型', align: 'center', key: 'type', minWidth: 100,
-          render: (h, params) => h('span', {}, params.row.type == 1 ? '工装' : '家装')
+          title: "订单编号",
+          align: "center",
+          key: "order_no",
+          fixed: "left",
+          width: "200",
+        },
+        {
+          title: "运输单号",
+          align: "center",
+          key: "transport_no",
+          minWidth: 200,
+        },
+        {
+          title: "订单类型",
+          align: "center",
+          key: "type",
+          minWidth: 100,
+          render: (h, params) =>
+            h("span", {}, params.row.type == 1 ? "工装" : "家装"),
+        },
+        {
+          title: "紧急程度",
+          align: "center",
+          key: "warning_state",
+          minWidth: 100,
+          slot: "basicTypeSet",
+        },
+        {
+          title: "小区名称",
+          align: "center",
+          key: "residential_name",
+          minWidth: 200,
+        },
+        {
+          title: "出库时间",
+          align: "center",
+          key: "start_time",
+          minWidth: 200,
+          render: (h, params) =>
+            h("span", {}, this.func.replaceDate(params.row.start_time, 1)),
+        },
+        {
+          title: "确认出库百分比",
+          align: "center",
+          key: "in_out_value",
+          minWidth: 150,
+        },
+        { title: "客户", align: "center", key: "client_name", minWidth: 150 },
+        {
+          title: "运输百分比",
+          align: "center",
+          key: "transportation_value",
+          minWidth: 150,
         },
-        { title: '紧急程度', align: 'center', key: 'warning_state', minWidth: 100, slot: 'basicTypeSet', },
-        { title: '小区名称', align: 'center', key: 'residential_name', minWidth: 200 },
+        { title: "手机号", align: "center", key: "mobile", minWidth: 150 },
         {
-          title: '出库时间', align: 'center', key: 'start_time', minWidth: 200,
-          render: (h, params) => h('span', {}, this.func.replaceDate(params.row.start_time, 1))
+          title: "订单状态",
+          align: "center",
+          key: "state",
+          minWidth: 100,
+          render: (h, params) =>
+            h(
+              "span",
+              {},
+              params.row.state == 99
+                ? "全部"
+                : params.row.state == 0
+                ? "可以派工"
+                : params.row.state == 1
+                ? "已派工"
+                : "已完成"
+            ),
         },
-        { title: '确认出库百分比', align: 'center', key: 'in_out_value', minWidth: 150 },
-        { title: '客户', align: 'center', key: 'client_name', minWidth: 150 },
-        { title: '运输百分比', align: 'center', key: 'transportation_value', minWidth: 150 },
-        { title: '手机号', align: 'center', key: 'mobile', minWidth: 150 },
         {
-          title: '订单状态', align: 'center', key: 'sub_state', minWidth: 100,
-          render: (h, params) => h('span', {}, params.row.sub_state == 0 ? '未指派' : (params.row.sub_state == 1 ? '可以派工' : (params.row.sub_state == 2 ? '已派工' : '已完成')))
+          title: "操作",
+          align: "center",
+          key: "set",
+          slot: "set",
+          fixed: "right",
+          width: "150",
         },
-        { title: '操作', align: 'center', key: 'set', slot: 'set', fixed: 'right', width: '150' },
       ],
       tableData: [],
       pageIndex: 1,
@@ -169,188 +249,265 @@ export default {
       modalHouseList: [],
       modalUnusualTagList: [],
       //芯片总数
-      tag_num: '',
+      tag_num: "",
       //今日发货
-      today_total: '',
+      today_total: "",
       //已发货
-      send_total: '',
-      warningList:[],
+      send_total: "",
+      warningList: [],
       //异常芯片
-      unusual_tag_num: '',
-      modalHouseColums: [{
-        title: '房间',
-        key: 'houseName',
-        maxWidth: 120
-      }, {
-        title: '产品',
-        key: 'title'
-      }, {
-        title: '部件',
-        key: 'part_title'
-      },],
-      selectedName: '',
-      currentDate: '',
-      timer: ''
-    }
+      unusual_tag_num: "",
+      modalHouseColums: [
+        {
+          title: "房间",
+          key: "houseName",
+          maxWidth: 120,
+        },
+        {
+          title: "产品",
+          key: "title",
+        },
+        {
+          title: "部件",
+          key: "part_title",
+        },
+      ],
+      selectedName: "",
+      currentDate: "",
+      timer: "",
+    };
   },
   computed: {
-    ...mapState(['persimissionData']),
-    computedTable () {
+    ...mapState(["persimissionData"]),
+    computedTable() {
       if (this.tableheaders.length < 1) {
-        return this.tableColums
+        return this.tableColums;
       }
-      return this.func.computedHeader(this.tableheaders, this.tableColums)
+      return this.func.computedHeader(this.tableheaders, this.tableColums);
     },
-    set_list () {
+    set_list() {
       return [
-        { title: '订单编号', name: 'Input', serverName: 'order_no', placeholder: '请输入订单编号', value: '' },
         {
-          title: '订单类型', name: 'Select', placeholder: '请选择', serverName: 'type', value: '',
+          title: "订单编号",
+          name: "Input",
+          serverName: "order_no",
+          placeholder: "请输入订单编号",
+          value: "",
+        },
+        {
+          title: "订单类型",
+          name: "Select",
+          placeholder: "请选择",
+          serverName: "type",
+          value: "",
           option: [
-            { label: '工装', value: 1 },
-            { label: '家装', value: 0 },
-          ]
+            { label: "工装", value: 1 },
+            { label: "家装", value: 0 },
+          ],
         },
         {
-          title: '订单状态', name: 'Select', placeholder: '请选择', serverName: 'sub_state', value: '',
+          title: "订单状态",
+          name: "Select",
+          placeholder: "请选择",
+          serverName: "sub_state",
+          value: "",
           option: [
-            { label: '未指派', value: 0 },
-            { label: '可以派工', value: 1 },
-            { label: '已派工', value: 2 },
-            { label: '已完成', value: 3 },
-          ]
+            { label: "可以派工", value: 0 },
+            { label: "已派工", value: 1 },
+            { label: "已完成", value: 2 },
+          ],
         },
-        { title: '紧急程度', name: 'Select', serverName: 'warning_state', placeholder: '请选择', value: '', optionName: 'title', optionValue: 'id', option: this.warningList },
-        { title: '小区名称', name: 'Input', serverName: 'residential_name', placeholder: '小区名称', value: '' },
-        { title: '客户', name: 'Input', serverName: 'client_name', placeholder: '客户', value: '' },
-        { title: '手机号', name: 'Input', serverName: 'mobile', placeholder: '手机号', value: '' },
-        { title: '出库日期范围', start_server: 'start_time', end_server: 'end_time', name: 'Input', start_value: '', end_value: '', isDate: true, start_placeholder: '开始日期', end_placeholder: '结束日期' }
-      ]
-    }
+        {
+          title: "紧急程度",
+          name: "Select",
+          serverName: "warning_state",
+          placeholder: "请选择",
+          value: "",
+          optionName: "title",
+          optionValue: "id",
+          option: this.warningList,
+        },
+        {
+          title: "小区名称",
+          name: "Input",
+          serverName: "residential_name",
+          placeholder: "小区名称",
+          value: "",
+        },
+        {
+          title: "客户",
+          name: "Input",
+          serverName: "client_name",
+          placeholder: "客户",
+          value: "",
+        },
+        {
+          title: "手机号",
+          name: "Input",
+          serverName: "mobile",
+          placeholder: "手机号",
+          value: "",
+        },
+        {
+          title: "出库日期范围",
+          start_server: "start_time",
+          end_server: "end_time",
+          name: "Input",
+          start_value: "",
+          end_value: "",
+          isDate: true,
+          start_placeholder: "开始日期",
+          end_placeholder: "结束日期",
+        },
+      ];
+    },
   },
   methods: {
-    init (row) {
-      this.pageIndex = 1
-      row.page_index = this.pageIndex
-      row.page_size = this.pageSize
+    init(row) {
+      this.pageIndex = 1;
+      row.page_index = this.pageIndex;
+      row.page_size = this.pageSize;
       this.proxyObj = row;
-      this.getData(row)
+      this.getData(row);
     },
-    getData (row) {
+    getData(row) {
       this.loading = true;
-      this.axios('/api/orders_out_list', { params: row }).then(res => {
+      this.axios("/api/orders_out_list", { params: row }).then((res) => {
         this.loading = false;
         if (res.code == 200) {
           this.tableData = res.data.data;
           this.total = res.data.total;
-          this.tableheaders = res.data.tableSet || []
+          this.tableheaders = res.data.tableSet || [];
         }
-      })
+      });
     },
-    changePage (e) {
+    changePage(e) {
       this.pageIndex = e;
       this.proxyObj.page_index = this.pageIndex;
-      this.getData(this.proxyObj)
+      this.getData(this.proxyObj);
     },
-    changeSize (e) {
+    changeSize(e) {
       this.pageSize = e;
       this.proxyObj.page_size = this.pageSize;
-      this.getData(this.proxyObj)
+      this.getData(this.proxyObj);
     },
-    confirmOutStock (row, type) {//type 1出库  2运输
+    confirmOutStock(row, type) {
+      //type 1出库  2运输
       let params = {};
-      let post_url = type == 1 ? '/api/orders_transport' : '/api/orders_transport_confirm';
+      let post_url =
+        type == 1 ? "/api/orders_transport" : "/api/orders_transport_confirm";
       params.transport_no = row.transport_no || row.order_no;
       this.confirmDelete({
-        title: type == 1 ? '确认出库' : '确认运输',
-        content: type == 1 ? '确认出库么?' : '确认运输么?',
-        type: 'primary',
-        then: e => {
-          this.axios.post(post_url, params).then(res => {
+        title: type == 1 ? "确认出库" : "确认运输",
+        content: type == 1 ? "确认出库么?" : "确认运输么?",
+        type: "primary",
+        then: (e) => {
+          this.axios.post(post_url, params).then((res) => {
             if (res.code == 200) {
-              this.$Message.success(res.msg)
-              this.getData(this.proxyObj)
+              this.$Message.success(res.msg);
+              this.getData(this.proxyObj);
             }
-          })
+          });
         },
-        cancel: e => {
-        }
-      })
+        cancel: (e) => {},
+      });
     },
-    goPage (row) {
+    goPage(row) {
       this.$router.push({
-        path: '/cms/productionorderlist/inboundform/details',
+        path: "/cms/productionorderlist/inboundform/details",
         query: {
           order_no: row.order_no,
           type: 2,
-          transport_no: row.transport_no
-        }
-      })
+          transport_no: row.transport_no,
+        },
+      });
     },
-    goBigScreen (row) {
+    goBigScreen(row) {
       this.axios({
-        method: 'post',
-        url: '/api/transport_list',
+        method: "post",
+        url: "/api/transport_list",
         data: {
-          transport_no: row.transport_no
+          transport_no: row.transport_no,
           // transport_no:16185413363403
-        }
-      }).then((res) => {
-        const temphouse = res.data.house;
-        temphouse.forEach(el => {
-          el.houseName = `${el.house}-${el.layer}-${el.unit}-${el.number}`
-        });
-        this.modalHouseList = temphouse
-        const tempunusual_tag = res.data.unusual_tag
-        tempunusual_tag.forEach(el => {
-          el.houseName = `${el.house}-${el.layer}-${el.unit}-${el.number}`
-        });
-        this.modalUnusualTagList = tempunusual_tag
-        this.tag_num = res.data.tag_num
-        this.today_total = res.data.total
-        this.send_total = res.data.send_total
-        this.unusual_tag_num = res.data.unusual_tag_num
-        this.handleDispaly(res.data.tag_num, this.$refs.tag_num_total.children)
-        this.handleDispaly(res.data.send_total, this.$refs.send_total_total.children)
-        this.handleDispaly(res.data.total, this.$refs.today_total_total.children)
-        this.handleDispaly(res.data.unusual_tag_num, this.$refs.unusual_tag_num_total.children)
-        this.selectedName = row.residential_name
-      }).catch((err) => {
-
-      });
+        },
+      })
+        .then((res) => {
+          const temphouse = res.data.house;
+          temphouse.forEach((el) => {
+            el.houseName = `${el.house}-${el.layer}-${el.unit}-${el.number}`;
+          });
+          this.modalHouseList = temphouse;
+          const tempunusual_tag = res.data.unusual_tag;
+          tempunusual_tag.forEach((el) => {
+            el.houseName = `${el.house}-${el.layer}-${el.unit}-${el.number}`;
+          });
+          this.modalUnusualTagList = tempunusual_tag;
+          this.tag_num = res.data.tag_num;
+          this.today_total = res.data.total;
+          this.send_total = res.data.send_total;
+          this.unusual_tag_num = res.data.unusual_tag_num;
+          this.handleDispaly(
+            res.data.tag_num,
+            this.$refs.tag_num_total.children
+          );
+          this.handleDispaly(
+            res.data.send_total,
+            this.$refs.send_total_total.children
+          );
+          this.handleDispaly(
+            res.data.total,
+            this.$refs.today_total_total.children
+          );
+          this.handleDispaly(
+            res.data.unusual_tag_num,
+            this.$refs.unusual_tag_num_total.children
+          );
+          this.selectedName = row.residential_name;
+        })
+        .catch((err) => {});
     },
-    setupTableHeader () {
-      this.tableheaders.length < 1 ? this.tableheaders = this.tableColums.reduce((pre, cur) => pre.concat(cur.key), []) : ''
+    setupTableHeader() {
+      this.tableheaders.length < 1
+        ? (this.tableheaders = this.tableColums.reduce(
+            (pre, cur) => pre.concat(cur.key),
+            []
+          ))
+        : "";
       this.$setTableheader({
         list: this.tableColums,
         selects: this.tableheaders,
         then: (result) => {
-          this.tableheaders = result
-          this.axios.post('/api/update/table', { id: this.$route.query.id, result }).then(res => {
-            if (res.code == 200) {
-              this.$Message.success(res.msg)
-            }
-          })
-        }
-      })
+          this.tableheaders = result;
+          this.axios
+            .post("/api/update/table", { id: this.$route.query.id, result })
+            .then((res) => {
+              if (res.code == 200) {
+                this.$Message.success(res.msg);
+              }
+            });
+        },
+      });
     },
     //芯片展示更改
-    handleDispaly (from, to) {
+    handleDispaly(from, to) {
       //[1,2,3,4]
-      to.forEach(el => {
-        el.innerText = 0
+      to.forEach((el) => {
+        el.innerText = 0;
       });
-      const arr = from.toString().split('').reverse()
-      let i = 3
-      arr.forEach(el => {
-        to[i].innerText = el
-        i--
+      const arr = from
+        .toString()
+        .split("")
+        .reverse();
+      let i = 3;
+      arr.forEach((el) => {
+        to[i].innerText = el;
+        i--;
       });
-    }
+    },
   },
-  created () {
+  created() {
     let _this = this; //声明一个变量指向Vue实例this,保证作用域一致
-    this.timer = setInterval(function () {
+    this.timer = setInterval(function() {
       _this.currentDate = //修改数据date
         new Date().getFullYear() +
         "-" +
@@ -360,17 +517,19 @@ export default {
         " " +
         new Date().getHours() +
         ":" +
-        new Date().getMinutes()
+        new Date().getMinutes();
     }, 1000);
     // 获取紧急程度
-    this.axios.get('/api/warning_list').then(res => { this.warningList = res.data.data })
+    this.axios.get("/api/warning_list").then((res) => {
+      this.warningList = res.data.data;
+    });
   },
-  beforeDestroy () {
+  beforeDestroy() {
     if (this.timer) {
       clearInterval(this.timer); // 在Vue实例销毁前,清除我们的定时器
     }
-  }
-}
+  },
+};
 </script>
 
 <style lang="scss" scoped>
@@ -563,4 +722,4 @@ export default {
     background-image: linear-gradient(#121312, #313131);
   }
 }
-</style>
+</style>

+ 1 - 1
src/views/ProductionOrderList/Dispatchlist/details.vue

@@ -51,7 +51,7 @@ export default {
                 {title:'部件是否贴标签',align:'center',minWidth:150,
                     render:(h,params)=>h('span',{},params.row.label == '1' ? '是' : '否')
                 },
-                {title:'贴标签零部件',align:'center',minWidth:150,key:'sub_part'},
+                // {title:'贴标签零部件',align:'center',minWidth:150,key:'sub_part'},
                 {title:'工序分类',align:'center',minWidth:150,key:'basic_title'},
                 {title:'工序',align:'center',minWidth:150,key:'procedure_title'},
                 {title:'班组',align:'center',minWidth:150,key:'nickname'},

+ 12 - 13
src/views/ProductionOrderList/InboundForm/index.vue

@@ -69,7 +69,7 @@ export default {
             h("span", {}, params.row.type == 1 ? "工装" : "家装"),
         },
         {
-          title: "小区",
+          title: "项目名称",
           align: "center",
           key: "residential_name",
           minWidth: 200,
@@ -111,7 +111,7 @@ export default {
           render: (h, params) =>
             h("span", {}, this.func.replaceDate(params.row.end_time * 1, 1)),
         },
-        { title: "业务员", align: "center", key: "nickname", minWidth: 150 },
+        { title: "包装员", align: "center", key: "nickname", minWidth: 150 },
         {
           title: "包装状态",
           align: "center",
@@ -122,8 +122,8 @@ export default {
               "span",
               {},
               // params.row.sub_state == 0
-                // ? "未指派"
-                params.row.sub_state == 1
+              // ? "未指派"
+              params.row.sub_state == 1
                 ? "未包装"
                 : params.row.sub_state == 2
                 ? "包装中"
@@ -147,7 +147,7 @@ export default {
       proxyObj: {},
       tableheaders: [],
       warningList: [],
-      userList:[],
+      userList: [],
     };
   },
   created() {
@@ -156,10 +156,9 @@ export default {
       this.warningList = res.data.data;
     });
     // 获取用户列表
-    this.axios({ method: "get", url: "/api/user" })
-      .then((res) => {
-        this.userList = res.data.data;
-      })
+    this.axios({ method: "get", url: "/api/employee_list" }).then((res) => {
+      this.userList = res.data;
+    });
   },
   computed: {
     ...mapState(["persimissionData"]),
@@ -235,11 +234,12 @@ export default {
           serverName: "mobile",
         },
         {
-          title: "业务员",
+          title: "包装员",
           name: "Select",
-          placeholder: "请选择业务员",
+          placeholder: "请选择包装员",
           value: "",
           optionValue: "id",
+          filterable: true,
           optionName: "nickname",
           serverName: "salesman",
           option: this.userList,
@@ -320,5 +320,4 @@ export default {
 };
 </script>
 
-<style lang="scss" scoped>
-</style>
+<style lang="scss" scoped></style>

+ 170 - 161
src/views/ProductionOrderList/ProductionPlanlist/details.vue

@@ -28,7 +28,7 @@
         <Button type="primary" ghost @click="batchDispatchOrder"
           >批量派工单</Button
         >
-      </div> 
+      </div>
 
       <template slot="set" slot-scope="{ row }">
         <div>
@@ -60,101 +60,101 @@ export default {
   data() {
     return {
       order_no: null,
-      logList: [{ title: '系统单号', value: '10998765' }],
+      logList: [{ title: "系统单号", value: "10998765" }],
       list: [
         {
-          title: '楼幢',
-          name: 'Select',
+          title: "楼幢",
+          name: "Select",
           multiple: true,
           filterable: true,
-          serverName: 'house',
-          placeholder: '请选择楼幢',
-          value: '',
+          serverName: "house",
+          placeholder: "请选择楼幢",
+          value: "",
           option: [{ label: 1, value: 1 }],
         },
         {
-          title: '单元',
-          name: 'Select',
+          title: "单元",
+          name: "Select",
           multiple: true,
           filterable: true,
-          serverName: 'unit',
-          placeholder: '请选择单元',
-          value: '',
+          serverName: "unit",
+          placeholder: "请选择单元",
+          value: "",
           option: [{ label: 1, value: 1 }],
         },
         {
-          title: '楼层',
-          name: 'Select',
+          title: "楼层",
+          name: "Select",
           multiple: true,
           filterable: true,
-          serverName: 'layer',
-          placeholder: '请选择楼层',
-          value: '',
+          serverName: "layer",
+          placeholder: "请选择楼层",
+          value: "",
           option: [{ label: 1, value: 1 }],
         },
         {
-          title: '房间',
-          name: 'Select',
+          title: "房间",
+          name: "Select",
           multiple: true,
           filterable: true,
-          serverName: 'number_detail',
-          placeholder: '请选择房间',
-          value: '',
+          serverName: "number_detail",
+          placeholder: "请选择房间",
+          value: "",
           option: [{ label: 1, value: 1 }],
         },
         {
-          title: '部件',
-          name: 'Select',
+          title: "部件",
+          name: "Select",
           multiple: true,
           filterable: true,
-          value: '',
-          serverName: 'part',
-          placeholder: '请选择部件',
+          value: "",
+          serverName: "part",
+          placeholder: "请选择部件",
           option: [{ label: 1, value: 1 }],
         },
         {
-          title: '工序',
-          name: 'Select',
+          title: "工序",
+          name: "Select",
           filterable: true,
-          value: '',
-          serverName: 'produce',
-          placeholder: '请选择工序',
+          value: "",
+          serverName: "produce",
+          placeholder: "请选择工序",
           option: [],
         },
         {
-          title: '产品',
-          name: 'Select',
+          title: "产品",
+          name: "Select",
           multiple: true,
           filterable: true,
-          serverName: 'product',
-          placeholder: '请选择产品',
-          value: '',
+          serverName: "product",
+          placeholder: "请选择产品",
+          value: "",
           option: [],
         },
         {
-          title: '图号',
-          name: 'Select',
+          title: "图号",
+          name: "Select",
           multiple: true,
           filterable: true,
-          value: '',
-          serverName: 'img_number',
-          placeholder: '请选择图号',
+          value: "",
+          serverName: "img_number",
+          placeholder: "请选择图号",
           option: [],
         },
       ],
       tableColums: [
-        { type: 'selection', align: 'center', fixed: 'left', width: '100' },
+        { type: "selection", align: "center", fixed: "left", width: "100" },
         {
-          title: '房间号',
-          align: 'center',
-          key: 'number_detail',
+          title: "房间号",
+          align: "center",
+          key: "number_detail",
           minWidth: 100,
           render: (h, params) => {
-            const { row } = params
+            const { row } = params;
             return h(
-              'span',
+              "span",
               `${row.house}-${row.unit}-${row.layer}-${row.number_detail}`
-            )
+            );
           },
         },
         // {
@@ -184,56 +184,65 @@ export default {
         //   },
         // },
         {
-          title: '图号',
-          align: 'center',
-          key: 'url_number',
+          title: "图号",
+          align: "center",
+          key: "url_number",
           minWidth: 390,
         },
-        { title: '位置', align: 'center', key: 'position', minWidth: 100 },
+        { title: "位置", align: "center", key: "position", minWidth: 100 },
         // {
         //   title: "位置",
         //   align: "center",
         //   key: "position",
         //   minWidth: 100,
         // },
-        { title: '产品', align: 'center', key: 'product_title', minWidth: 200 },
-        { title: '部件', align: 'center', key: 'part_title', minWidth: 200 },
+        { title: "产品", align: "center", key: "product_title", minWidth: 200 },
+        { title: "部件", align: "center", key: "part_title", minWidth: 200 },
         {
-          title: '部件是否贴标签',
-          align: 'center',
+          title: "部件是否贴标签",
+          align: "center",
           minWidth: 200,
           render: (h, params) =>
-            h('span', {}, params.row.label == 0 ? '否' : '是'),
+            h("span", {}, params.row.label == 0 ? "否" : "是"),
         },
         // {title:'贴标签零部件',align:'center',minWidth:200,key:'sub_part',
         //     // render:(h,params)=>h('span',{},params.row.sub_label == 1 ? '是' : '否')
         // },
         {
-          title: '工序分类',
-          align: 'center',
-          key: 'basics_procedure_title',
+          title: "工序分类",
+          align: "center",
+          key: "basics_procedure_title",
           minWidth: 200,
         },
         {
-          title: '工序',
-          align: 'center',
-          key: 'procedure_title',
+          title: "工序",
+          align: "center",
+          key: "procedure_title",
           minWidth: 200,
         },
         {
-          title: '是否完成',
-          align: 'center',
-          key: 'is_complete',
+          title: "是否完成",
+          align: "center",
+          key: "is_complete",
           minWidth: 200,
+          render: (h, params) =>
+            h("span", {}, params.row.sub_state == 3 ? "已完成" : "未完成"),
         },
         {
-          title: '测量尺寸',
-          align: 'center',
+          title: "测量尺寸",
+          align: "center",
           minWidth: 200,
-          key: 'measurement',
+          key: "measurement",
+        },
+        { title: "单位", align: "center", minWidth: 200, key: "company" },
+        {
+          title: "芯片编号",
+          align: "center",
+          key: "chip",
+          minWidth: 200,
+          ellipsis: "true",
+          tooltip: "true",
         },
-        { title: '单位', align: 'center', minWidth: 200, key: 'company' },
-        { title: '芯片编号', align: 'center', key: 'chip', minWidth: 200,ellipsis:'true',tooltip:'true'},
         // {
         //   title: '操作',
         //   align: 'center',
@@ -251,160 +260,160 @@ export default {
       showChip: false,
       chipInfo: {},
       arrList: [],
-    }
+    };
   },
   created() {
-    this.getOptions()
+    this.getOptions();
   },
   methods: {
     init(row) {
-      this.pageIndex = 1
-      row.page_index = this.pageIndex
-      row.page_size = this.pageSize
-      this.order_no = this.$route.query.order_no
-      Object.assign(row, this.$route.query)
-      if (this.func.isType(row.house) == 'Array') {
-        row.house = row.house.join(',')
+      this.pageIndex = 1;
+      row.page_index = this.pageIndex;
+      row.page_size = this.pageSize;
+      this.order_no = this.$route.query.order_no;
+      Object.assign(row, this.$route.query);
+      if (this.func.isType(row.house) == "Array") {
+        row.house = row.house.join(",");
       }
-      if (this.func.isType(row.unit) == 'Array') {
-        row.unit = row.unit.join(',')
+      if (this.func.isType(row.unit) == "Array") {
+        row.unit = row.unit.join(",");
       }
-      if (this.func.isType(row.layer) == 'Array') {
-        row.layer = row.layer.join(',')
+      if (this.func.isType(row.layer) == "Array") {
+        row.layer = row.layer.join(",");
       }
-      if (this.func.isType(row.number_detail) == 'Array') {
-        row.number_detail = row.number_detail.join(',')
+      if (this.func.isType(row.number_detail) == "Array") {
+        row.number_detail = row.number_detail.join(",");
       }
-      if (this.func.isType(row.part) == 'Array') {
-        row.part = row.part.join(',')
+      if (this.func.isType(row.part) == "Array") {
+        row.part = row.part.join(",");
       }
-      if (this.func.isType(row.produce) == 'Array') {
-        row.produce = row.produce.join(',')
+      if (this.func.isType(row.produce) == "Array") {
+        row.produce = row.produce.join(",");
       }
-      if (this.func.isType(row.product) == 'Array') {
-        row.product = row.product.join(',')
+      if (this.func.isType(row.product) == "Array") {
+        row.product = row.product.join(",");
       }
-      if (this.func.isType(row.img_number) == 'Array') {
-        row.img_number = row.img_number.join(',')
+      if (this.func.isType(row.img_number) == "Array") {
+        row.img_number = row.img_number.join(",");
       }
-      this.proxyObj = row
-      this.getData(row)
+      this.proxyObj = row;
+      this.getData(row);
     },
     getOptions() {
-      this.axios('/api/order_detail_word', {
+      this.axios("/api/order_detail_word", {
         params: { order_no: this.$route.query.order_no },
       }).then((res) => {
         res.data.house.map((v) => {
-          v.value = v.house
-          v.label = v.house
-        })
+          v.value = v.house;
+          v.label = v.house;
+        });
         res.data.unit.map((v) => {
-          v.value = v.unit
-          v.label = v.unit
-        })
+          v.value = v.unit;
+          v.label = v.unit;
+        });
         res.data.layer.map((v) => {
-          v.value = v.layer
-          v.label = v.layer
-        })
+          v.value = v.layer;
+          v.label = v.layer;
+        });
         res.data.number_detail.map((v) => {
-          v.value = v.number_detail
-          v.label = v.number_detail
-        })
+          v.value = v.number_detail;
+          v.label = v.number_detail;
+        });
         res.data.part.map((v) => {
-          v.value = v.title
-          v.label = v.title
-        })
+          v.value = v.title;
+          v.label = v.title;
+        });
         res.data.produce.map((v) => {
-          ;(v.value = v.title), (v.label = v.title)
-        })
+          (v.value = v.title), (v.label = v.title);
+        });
         res.data.product.map((v) => {
-          ;(v.value = v.title), (v.label = v.title)
-        })
+          (v.value = v.title), (v.label = v.title);
+        });
         res.data.url_number.map((v) => {
-          var j = {}
-          j.value = v
-          j.label = v
-          j.title = v
-          this.arrList.push(j)
-        })
-        this.list[0].option = res.data.house
-        this.list[1].option = res.data.unit
-        this.list[2].option = res.data.layer
-        this.list[3].option = res.data.number_detail
-        this.list[4].option = res.data.part
-        this.list[5].option = res.data.produce
-        this.list[6].option = res.data.product
-        this.list[7].option = this.arrList
-      })
+          var j = {};
+          j.value = v;
+          j.label = v;
+          j.title = v;
+          this.arrList.push(j);
+        });
+        this.list[0].option = res.data.house;
+        this.list[1].option = res.data.unit;
+        this.list[2].option = res.data.layer;
+        this.list[3].option = res.data.number_detail;
+        this.list[4].option = res.data.part;
+        this.list[5].option = res.data.produce;
+        this.list[6].option = res.data.product;
+        this.list[7].option = this.arrList;
+      });
     },
     searchData(row) {},
     back() {
-      this.$router.go(-1)
+      this.$router.go(-1);
     },
     getData(row) {
-      this.axios('/api/orders_procedure_list', { params: row }).then((res) => {
-        this.logList = res.data.detail
-        this.tableData = res.data.list
-        this.total = res.data.total
-      })
+      this.axios("/api/orders_procedure_list", { params: row }).then((res) => {
+        this.logList = res.data.detail;
+        this.tableData = res.data.list;
+        this.total = res.data.total;
+      });
     },
     postData() {},
     changePage(e) {
-      this.pageIndex = e
-      this.proxyObj.page_index = e
-      this.getData(this.proxyObj)
+      this.pageIndex = e;
+      this.proxyObj.page_index = e;
+      this.getData(this.proxyObj);
     },
     selectTable(e) {
-      let result = []
-      e.forEach((v) => result.push(v.id))
-      this.selects = result
+      let result = [];
+      e.forEach((v) => result.push(v.id));
+      this.selects = result;
     },
     bingChip(row) {
-      this.showChip = true
-      this.chipInfo.pr_id = row.pr_id
+      this.showChip = true;
+      this.chipInfo.pr_id = row.pr_id;
     },
     vivibleModal(e) {
       if (!e) {
-        this.chipInfo = {}
+        this.chipInfo = {};
       }
     },
     saveChip() {
-      this.axios.post('/api/tag_bind', this.chipInfo).then((res) => {
+      this.axios.post("/api/tag_bind", this.chipInfo).then((res) => {
         if (res.code == 200) {
-          this.$Message.success(res.msg || '操作成功')
-          this.getData(this.proxyObj)
+          this.$Message.success(res.msg || "操作成功");
+          this.getData(this.proxyObj);
         }
-      })
+      });
     },
 
     batchDispatchOrder() {
       if (!this.selects || this.selects.length < 1) {
-        return this.$Message.error('请至少选择一项')
+        return this.$Message.error("请至少选择一项");
       }
       this.dispatchOrder({
-        params: { id: this.selects.join(',') },
+        params: { id: this.selects.join(",") },
         batch: true,
         then: () => {
-          this.getData(this.proxyObj)
+          this.getData(this.proxyObj);
         },
-      })
+      });
     },
     changeSize(e) {
-      this.pageSize = e
-      this.proxyObj.page_size = this.pageSize
-      this.getData(this.proxyObj)
+      this.pageSize = e;
+      this.proxyObj.page_size = this.pageSize;
+      this.getData(this.proxyObj);
     },
     goOriginalPage(row) {
       this.$router.push({
-        path: '/cms/rawmateria/index',
+        path: "/cms/rawmateria/index",
         query: {
           order_no: row.order_no,
           type: 4,
         },
-      })
+      });
     },
   },
-}
+};
 </script>
 
 <style lang="scss" scoped>

+ 341 - 195
src/views/ProductionOrderList/ProductionPlanlist/list.vue

@@ -1,65 +1,84 @@
 <template>
   <div>
-    <FullPage title='生产计划列表'
-              :list='set_list'
-              @init='init'
-              @searchData='searchData'
-              @selectTable='selectTable'
-              @changePage='changePage'
-              @changeSize='changeSize'
-              :tableColums='computedTable'
-              :tableData='tableData'
-              :showPage='false'
-              :page_index='page_index'
-              :total='total'>
-      <div slot='titleButton'>
-        <Button v-if='persimissionData["分类派工"]||persimissionData.all'
-                type="primary"
-                style="margin-right:10px"
-                @click="handleDispatchType(selects)"
-                ghost>分类派工</Button>
-        <Button v-if='persimissionData["批量派工单"]||persimissionData.all'
-                type="primary"
-                @click="dispatchList(selects)"
-                ghost>批量派工单</Button>
+    <FullPage
+      title="生产计划列表"
+      :list="set_list"
+      @init="init"
+      @searchData="searchData"
+      @selectTable="selectTable"
+      @changePage="changePage"
+      @changeSize="changeSize"
+      :tableColums="computedTable"
+      :tableData="tableData"
+      :showPage="false"
+      :page_index="page_index"
+      :total="total"
+    >
+      <div slot="titleButton">
+        <Button
+          v-if="persimissionData['分类派工'] || persimissionData.all"
+          type="primary"
+          style="margin-right:10px"
+          @click="handleDispatchType(selects)"
+          ghost
+          >分类派工</Button
+        >
+        <Button
+          v-if="persimissionData['批量派工单'] || persimissionData.all"
+          type="primary"
+          @click="dispatchList(selects)"
+          ghost
+          >批量派工单</Button
+        >
       </div>
 
-      <div slot='navButton'>
-        <Button v-if='persimissionData["表头设置"]||persimissionData.all'
-                @click="setupTableHeader"
-                type="primary"
-                ghost
-                icon='ios-cog'>表头设置</Button>
+      <div slot="navButton">
+        <Button
+          v-if="persimissionData['表头设置'] || persimissionData.all"
+          @click="setupTableHeader"
+          type="primary"
+          ghost
+          icon="ios-cog"
+          >表头设置</Button
+        >
       </div>
-      <template slot="basicTypeSet"
-                slot-scope="{row}">
+      <template slot="basicTypeSet" slot-scope="{ row }">
         <div>
-          <span v-for="item in warningList"
-                :key="item.id"
-                :style="{color:item.color}"
-                v-show="item.id==row.warning_state">{{item.title}}</span>
+          <span
+            v-for="item in warningList"
+            :key="item.id"
+            :style="{ color: item.color }"
+            v-show="item.id == row.warning_state"
+            >{{ item.title }}</span
+          >
         </div>
       </template>
-      <template slot='set'
-                slot-scope='{row}'>
+      <template slot="set" slot-scope="{ row }">
         <div>
-          <a v-if='persimissionData["详情"]||persimissionData.all'
-             style="margin:0 5px"
-             @click="goDetial(row)">详情</a>
-          <a v-if='persimissionData["派工单"]||persimissionData.all'
-             style="margin:0 5px"
-             @click="dispatchList(row)">派工单</a>
+          <a
+            v-if="persimissionData['详情'] || persimissionData.all"
+            style="margin:0 5px"
+            @click="goDetial(row)"
+            >详情</a
+          >
+          <a
+            v-if="persimissionData['派工单'] || persimissionData.all"
+            style="margin:0 5px"
+            @click="dispatchList(row)"
+            >派工单</a
+          >
         </div>
       </template>
-      
 
       <div>
-        <Modal :width='1064'
-               class-name="vertical-center-modal"
-               v-model="showTableColums"
-               title='设置表头'>
+        <Modal
+          :width="1064"
+          class-name="vertical-center-modal"
+          v-model="showTableColums"
+          title="设置表头"
+        >
           <Form>
-            <FormItem label='订单信息:'>
+            <FormItem label="订单信息:">
               <div style="width:100%;display:flex;">
                 <CheckboxGroup style="width:100%">
                   <Checkbox label="香蕉"></Checkbox>
@@ -69,20 +88,21 @@
                 </CheckboxGroup>
               </div>
             </FormItem>
-             
           </Form>
         </Modal>
       </div>
       <template slot="pageSlot">
         <div class="pageSlotStyle">
-          <Page :page-size-opts="[10, 20, 30, 40,100,1000]"
-                @on-page-size-change='changeSize'
-                @on-change='changePage'
-                :current='page_index'
-                show-total
-                :total="total"
-                show-sizer
-                :page-size='page_size' />
+          <Page
+            :page-size-opts="[10, 20, 30, 40, 100, 1000]"
+            @on-page-size-change="changeSize"
+            @on-change="changePage"
+            :current="page_index"
+            show-total
+            :total="total"
+            show-sizer
+            :page-size="page_size"
+          />
         </div>
       </template>
     </FullPage>
@@ -90,49 +110,102 @@
 </template>
 
 <script>
-import { mapState } from 'vuex'
+import { mapState } from "vuex";
 export default {
-  data () {
+  data() {
     return {
       tableColums: [
-        { type: 'selection', title: '全选', key: 'selection', fixed: 'left', width: '90', align: 'center' },
-        { title: '订单编号', align: 'center', key: 'order_no', minWidth: 200 },
-        { title: '计划单号', align: 'center', key: 'plan_no', minWidth: 200 },
         {
-          title: '订单类型', align: 'center', key: 'order_type', minWidth: 150,
-          render (h, params) {
-            return h('span', {}, params.row.order_type == 1 ? '工装' : '家装')
-          }
+          type: "selection",
+          title: "全选",
+          key: "selection",
+          fixed: "left",
+          width: "90",
+          align: "center",
         },
+        { title: "订单编号", align: "center", key: "order_no", minWidth: 200 },
+        { title: "计划单号", align: "center", key: "plan_no", minWidth: 200 },
         {
-          title: '订单状态', align: 'center', key: 'state', minWidth: 150,
-          render: (h, params) => h('span', {},
-              (params.row.state == 0 ? '未派工'
-                : params.row.state == 1 ? '未派工'
-                  : params.row.state == 2 ? '已派工'
-                    : (params.row.state == 3 ? '完工':''))
-          )
+          title: "订单类型",
+          align: "center",
+          key: "order_type",
+          minWidth: 150,
+          render(h, params) {
+            return h("span", {}, params.row.order_type == 1 ? "工装" : "家装");
+          },
+        },
+        {
+          title: "订单状态",
+          align: "center",
+          key: "state",
+          minWidth: 150,
+          render: (h, params) =>
+            h(
+              "span",
+              {},
+              params.row.state == 0
+                ? "未派工"
+                : params.row.state == 1
+                ? "已派工"
+                : params.row.state == 2
+                ? "完工"
+                : ""
+            ),
+        },
+        { title: "业务员", align: "center", key: "nickname", minWidth: 150 },
+        {
+          title: "紧急程度",
+          align: "center",
+          key: "warning_state",
+          minWidth: 150,
+          slot: "basicTypeSet",
+        },
+        {
+          title: "项目名称",
+          align: "center",
+          key: "residential_name",
+          minWidth: 200,
+        },
+        {
+          title: "计划开始时间",
+          align: "center",
+          minWidth: 200,
+          key: "plan_start_time",
+          render: (h, params) =>
+            h("span", {}, this.func.replaceDate(params.row.plan_start_time, 1)),
         },
-        { title: '业务员', align: 'center', key: 'nickname', minWidth: 150 },
-        { title: '紧急程度', align: 'center', key: 'warning_state', minWidth: 150, slot: 'basicTypeSet', },
-        { title: '小区', align: 'center', key: 'residential_name', minWidth: 200 },
         {
-          title: '计划开始时间', align: 'center', minWidth: 200, key: 'plan_start_time',
-          render: (h, params) => h('span', {}, this.func.replaceDate(params.row.plan_start_time, 1))
+          title: "计划结束时间",
+          align: "center",
+          minWidth: 200,
+          key: "plan_end_time",
+          render: (h, params) =>
+            h("span", {}, this.func.replaceDate(params.row.plan_end_time, 1)),
         },
         {
-          title: '计划结束时间', align: 'center', minWidth: 200, key: 'plan_end_time',
-          render: (h, params) => h('span', {}, this.func.replaceDate(params.row.plan_end_time, 1))
+          title: "生产进度",
+          align: "center",
+          key: "complete_rate",
+          minWidth: 100,
+          render: (h, params) =>
+            h("span", {}, parseInt(params.row.complete_rate * 100) + "%"),
         },
         {
-          title: '生产进度', align: 'center', key: 'complete_rate', minWidth: 100,
-          render: (h, params) => h('span', {}, parseInt(params.row.complete_rate * 100) + '%')
+          title: "预估交付日期",
+          align: "center",
+          key: "predict_time",
+          minWidth: 200,
+          render: (h, params) =>
+            h("span", {}, this.func.replaceDate(params.row.predict_time, 1)),
         },
         {
-          title: '预估交付日期', align: 'center', key: 'predict_time', minWidth: 200,
-          render: (h, params) => h('span', {}, this.func.replaceDate(params.row.predict_time, 1))
+          title: "操作",
+          align: "center",
+          key: "set",
+          slot: "set",
+          fixed: "right",
+          width: "150",
         },
-        { title: '操作', align: 'center', key: 'set', slot: 'set', fixed: 'right', width: '150' },
       ],
       tableData: [],
       page_index: 1,
@@ -144,48 +217,68 @@ export default {
       tableheaders: [],
       userList: [],
       //详情页返回保留搜索数据
-      corssPageData: localStorage.getItem('corssPageData') ? JSON.parse(localStorage.getItem('corssPageData')) : {},
+      corssPageData: localStorage.getItem("corssPageData")
+        ? JSON.parse(localStorage.getItem("corssPageData"))
+        : {},
       warningList: [],
-    }
+    };
   },
-  beforeRouteEnter (to, from, next) {
-    next(vm => {
-      if (from.path != '/cms/productionorderlist/productionplanlist/details') {
-        localStorage.removeItem('corssPageData')
+  beforeRouteEnter(to, from, next) {
+    next((vm) => {
+      if (from.path != "/cms/productionorderlist/productionplanlist/details") {
+        localStorage.removeItem("corssPageData");
       } else {
-        vm.firstEnter = 1
+        vm.firstEnter = 1;
       }
     });
   },
-  beforeRouteLeave (to, from, next) {
-    if (to.path == '/cms/productionorderlist/productionplanlist/details') {
-      this.corssPageData.page_index = this.page_index,
-        this.corssPageData.page_size = this.page_size,
-        localStorage.setItem('corssPageData', JSON.stringify(this.corssPageData))
+  beforeRouteLeave(to, from, next) {
+    if (to.path == "/cms/productionorderlist/productionplanlist/details") {
+      (this.corssPageData.page_index = this.page_index),
+        (this.corssPageData.page_size = this.page_size),
+        localStorage.setItem(
+          "corssPageData",
+          JSON.stringify(this.corssPageData)
+        );
     } else {
-      localStorage.removeItem('corssPageData')
+      localStorage.removeItem("corssPageData");
     }
-    next(vm => {
-    });
+    next((vm) => {});
   },
-  created () {
+  created() {
     // 获取紧急程度
-    this.axios.get('/api/warning_list').then(res => { this.warningList = res.data.data })
-    this.axios.get('/api/employee_list').then(res => this.userList = res.data)
+    this.axios.get("/api/warning_list").then((res) => {
+      this.warningList = res.data.data;
+    });
+    this.axios
+      .get("/api/employee_list")
+      .then((res) => (this.userList = res.data));
     //this.axios.get('/api/employee_list').then(res => { this.employeeList = res.data })
   },
   computed: {
-    ...mapState(['persimissionData']),
-    computedTable () {
+    ...mapState(["persimissionData"]),
+    computedTable() {
       // if (this.tableheaders.length < 1) {
-      return this.tableColums
+      return this.tableColums;
       // }
       // return this.func.computedHeader(this.tableheaders, this.tableColums)
     },
-    set_list () {
+    set_list() {
       return [
-        { title: '订单编号', name: 'Input', serverName: 'order_no', placeholder: '请输入订单编号', value: '' },
-        { title: '小区名字', name: 'Input', serverName: 'residential_name', placeholder: '请选择', value: '' },
+        {
+          title: "订单编号",
+          name: "Input",
+          serverName: "order_no",
+          placeholder: "请输入订单编号",
+          value: "",
+        },
+        {
+          title: "小区名字",
+          name: "Input",
+          serverName: "residential_name",
+          placeholder: "请选择",
+          value: "",
+        },
         {
           title: "订单类型",
           name: "Select",
@@ -197,143 +290,196 @@ export default {
             { label: "家装", value: 0 },
           ],
         },
-        { title: '计划单号', name: 'Input', serverName: 'plan_no', placeholder: '请填写计划单号', value: '' },
-         {
-          title: '业务员', name: 'Select', serverName: 'nickname', placeholder: '请选择', value: '', optionName: 'nickname', optionValue: 'id',
-          option: this.userList
+        {
+          title: "计划单号",
+          name: "Input",
+          serverName: "plan_no",
+          placeholder: "请填写计划单号",
+          value: "",
         },
-        { title: '计划开始时间', name: 'Input', start_server: 'start_time', end_server: 'end_time', start_value: '', end_value: '', isDate: true, serverName: 'id2', start_placeholder: '开始日期', end_placeholder: '结束日期' },
         {
-          title: '紧急程度', name: 'Select', serverName: 'warning_state', placeholder: '请选择', value: '', optionName: 'title', optionValue: 'id',
-          option: this.warningList
+          title: "业务员",
+          name: "Select",
+          serverName: "nickname",
+          placeholder: "请选择",
+          value: "",
+          optionName: "nickname",
+          optionValue: "id",
+          option: this.userList,
         },
         {
-          title: '订单状态', name: 'Select', placeholder: '请选择', serverName: 'state', value: '',
+          title: "计划开始时间",
+          name: "Input",
+          start_server: "start_time",
+          end_server: "end_time",
+          start_value: "",
+          end_value: "",
+          isDate: true,
+          serverName: "id2",
+          start_placeholder: "开始日期",
+          end_placeholder: "结束日期",
+        },
+        {
+          title: "紧急程度",
+          name: "Select",
+          serverName: "warning_state",
+          placeholder: "请选择",
+          value: "",
+          optionName: "title",
+          optionValue: "id",
+          option: this.warningList,
+        },
+        {
+          title: "订单状态",
+          name: "Select",
+          placeholder: "请选择",
+          serverName: "state",
+          value: "",
           option: [
-            { label: '未派工', value: '0,1' },
-            { label: '已派工', value: 2 },
-            { label: '完成', value: 3 },
-          ]
+            { label: "未派工", value: 0 },
+            { label: "已派工", value: 1 },
+            { label: "完成", value: 2 },
+          ],
         },
-      ]
-    }
+      ];
+    },
   },
   methods: {
-    init (row) {
-      const { order_no } = this.$route.query
+    init(row) {
+      const { order_no } = this.$route.query;
       if (order_no) {
-        row.order_no = order_no
-        this.set_list[0].value = order_no
+        row.order_no = order_no;
+        this.set_list[0].value = order_no;
       }
       row.sub_state = 5;
       if (this.firstEnter == 1) {
-        this.corssPageData = JSON.parse(localStorage.getItem('corssPageData'))
-        row = this.corssPageData
-        this.proxyObj = row
-        this.searchData(row)
+        this.corssPageData = JSON.parse(localStorage.getItem("corssPageData"));
+        row = this.corssPageData;
+        this.proxyObj = row;
+        this.searchData(row);
       } else {
-        this.page_index = 1
+        this.page_index = 1;
         row.page_index = this.page_index;
         row.page_size = this.page_size;
-        this.proxyObj = row
-        this.getData(row)
+        this.proxyObj = row;
+        this.getData(row);
       }
     },
-    searchData (row) {
+    searchData(row) {
       if (this.firstEnter == 1) {
         this.page_index = this.corssPageData.page_index;
         this.page_size = this.corssPageData.page_size;
-        this.set_list[0].value = this.corssPageData.order_no
-        this.set_list[1].value = this.corssPageData.residential_name
-        this.set_list[3].value = this.corssPageData.warning_state
-        this.set_list[4].value = this.corssPageData.state
-        this.set_list[2].start_value = this.corssPageData.start_time ? this.corssPageData.start_time : ''
-        this.set_list[2].end_value = this.corssPageData.end_time ? this.corssPageData.end_time : ''
-        this.corssPageData.type = this.$route.query.type
-        this.getData(this.corssPageData)
+        this.set_list[0].value = this.corssPageData.order_no;
+        this.set_list[1].value = this.corssPageData.residential_name;
+        this.set_list[3].value = this.corssPageData.warning_state;
+        this.set_list[4].value = this.corssPageData.state;
+        this.set_list[2].start_value = this.corssPageData.start_time
+          ? this.corssPageData.start_time
+          : "";
+        this.set_list[2].end_value = this.corssPageData.end_time
+          ? this.corssPageData.end_time
+          : "";
+        this.corssPageData.type = this.$route.query.type;
+        this.getData(this.corssPageData);
       } else {
-        this.page_index = 1
+        this.page_index = 1;
         row.page_index = this.page_index;
         row.page_size = this.page_size;
-        this.corssPageData.order_no = this.set_list[0].value
-        this.corssPageData.residential_name = this.set_list[1].value
-        this.corssPageData.warning_state = this.set_list[3].value
-        this.corssPageData.state = this.set_list[4].value
-        this.corssPageData.start_time = this.func.setDate(this.set_list[2].start_value)
-        this.corssPageData.end_time = this.func.setDate(this.set_list[2].end_value)
-        this.proxyObj = row
-        this.getData(row)
+        this.corssPageData.order_no = this.set_list[0].value;
+        this.corssPageData.residential_name = this.set_list[1].value;
+        this.corssPageData.warning_state = this.set_list[3].value;
+        this.corssPageData.state = this.set_list[4].value;
+        this.corssPageData.start_time = this.func.setDate(
+          this.set_list[2].start_value
+        );
+        this.corssPageData.end_time = this.func.setDate(
+          this.set_list[2].end_value
+        );
+        this.proxyObj = row;
+        this.getData(row);
       }
     },
-    changePage (e) {
+    changePage(e) {
       this.page_index = e;
       this.proxyObj.page_index = this.page_index;
       this.proxyObj.page_size = this.page_size;
-      this.getData(this.proxyObj)
+      this.getData(this.proxyObj);
     },
-    changeSize (e) {
+    changeSize(e) {
       this.page_size = e;
       this.proxyObj.page_size = this.page_size;
-      this.getData(this.proxyObj)
+      this.getData(this.proxyObj);
     },
-    getData (row) {
-      this.axios('/api/orders_produce_plan_list', { params: row }).then(res => {
-        this.firstEnter++
-        this.tableData = res.data.data;
-        this.total = res.data.total;
-        // this.tableheaders = res.data.tableSet || []
-      })
+    getData(row) {
+      this.axios("/api/orders_produce_plan_list", { params: row }).then(
+        (res) => {
+          this.firstEnter++;
+          this.tableData = res.data.data;
+          this.total = res.data.total;
+          // this.tableheaders = res.data.tableSet || []
+        }
+      );
     },
-    setTableColums () {//设置表头
+    setTableColums() {
+      //设置表头
       this.showTableColums = true;
     },
-    goDetial (row) {
+    goDetial(row) {
       this.$router.push({
-        path: '/cms/productionorderlist/productionplanlist/details',
+        path: "/cms/productionorderlist/productionplanlist/details",
         query: {
           order_no: row.order_no,
-          plan_no: row.plan_no
-        }
-      })
+          plan_no: row.plan_no,
+        },
+      });
     },
-    handleDispatchType (row) {
-      console.log('row :>> ', row);
+    handleDispatchType(row) {
+      console.log("row :>> ", row);
       this.$router.push({
-        path: '/cms/Dispatching/Dispatching',
+        path: "/cms/Dispatching/Dispatching",
         query: {
           order_no: row.order_no,
-          plan_no: row.plan_no
-        }
-      })
+          plan_no: row.plan_no,
+        },
+      });
     },
-    dispatchList (row) {
+    dispatchList(row) {
       this.dispatchOrder({
-        params: { order_no: Array.isArray(row) ? this.selects.join(',') : row.order_no },
-        then: () => this.getData(this.proxyObj)
-      })
+        params: {
+          order_no: Array.isArray(row) ? this.selects.join(",") : row.order_no,
+        },
+        then: () => this.getData(this.proxyObj),
+      });
     },
-    selectTable (e) {
-      let result = []
-      e.map(v => result.push(v.order_no))
+    selectTable(e) {
+      let result = [];
+      e.map((v) => result.push(v.order_no));
       this.selects = result;
     },
-    setupTableHeader () {
-      this.tableheaders.length < 1 ? this.tableheaders = this.tableColums.reduce((pre, cur) => pre.concat(cur.key), []) : ''
+    setupTableHeader() {
+      this.tableheaders.length < 1
+        ? (this.tableheaders = this.tableColums.reduce(
+            (pre, cur) => pre.concat(cur.key),
+            []
+          ))
+        : "";
       this.$setTableheader({
         list: this.tableColums,
         selects: this.tableheaders,
         then: (result) => {
-          this.tableheaders = result
-          this.axios.post('/api/update/table', { id: this.$route.query.id, result }).then(res => {
-            if (res.code == 200) {
-              this.$Message.success(res.msg)
-            }
-          })
-        }
-      })
+          this.tableheaders = result;
+          this.axios
+            .post("/api/update/table", { id: this.$route.query.id, result })
+            .then((res) => {
+              if (res.code == 200) {
+                this.$Message.success(res.msg);
+              }
+            });
+        },
+      });
     },
-  }
-}
+  },
+};
 </script>
 
 <style lang="scss" scoped>
@@ -342,4 +488,4 @@ export default {
   justify-content: center;
   margin-top: 40px;
 }
-</style>
+</style>

+ 1 - 0
src/views/ProductionOrderList/ProductionsOrder/Decorationlist.vue

@@ -726,6 +726,7 @@ export default {
         this.list[1].option = res.data.unit
         this.list[2].option = res.data.layer
         this.list[3].option = res.data.number_detail
+        this.list[4].option = res.data.part
         this.list[5].option = res.data.product
         this.list[9].option = this.arrList
       })

+ 14 - 15
src/views/ProductionOrderList/ProductionsOrder/list.vue

@@ -97,29 +97,28 @@ export default {
                 : (params.row.state == 2 ? '计划完成' : '全部'))
           )
         },
-        { title: '小区', align: 'center', key: 'residential_name', minWidth: 200 },
+        { title: '项目名称', align: 'center', key: 'residential_name', minWidth: 200 },
         { title: '地址', align: 'center', key: 'address', minWidth: 200 },
         { title: '客户姓名', align: 'center', key: 'client_name', minWidth: 200 },
         { title: '手机号', align: 'center', key: 'mobile', minWidth: 200 },
-        { title: '测量人员', align: 'center', key: 'nickname', minWidth: 200 },
+        // { title: '测量人员', align: 'center', key: 'nickname', minWidth: 200 },
         { title: '紧急程度', align: 'center', key: 'warning_state', minWidth: 100, slot: 'basicTypeSet', },
         {
           title: '下单日期', align: 'center', minWidth: 200, key: 'crt_time',
           render: (h, params) => h('span', {}, this.func.replaceDate(params.row.crt_time * 1))
         },
-
-        {
-          title: '测量开始日期', align: 'center', minWidth: 200, key: 'measure_start_time',
-          render: (h, params) => h('span', {}, this.func.replaceDate(params.row.measure_start_time * 1, 1))
-        },
-        {
-          title: '测量结束日期', align: 'center', minWidth: 200, key: 'measure_end_time',
-          render: (h, params) => h('span', {}, this.func.replaceDate(params.row.measure_end_time * 1, 1))
-        },
-        {
-          title: '实际测量时间', align: 'center', minWidth: 200, key: 'measure_time',
-          render: (h, params) => h('span', {}, this.func.replaceDate(params.row.measure_time * 1))
-        },
+        // {
+        //   title: '测量开始日期', align: 'center', minWidth: 200, key: 'measure_start_time',
+        //   render: (h, params) => h('span', {}, this.func.replaceDate(params.row.measure_start_time * 1, 1))
+        // },
+        // {
+        //   title: '测量结束日期', align: 'center', minWidth: 200, key: 'measure_end_time',
+        //   render: (h, params) => h('span', {}, this.func.replaceDate(params.row.measure_end_time * 1, 1))
+        // },
+        // {
+        //   title: '实际测量时间', align: 'center', minWidth: 200, key: 'measure_time',
+        //   render: (h, params) => h('span', {}, this.func.replaceDate(params.row.measure_time * 1))
+        // },
         { title: '操作', align: 'center', key: 'set', slot: 'set', fixed: 'right', width: '320' },
       ],
       tableData: [],

+ 1 - 1
vue.config.js

@@ -2,7 +2,7 @@ const axios_default_ip =
     process.env.NODE_ENV == 'dev' ?
     'http://121.41.102.225:82' :
     process.env.NODE_ENV == 'test-prd' ?
-    'http://124.71.176.88:882' //测试服
+    'http://121.41.102.225:82' //测试服
     :
     process.env.NODE_ENV == 'prd_other' ?
     'http://121.37.173.82:82' //森兰九鼎