Bläddra i källkod

更改原材料仓鼠标移动显示问题

mushencc 3 år sedan
förälder
incheckning
6ccbe45c00
1 ändrade filer med 623 tillägg och 376 borttagningar
  1. 623 376
      src/views/PurchasingManage/RequisitionOrder/edit.vue

+ 623 - 376
src/views/PurchasingManage/RequisitionOrder/edit.vue

@@ -1,247 +1,349 @@
 <template>
   <div>
-    <Toptitle :title="$route.query.type==1?'新增请购单':'请购单详情'">
+    <Toptitle :title="$route.query.type == 1 ? '新增请购单' : '请购单详情'">
       <slot name="titleButton">
-        <Button @click="goBack"
-                type="primary"
-                ghost
-                style="margin-right:10px;">返回</Button>
-        <Button @click="postData"
-                type="primary"
-                v-show="!isCheck"
-                ghost
-                style="margin-right:10px;">确定</Button>
+        <Button @click="goBack" type="primary" ghost style="margin-right: 10px"
+          >返回</Button
+        >
+        <Button
+          @click="postData"
+          type="primary"
+          v-show="!isCheck"
+          ghost
+          style="margin-right: 10px"
+          >确定</Button
+        >
       </slot>
     </Toptitle>
     <div class="content_topform">
-      <Form :label-width="90"
-            :model="searchData">
+      <Form :label-width="90" :model="searchData">
         <FormItem label="项目名称:">
-          <Input type="text"
-                 size="small"
-                 v-show="!isCheck"
-                 v-model="searchData.client_name"
-                 style="width: 200px;margin-top:6px"
-                 placeholder="项目名称">
-          <span slot="append"
-                style="cursor:pointer;"
-                @click="showProjectModal=true">选择</span>
+          <Input
+            type="text"
+            size="small"
+            v-show="!isCheck"
+            v-model="searchData.client_name"
+            style="width: 200px; margin-top: 6px"
+            placeholder="项目名称"
+          >
+            <span
+              slot="append"
+              style="cursor: pointer"
+              @click="showProjectModal = true"
+              >选择</span
+            >
           </Input>
-          <span v-show="isCheck">{{searchData.client_name}}</span>
+          <span v-show="isCheck">{{ searchData.client_name }}</span>
         </FormItem>
         <FormItem label="请购类型:">
-          <Select v-model="searchData.type_id"
-                  size="small"
-                  clearable
-                  v-show="!isCheck"
-                  filterable
-                  label-in-value
-                  style="width: 200px">
-            <Option v-for="(sitem) in purchaseTypeList"
-                    :key="sitem.id"
-                    :label="sitem.title"
-                    :value="sitem.id">
+          <Select
+            v-model="searchData.type_id"
+            size="small"
+            clearable
+            v-show="!isCheck"
+            filterable
+            label-in-value
+            style="width: 200px"
+          >
+            <Option
+              v-for="sitem in purchaseTypeList"
+              :key="sitem.id"
+              :label="sitem.title"
+              :value="sitem.id"
+            >
             </Option>
           </Select>
-          <span v-for="item in purchaseTypeList"
-                :key="item.id"
-                v-show="item.id==searchData.type_id&&isCheck">{{item.title}}</span>
+          <span
+            v-for="item in purchaseTypeList"
+            :key="item.id"
+            v-show="item.id == searchData.type_id && isCheck"
+            >{{ item.title }}</span
+          >
         </FormItem>
         <FormItem label="单据号:">
-          <Input type="text"
-                 size="small"
-                 v-show="!isCheck"
-                 v-model="searchData.purchase_order_apply_no"
-                 readonly
-                 style="width: 200px"
-                 placeholder="自动生成">
+          <Input
+            type="text"
+            size="small"
+            v-show="!isCheck"
+            v-model="searchData.purchase_order_apply_no"
+            readonly
+            style="width: 200px"
+            placeholder="自动生成"
+          >
           </Input>
-          <span v-show="isCheck">{{searchData.purchase_order_apply_no}}</span>
+          <span v-show="isCheck">{{ searchData.purchase_order_apply_no }}</span>
         </FormItem>
         <FormItem label="制单时间:">
-          <DatePicker type="date"
-                      v-show="!isCheck"
-                      size="small"
-                      style="width: 200px"
-                      placeholder="年/月/日"
-                      v-model="searchData.time"></DatePicker>
-          <span v-show="isCheck">{{func.replaceDate(searchData.time)}}</span>
+          <DatePicker
+            type="date"
+            v-show="!isCheck"
+            size="small"
+            style="width: 200px"
+            placeholder="年/月/日"
+            v-model="searchData.time"
+          ></DatePicker>
+          <span v-show="isCheck">{{ func.replaceDate(searchData.time) }}</span>
         </FormItem>
         <FormItem label="备注">
-          <Input type="textarea"
-                 v-show="!isCheck"
-                 size="small"
-                 v-model="searchData.remark"
-                 style="width: 200px"
-                 placeholder="备注">
+          <Input
+            type="textarea"
+            v-show="!isCheck"
+            size="small"
+            v-model="searchData.remark"
+            style="width: 200px"
+            placeholder="备注"
+          >
           </Input>
-          <span v-show="isCheck">{{searchData.remark}}</span>
+          <span v-show="isCheck">{{ searchData.remark }}</span>
         </FormItem>
       </Form>
     </div>
     <div class="content_table">
       <div class="content_table_btn">
         <span>请购清单</span>
-        <Button @click="showModal=true"
-                type="primary"
-                v-show="!isCheck"
-                size="small"
-                style="margin-left:10px;">选择物料</Button>
+        <Button
+          @click="showModal = true"
+          type="primary"
+          v-show="!isCheck"
+          size="small"
+          style="margin-left: 10px"
+          >选择物料</Button
+        >
       </div>
-      <Table :columns="tableColumns"
-             border
-             :data="tableData">
-        <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>
-          </div>
+      <Table :columns="tableColumns" border :data="tableData">
+        <template slot="materiel_specs" slot-scope="{ row }">
+         
+            <div>
+              {{ row.long ? row.long : 0 }}*{{ row.width ? row.width : 0 }}*{{
+                row.high ? row.high : 0
+              }}
+        </div>
         </template>
-        <template slot="numberSet"
-                  slot-scope="{index}">
-          <Input type="text"
-                 v-show="!isCheck"
-                 size="small"
-                 v-model="tableData[index].num"
-                 placeholder="数量">
-          </Input>
-          <span v-show="isCheck">{{tableData[index].num}}</span>
+        <template slot="materiel_sort" slot-scope="{ index }">
+            <Input
+              type="text"
+              v-show="!isCheck"
+              size="small"
+              v-model="tableData[index].type_title"
+              placeholder="数量"
+            >
+            </Input>
+            <span v-show="isCheck">{{ tableData[index].type_title }}</span>
         </template>
-        <template slot="arrive_timeSet"
-                  slot-scope="{index}">
-          <DatePicker type="date"
-                      size="small"
-                      v-show="!isCheck"
-                      placeholder="年/月/日"
-                      v-model="tableData[index].time"></DatePicker>
-          <span v-show="isCheck">{{func.replaceDate(tableData[index].time)}}</span>
+        <template slot="materiel_name" slot-scope="{ index }">
+            <Input
+              type="text"
+              v-show="!isCheck"
+              size="small"
+              v-model="tableData[index].title"
+              placeholder="数量"
+            >
+            </Input>
+            <span v-show="isCheck">{{ tableData[index].title }}</span>
         </template>
-        <template slot="supply_idSet"
-                  slot-scope="{index}">
-          <Select v-model="tableData[index].supply_id"
-                  size="small"
-                  clearable
-                  v-show="!isCheck"
-                  filterable
-                  label-in-value>
-            <Option v-for="(sitem) in suppliersList"
-                    :key="sitem.id"
-                    :label="sitem.title"
-                    :value="sitem.id">
-            </Option>
-          </Select>
-          <span v-for="item in suppliersList"
-                :key="item.id"
-                v-show="item.id==tableData[index].supply_id&&isCheck">{{item.title}}</span>
+        <template slot="numberSet" slot-scope="{row , index }">
+           <Tooltip
+            placement="left"
+            @on-popper-show="handleToolShow(index, row)"
+          >
+            <div slot="content">
+              <div>
+                <div v-for="(_item,_index) in row.warehouse_list" :key="_index">
+                  {{_item.warehouse_title}}:{{_item.num}}
+                </div>
+              </div>
+            </div>
+            <Input
+              type="text"
+              v-show="!isCheck"
+              size="small"
+              v-model="tableData[index].num"
+              placeholder="数量"
+            >
+            </Input>
+            <span v-show="isCheck">{{ tableData[index].num }}</span>
+          </Tooltip>
+        </template>
+        <template slot="arrive_timeSet" slot-scope="{ index }">
+            <DatePicker
+              type="date"
+              size="small"
+              transfer
+              v-show="!isCheck"
+              placeholder="年/月/日"
+              v-model="tableData[index].time"
+            ></DatePicker>
+            <span v-show="isCheck">{{
+              func.replaceDate(tableData[index].time)
+            }}</span>
         </template>
-        <template slot="setSlot"
-                  slot-scope="{row,index}">
-          <a style="margin:0 5px"
-             :disabled="row.state==0"
-             v-show="!isCheck"
-             @click="handleSet(1,row,index)">删除</a>
+        <template slot="supply_idSet" slot-scope="{ index }">
+            <Select
+              v-model="tableData[index].supply_id"
+              size="small"
+              clearable
+              transfer
+              v-show="!isCheck"
+              filterable
+              label-in-value
+            >
+              <Option
+                v-for="sitem in suppliersList"
+                :key="sitem.id"
+                :label="sitem.title"
+                :value="sitem.id"
+              >
+              </Option>
+            </Select>
+            <span
+              v-for="item in suppliersList"
+              :key="item.id"
+              v-show="item.id == tableData[index].supply_id && isCheck"
+              >{{ item.title }}</span>
+        </template>
+        <template slot="setSlot" slot-scope="{ row, index }">
+            <a
+              style="margin: 0 5px"
+              :disabled="row.state == 0"
+              v-show="!isCheck"
+              @click="handleSet(1, row, index)"
+              >删除</a>
         </template>
       </Table>
     </div>
-    <Modal v-model="showModal"
-           title="选择物料"
-           width='80'
-           @on-ok="handleSelect"
-           @on-cancel="showModal=false">
+    <Modal
+      v-model="showModal"
+      title="选择物料"
+      width="80"
+      @on-ok="handleSelect"
+      @on-cancel="showModal = false"
+    >
       <div class="modal_content">
         <div class="modal_content_left">
-          <Tree :data="modalData.treeData"
-                children-key='list'
-                style="width:100%;"
-                @on-select-change="handleTreeSlect"
-                class="demo-tree-render"></Tree>
+          <Tree
+            :data="modalData.treeData"
+            children-key="list"
+            style="width: 100%"
+            @on-select-change="handleTreeSlect"
+            class="demo-tree-render"
+          ></Tree>
         </div>
         <div class="modal_content_center">
           <div class="modal_content_center_top">
-            <div><span>物料名称:</span>
-              <Input type="text"
-                     v-model="modalData.title"
-                     placeholder="请输入物料名称" />
+            <div>
+              <span>物料名称:</span>
+              <Input
+                type="text"
+                v-model="modalData.title"
+                placeholder="请输入物料名称"
+              />
             </div>
-            <Button @click="initModal()"
-                    type="primary"
-                    style="margin:0 10px;">搜索</Button>
+            <Button @click="initModal()" type="primary" style="margin: 0 10px"
+              >搜索</Button
+            >
           </div>
           <div class="modal_content_center_body">
-            <Table :columns="modalTableColumns"
-                   height="520"
-                   border
-                   ref="modelTable"
-                   @on-select-all="handleSelectionAll"
-                   @on-select-all-cancel="handleSelectionAllCancel"
-                   @on-select="handleSelection"
-                   @on-select-cancel="handleSelectionCancel"
-                   :loading="modalTableLoading"
-                   :data="modalData.tableData">
+            <Table
+              :columns="modalTableColumns"
+              height="520"
+              border
+              ref="modelTable"
+              @on-select-all="handleSelectionAll"
+              @on-select-all-cancel="handleSelectionAllCancel"
+              @on-select="handleSelection"
+              @on-select-cancel="handleSelectionCancel"
+              :loading="modalTableLoading"
+              :data="modalData.tableData"
+            >
             </Table>
             <div class="modal_content_center_footer">
-              <Page :page-size-opts="[10, 20, 30, 40,100]"
-                    @on-page-size-change='changeModalSize'
-                    @on-change='changeModalPage'
-                    :current='modal_page_index'
-                    show-total
-                    :total="modal_total"
-                    show-sizer
-                    :page-size='modal_page_size' />
+              <Page
+                :page-size-opts="[10, 20, 30, 40, 100]"
+                @on-page-size-change="changeModalSize"
+                @on-change="changeModalPage"
+                :current="modal_page_index"
+                show-total
+                :total="modal_total"
+                show-sizer
+                :page-size="modal_page_size"
+              />
             </div>
           </div>
         </div>
         <div class="modal_content_right">
           <span>已选</span>
-          <Table :columns="selectedColumns"
-                 max-height="500"
-                 border
-                 :data="modalData.selectedData">
-            <template slot="selectedSetSlot"
-                      slot-scope="{row,index}">
-              <a style="margin:0 5px;color:red"
-                 @click="handleSelectedDele(row,index)">删除</a>
+          <Table
+            :columns="selectedColumns"
+            max-height="500"
+            border
+            :data="modalData.selectedData"
+          >
+            <template slot="selectedSetSlot" slot-scope="{ row, index }">
+              <a
+                style="margin: 0 5px; color: red"
+                @click="handleSelectedDele(row, index)"
+                >删除</a
+              >
             </template>
           </Table>
         </div>
       </div>
     </Modal>
-    <Modal v-model="showProjectModal"
-           title="选择项目"
-           width='80'
-           @on-ok="handleProjectSelect"
-           @on-cancel="showProjectModal=false">
+    <Modal
+      v-model="showProjectModal"
+      title="选择项目"
+      width="80"
+      @on-ok="handleProjectSelect"
+      @on-cancel="showProjectModal = false"
+    >
       <div class="modal_content">
         <div class="modal_content_center">
           <div class="modal_content_center_top">
             <span>项目名称:</span>
-            <Input type="text"
-                   v-model="modalProjectData.title"
-                   style="width:180px"
-                   placeholder="请输入物料名称" />
-            <Button @click="initProjectModal()"
-                    type="primary"
-                    style="margin:0 10px;">搜索</Button>
+            <Input
+              type="text"
+              v-model="modalProjectData.title"
+              style="width: 180px"
+              placeholder="请输入物料名称"
+            />
+            <Button
+              @click="initProjectModal()"
+              type="primary"
+              style="margin: 0 10px"
+              >搜索</Button
+            >
           </div>
           <div class="modal_content_center_body">
-            <Table :columns="modalProjectTableColumns"
-                   height="520"
-                   border
-                   :loading="modalProjectTableLoading"
-                   :data="modalProjectData.tableData">
+            <Table
+              :columns="modalProjectTableColumns"
+              height="520"
+              border
+              :loading="modalProjectTableLoading"
+              :data="modalProjectData.tableData"
+            >
+              <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
+                  >
+                </div>
+              </template>
             </Table>
             <div class="modal_content_center_footer">
-              <Page :page-size-opts="[10, 20, 30, 40,100]"
-                    @on-page-size-change='changeProjectModalSize'
-                    @on-change='changeProjectModalPage'
-                    :current='modal_project_page_index'
-                    show-total
-                    :total="modal_project_total"
-                    show-sizer
-                    :page-size='modal_project_page_size' />
+              <Page
+                :page-size-opts="[10, 20, 30, 40, 100]"
+                @on-page-size-change="changeProjectModalSize"
+                @on-change="changeProjectModalPage"
+                :current="modal_project_page_index"
+                show-total
+                :total="modal_project_total"
+                show-sizer
+                :page-size="modal_project_page_size"
+              />
             </div>
           </div>
         </div>
@@ -255,88 +357,138 @@
 // 例如:import 《组件名称》 from '《组件路径》';
 
 export default {
-  name: '',
-  components: {
-
-  },
+  name: "",
+  components: {},
   props: {},
-  // import引入的组件需要注入到对象中才能使用 
-  data () {
+  // import引入的组件需要注入到对象中才能使用
+  data() {
     // 这里存放数据
     return {
       searchData: {
-        type_id: '',
+        type_id: "",
         time: null,
-        remark: ''
+        remark: "",
       },
       purchaseTypeList: [],
       tableColumns: [
-        { title: '物料分类', key: 'type_title', align: 'center', minWidth: 120 },
-        { title: '物料名称', key: 'title', align: 'center', minWidth: 140 },
         {
-          title: '物料规格', key: 'model', align: 'center', minWidth: 100,
-          render: (h, params) => {
-            const { row } = params
-            let text = `${row.long ? row.long : 0}*${row.width ? row.width : 0}*${row.high ? row.high : 0}`
-            return h('span', {}, text)
-          }
+          title: "物料分类",
+          key: "type_title",
+          align: "center",
+          minWidth: 120,
+          slot: "materiel_sort",
+        },
+        {
+          title: "物料名称",
+          key: "title",
+          align: "center",
+          minWidth: 140,
+          slot: "materiel_name",
+        },
+        {
+          title: "物料规格",
+          key: "model",
+          align: "center",
+          minWidth: 100,
+          // render: (h, params) => {
+          //   const { row } = params
+          //   let text = `${row.long ? row.long : 0}*${row.width ? row.width : 0}*${row.high ? row.high : 0}`
+          //   return h('span', {
+          //   }, text)
+          // },
+          slot: "materiel_specs",
+        },
+        { title: "计量单位", key: "unit", align: "center", minWidth: 100 },
+        {
+          title: "请购数量",
+          key: "num",
+          align: "center",
+          minWidth: 100,
+          slot: "numberSet",
+        },
+        {
+          title: "预计到货时间",
+          key: "time",
+          align: "center",
+          minWidth: 180,
+          slot: "arrive_timeSet",
+        },
+        {
+          title: "建议供应商",
+          key: "supply_id",
+          align: "center",
+          minWidth: 180,
+          transfer: true,
+          slot: "supply_idSet",
+        },
+        {
+          title: "操作",
+          key: "code",
+          align: "center",
+          minWidth: 80,
+          slot: "setSlot",
         },
-        { title: '计量单位', key: 'unit', align: 'center', minWidth: 100 },
-        { title: '请购数量', key: 'num', align: 'center', minWidth: 100, slot: 'numberSet' },
-        { title: '预计到货时间', key: 'time', align: 'center', minWidth: 180, slot: 'arrive_timeSet' },
-        { title: '建议供应商', key: 'supply_id', align: 'center', minWidth: 180, slot: 'supply_idSet' },
-        { title: '操作', key: 'code', align: 'center', minWidth: 80, slot: 'setSlot' },
       ],
       tableData: [],
       showModal: false,
       showProjectModal: false,
       modalData: {
-        title: '',
+        title: "",
         tableData: [{}],
         selectedData: [],
         treeData: [
           {
-            title: '物料分类',
+            title: "物料分类",
             expand: true,
             list: [],
             render: (h, { root, node, data }) => {
-              return h('span', {
-                style: {
-                  display: 'inline-block',
-                  width: '100%'
-                }
-              }, [
-                h('span', [
-                  h('Icon', {
-                    props: {
-                      type: 'ios-folder-outline'
-                    },
+              return h(
+                "span",
+                {
+                  style: {
+                    display: "inline-block",
+                    width: "100%",
+                  },
+                },
+                [
+                  h("span", [
+                    h("Icon", {
+                      props: {
+                        type: "ios-folder-outline",
+                      },
+                      style: {
+                        marginRight: "8px",
+                      },
+                    }),
+                    h("span", data.title),
+                  ]),
+                  h("span", {
                     style: {
-                      marginRight: '8px'
-                    }
+                      display: "inline-block",
+                      // float: 'right',
+                      marginRight: "32px",
+                    },
                   }),
-                  h('span', data.title)
-                ]),
-                h('span', {
-                  style: {
-                    display: 'inline-block',
-                    // float: 'right',
-                    marginRight: '32px'
-                  }
-                })
-              ]);
+                ]
+              );
             },
-          }
+          },
         ],
       },
       modalProjectData: {
-        title: '',
-        tableData: [{}]
+        title: "",
+        tableData: [{}],
       },
       suppliersList: [],
       selectedColumns: [
-        { title: '物料名称', key: 'title', align: 'center', minWidth: 110 },
-        { title: '操作', key: 'title', align: 'center', minWidth: 90, slot: 'selectedSetSlot' },
+        { title: "物料名称", key: "title", align: "center", minWidth: 110 },
+        {
+          title: "操作",
+          key: "title",
+          align: "center",
+          minWidth: 90,
+          slot: "selectedSetSlot",
+        },
       ],
       modalTableLoading: false,
       modalProjectTableLoading: false,
@@ -347,40 +499,54 @@ export default {
       modal_project_page_size: 10,
       modal_project_total: 0,
       modalTableColumns: [
-        { title: '全选', type: 'selection', align: 'center', minWidth: 60 },
-        { title: '物料名称', key: 'title', align: 'center', minWidth: 110 },
-        { title: '物料规格', key: 'model', align: 'center', minWidth: 110 },
-        { title: '计量单位', key: 'unit', align: 'center', minWidth: 110 },
+        { title: "全选", type: "selection", align: "center", minWidth: 60 },
+        { title: "物料名称", key: "title", align: "center", minWidth: 110 },
+        { title: "物料规格", key: "model", align: "center", minWidth: 110 },
+        { title: "计量单位", key: "unit", align: "center", minWidth: 110 },
       ],
       currentChoose: {},
       modalProjectTableColumns: [
         {
-          title: '选择', key: '', align: 'center', minWidth: 60,
+          title: "选择",
+          key: "",
+          align: "center",
+          minWidth: 60,
           render: (h, params) => {
             let id = params.row.id;
             let flag = false;
             if (this.currentChoose.id == id) {
-              flag = true
+              flag = true;
             } else {
-              flag = false
+              flag = false;
             }
-            let self = this
-            return h('div', [
-              h('Radio', {
+            let self = this;
+            return h("div", [
+              h("Radio", {
                 props: {
-                  value: flag
+                  value: flag,
                 },
                 on: {
-                  'on-change': () => {
+                  "on-change": () => {
                     self.currentChoose = params.row;
-                  }
-                }
-              })
-            ])
-          }
+                  },
+                },
+              }),
+            ]);
+          },
+        },
+        {
+          title: "项目名称",
+          key: "client_name",
+          align: "center",
+          minWidth: 100,
+        },
+        {
+          title: "紧急程度",
+          align: "center",
+          key: "warning_state",
+          minWidth: 80,
+          slot: "basicTypeSet",
         },
-        { title: '项目名称', key: 'client_name', align: 'center', minWidth: 100 },
-        { title: '紧急程度', align: 'center', key: 'warning_state', minWidth: 80, slot: 'basicTypeSet', },
         // {
         //   title: '紧急程度', key: 'state', align: 'center', minWidth: 80,
         //   render: (h, params) => {
@@ -390,212 +556,293 @@ export default {
         //   }
         // },
         {
-          title: '创建时间', key: 'crt_time', align: 'center', minWidth: 110,
+          title: "创建时间",
+          key: "crt_time",
+          align: "center",
+          minWidth: 110,
           render: (h, params) => {
-            const { row } = params
-            return h('span', {}, this.func.replaceDate(row.crt_time))
-          }
+            const { row } = params;
+            return h("span", {}, this.func.replaceDate(row.crt_time));
+          },
         },
       ],
+      warehouseTotal: [],
+      warehouse: {
+        warehouse_title: "",
+        num: "",
+      },
       isCheck: false,
       warningList: [],
-    }
+    };
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
-  created () {
-    this.$route.query.type == 2 ? this.isCheck = true : this.isCheck = false
+  created() {
+    this.$route.query.type == 2
+      ? (this.isCheck = true)
+      : (this.isCheck = false);
     // 获取采购类型
-    this.axios({ method: 'get', url: '/api/basic_purchase_list', }).then((res) => { this.purchaseTypeList = res.data.data }).catch((err) => { });
+    this.axios({ method: "get", url: "/api/basic_purchase_list" })
+      .then((res) => {
+        this.purchaseTypeList = res.data.data;
+      })
+      .catch((err) => {});
     // 获取操作员
     // this.axios('/api/user').then(res => this.salesmanList = res.data.data)
     // 获取基础物料类型
-    this.axios({ method: 'get', url: '/api/basics_material_index_level', }).then((res) => { this.modalData.treeData[0].list = res.data }).catch((err) => { });
+    this.axios({ method: "get", url: "/api/basics_material_index_level" })
+      .then((res) => {
+        this.modalData.treeData[0].list = res.data;
+      })
+      .catch((err) => {});
     // 获取供应商列表
-    this.axios({ method: 'get', url: '/api/supply_list', }).then((res) => { this.suppliersList = res.data.data }).catch((err) => { });
+    this.axios({ method: "get", url: "/api/supply_list" })
+      .then((res) => {
+        this.suppliersList = res.data.data;
+      })
+      .catch((err) => {});
     // 获取项目列表
     // this.axios({ method: 'get', url: '/api/order_index', }).then((res) => {
     //   this.modalProjectData.tableData = res.data.data
     //   this.modal_project_total = res.data.total
     // }).catch((err) => { });
     // 获取紧急程度
-    this.axios.get('/api/warning_list').then(res => { this.warningList = res.data.data })
-    this.initModal()
-    this.initProjectModal()
+    this.axios.get("/api/warning_list").then((res) => {
+      this.warningList = res.data.data;
+    });
+    this.initModal();
+    this.initProjectModal();
   },
   // 生命周期 - 挂载完成(可以访问DOM元素)
-  mounted () {
-    if (this.$route.query.purchase_order_apply_no != '') {
+  mounted() {
+    if (this.$route.query.purchase_order_apply_no != "") {
       this.initData();
     }
   },
   methods: {
-    initData () {
+    handleToolShow(index, row) {
+      if (row.warehouse_title) {
+      } else {
+        this.axios
+          .get("/api/warehouse_stock_number", {
+            params: {
+              material_id: row.material_id,
+              material_detail_id: row.material_detail_id,
+            },
+          })
+          .then((res) => {
+            row.warehouse_list = []
+            row.warehouse_list = res.data
+          });
+      }
+      // this.warehouse.num = this.warehouseTotal[index].num;
+      // this.warehouse.warehouseName = this.warehouseTotal[index].warehouseName
+      this.warehouse = this.warehouseTotal[index];
+    },
+    initData() {
       this.axios({
-        method: 'get',
-        url: '/api/purchase_apply_detail',
+        method: "get",
+        url: "/api/purchase_apply_detail",
         params: {
-          purchase_order_apply_no: this.$route.query.purchase_order_apply_no
-        }
-      }).then((res) => {
-        this.tableData = res.data.list
-        this.searchData = res.data
-        this.searchData.time = this.func.replaceDate(res.data.crt_time)
-        this.tableData.forEach(element => {
-          element.time = this.func.replaceDate(element.arrive_time)
-        });
-      }).catch((err) => { });
+          purchase_order_apply_no: this.$route.query.purchase_order_apply_no,
+        },
+      })
+        .then((res) => {
+          this.tableData = res.data.list;
+          this.searchData = res.data;
+          this.searchData.time = this.func.replaceDate(res.data.crt_time);
+          this.tableData.forEach((element) => {
+            element.time = this.func.replaceDate(element.arrive_time);
+            element.warehouse_list = []
+          });
+          // for (let key in this.tableData) {
+          //   this.axios({
+          //     method: "get",
+          //     url: "/api/warehouse_stock_number",
+          //     params: {
+          //       material_id: this.tableData[key].material_id,
+          //       material_detail_id: this.tableData[key].material_detail_id,
+          //     },
+          //   }).then((res) => {
+          //     res.data.forEach((el) => {
+          //       this.warehouseTotal.push(el);
+          //     });
+          //   });
+          // }
+          // console.log(this.warehouseTotal)
+        })
+        .catch((err) => {});
     },
-    handleTreeSlect (array, row) {
-      row.id && this.axios({
-        method: 'get',
-        url: '/api/material_detail_list',
-        params: {
-          page_index: this.modal_page_index,
-          page_size: this.modal_page_size,
-          m_id: row.id
-        }
-      }).then((res) => {
-        this.modal_total = res.data.total
-        this.modalData.tableData = res.data.data
-      }).catch((err) => { });
+    handleTreeSlect(array, row) {
+      row.id &&
+        this.axios({
+          method: "get",
+          url: "/api/material_detail_list",
+          params: {
+            page_index: this.modal_page_index,
+            page_size: this.modal_page_size,
+            m_id: row.id,
+          },
+        })
+          .then((res) => {
+            this.modal_total = res.data.total;
+            this.modalData.tableData = res.data.data;
+          })
+          .catch((err) => {});
     },
-    handleSet (type, row, index) {
-      this.tableData.splice(index, 1)
+    handleSet(type, row, index) {
+      this.tableData.splice(index, 1);
     },
-    handleSelection (selection, row) {
-      this.modalData.selectedData.push(row)
+    handleSelection(selection, row) {
+      this.modalData.selectedData.push(row);
     },
-    handleSelectionCancel (selection, row) {
+    handleSelectionCancel(selection, row) {
       this.modalData.selectedData.forEach((element, index) => {
         if (element.material_detail_id == row.material_detail_id) {
-          this.modalData.selectedData.splice(index, 1)
+          this.modalData.selectedData.splice(index, 1);
         }
       });
     },
-    handleSelectionAll (selection) {
-      this.modalData.selectedData = this.modalData.selectedData.concat(selection)
+    handleSelectionAll(selection) {
+      this.modalData.selectedData =
+        this.modalData.selectedData.concat(selection);
     },
-    handleSelectionAllCancel () {
-      this.modalData.tableData.forEach(element => {
-        this.modalData.selectedData = this.modalData.selectedData.filter((x) => {
-          return x.material_detail_id != element.material_detail_id
-        })
+    handleSelectionAllCancel() {
+      this.modalData.tableData.forEach((element) => {
+        this.modalData.selectedData = this.modalData.selectedData.filter(
+          (x) => {
+            return x.material_detail_id != element.material_detail_id;
+          }
+        );
       });
     },
-    reselection () {
-      this.modalData.selectedData.forEach(element => {
+    reselection() {
+      this.modalData.selectedData.forEach((element) => {
         this.modalData.tableData.forEach((ele, idx) => {
           if (element.material_detail_id == ele.material_detail_id) {
             this.$nextTick(() => {
-              this.$refs.modelTable.$refs.tbody.objData[idx]._isChecked = true
-              this.$forceUpdate()
-            })
+              this.$refs.modelTable.$refs.tbody.objData[idx]._isChecked = true;
+              this.$forceUpdate();
+            });
           }
         });
       });
     },
-    changeModalSize (e) {
+    changeModalSize(e) {
       this.modal_page_size = e;
-      this.initModal()
+      this.initModal();
     },
-    changeModalPage (e) {
+    changeModalPage(e) {
       this.modal_page_index = e;
-      this.initModal()
+      this.initModal();
     },
-    changeProjectModalSize (e) {
-      this.modal_project_page_size = e
-      this.initProjectModal()
+    changeProjectModalSize(e) {
+      this.modal_project_page_size = e;
+      this.initProjectModal();
     },
-    changeProjectModalPage (e) {
-      this.modal_project_page_index = e
-      this.initProjectModal()
+    changeProjectModalPage(e) {
+      this.modal_project_page_index = e;
+      this.initProjectModal();
     },
-    handleSelectedDele (row, index) {
-      this.modalData.selectedData.splice(index, 1)
+    handleSelectedDele(row, index) {
+      this.modalData.selectedData.splice(index, 1);
     },
-    initModal () {
+    initModal() {
       this.axios({
-        method: 'get',
-        url: '/api/material_detail_list',
+        method: "get",
+        url: "/api/material_detail_list",
         params: {
           page_index: this.modal_page_index,
           page_size: this.modal_page_size,
-          title: this.modalData.title
-        }
-      }).then((res) => {
-        this.modal_total = res.data.total
-        this.modalData.tableData = res.data.data
-        this.reselection()
-      }).catch((err) => { });
+          title: this.modalData.title,
+        },
+      })
+        .then((res) => {
+          this.modal_total = res.data.total;
+          this.modalData.tableData = res.data.data;
+          this.reselection();
+        })
+        .catch((err) => {});
     },
-    initProjectModal () {
+    initProjectModal() {
       this.axios({
-        method: 'get',
-        url: '/api/order_index',
+        method: "get",
+        url: "/api/order_index",
         params: {
           page_index: this.modal_project_page_index,
           page_size: this.modal_project_page_size,
-          title: this.modalProjectData.title
-        }
-      }).then((res) => {
-        this.modal_project_total = res.data.total
-        this.modalProjectData.tableData = res.data.data
-      }).catch((err) => { });
+          title: this.modalProjectData.title,
+        },
+      })
+        .then((res) => {
+          this.modal_project_total = res.data.total;
+          this.modalProjectData.tableData = res.data.data;
+        })
+        .catch((err) => {});
     },
-    handleSelect () {
-      this.modalData.selectedData.forEach(element => {
-        element.material_id = element.m_id
-        element.type_title = element.m_title
+    handleSelect() {
+      this.modalData.selectedData.forEach((element) => {
+        element.material_id = element.m_id;
+        element.type_title = element.m_title;
         // element.arrive_time = this.func.replaceDate(element.arrive_time)
-        element.num = null
+        element.num = null;
         // element.arrive_time = null
-        element.supply_id = null
+        element.supply_id = null;
       });
       // this.tableData = [...this.tableData, ...this.modalData.selectedData]
-      this.tableData.splice((this.tableData.length - 1), 0, ...this.modalData.selectedData)
+      this.tableData.splice(
+        this.tableData.length - 1,
+        0,
+        ...this.modalData.selectedData
+      );
       // console.log('this.modalData.selectedData :>> ', this.modalData.selectedData);
     },
-    handleProjectSelect () {
-      this.searchData.client_name = this.currentChoose.client_name
-      this.searchData.order_no = this.currentChoose.order_no
+    handleProjectSelect() {
+      this.searchData.client_name = this.currentChoose.client_name;
+      this.searchData.order_no = this.currentChoose.order_no;
+    },
+    goBack() {
+      this.$router.go(-1);
     },
-    goBack () { this.$router.go(-1) },
-    postData () {
-      this.searchData.crt_time = parseInt(new Date(this.searchData.time).getTime() / 1000) || ''
-      this.tableData.forEach(element => {
-        element.arrive_time = parseInt(new Date(element.time).getTime() / 1000) || ''
+    postData() {
+      this.searchData.crt_time =
+        parseInt(new Date(this.searchData.time).getTime() / 1000) || "";
+      this.tableData.forEach((element) => {
+        element.arrive_time =
+          parseInt(new Date(element.time).getTime() / 1000) || "";
       });
-      let url
-      if (this.$route.query.purchase_order_apply_no == '') {
-        url = '/api/purchase_apply_add'
+      let url;
+      if (this.$route.query.purchase_order_apply_no == "") {
+        url = "/api/purchase_apply_add";
       } else {
-        url = '/api/purchase_apply_edit'
+        url = "/api/purchase_apply_edit";
       }
       this.axios({
-        method: 'post',
+        method: "post",
         url,
         data: {
           ...this.searchData,
-          list: this.tableData
-        }
-      }).then((res) => {
-        this.$Message.success(res.msg)
-        this.goBack()
-      }).catch((err) => { });
+          list: this.tableData,
+        },
+      })
+        .then((res) => {
+          this.$Message.success(res.msg);
+          this.goBack();
+        })
+        .catch((err) => {});
     },
   },
   // 监听属性 类似于data概念
   computed: {},
   // 监控data中的数据变化
   watch: {},
-  beforeCreate () { }, // 生命周期 - 创建之前
-  beforeMount () { }, // 生命周期 - 挂载之前
-  beforeUpdate () { }, // 生命周期 - 更新之前
-  updated () { }, // 生命周期 - 更新之后
-  beforeDestroy () { }, // 生命周期 - 销毁之前
-  destroyed () { }, // 生命周期 - 销毁完成
-  activated () { }, // 如果页面有keep-alive缓存功能,这个函数会触发
-}
+  beforeCreate() {}, // 生命周期 - 创建之前
+  beforeMount() {}, // 生命周期 - 挂载之前
+  beforeUpdate() {}, // 生命周期 - 更新之前
+  updated() {}, // 生命周期 - 更新之后
+  beforeDestroy() {}, // 生命周期 - 销毁之前
+  destroyed() {}, // 生命周期 - 销毁完成
+  activated() {}, // 如果页面有keep-alive缓存功能,这个函数会触发
+};
 </script>
 
 <style lang='scss' scoped>