|  | @@ -0,0 +1,988 @@
 | 
	
		
			
				|  |  | +<template>
 | 
	
		
			
				|  |  | +  <div>
 | 
	
		
			
				|  |  | +    <transition appear enter-active-class="animated fadeIn">
 | 
	
		
			
				|  |  | +      <q-table
 | 
	
		
			
				|  |  | +        class="my-sticky-header-column-table shadow-24"
 | 
	
		
			
				|  |  | +        :data="table_list"
 | 
	
		
			
				|  |  | +        row-key="id"
 | 
	
		
			
				|  |  | +        :separator="separator"
 | 
	
		
			
				|  |  | +        :loading="loading"
 | 
	
		
			
				|  |  | +        :columns="columns"
 | 
	
		
			
				|  |  | +        hide-bottom
 | 
	
		
			
				|  |  | +        :pagination.sync="pagination"
 | 
	
		
			
				|  |  | +        no-data-label="No data"
 | 
	
		
			
				|  |  | +        no-results-label="No data you want"
 | 
	
		
			
				|  |  | +        :table-style="{ height: height }"
 | 
	
		
			
				|  |  | +        flat
 | 
	
		
			
				|  |  | +        bordered
 | 
	
		
			
				|  |  | +      >
 | 
	
		
			
				|  |  | +        <template v-slot:top>
 | 
	
		
			
				|  |  | +          <q-btn-group push>
 | 
	
		
			
				|  |  | +            <q-btn :label="$t('refresh')" icon="refresh" @click="reFresh()">
 | 
	
		
			
				|  |  | +              <q-tooltip
 | 
	
		
			
				|  |  | +                content-class="bg-amber text-black shadow-4"
 | 
	
		
			
				|  |  | +                :offset="[10, 10]"
 | 
	
		
			
				|  |  | +                content-style="font-size: 12px"
 | 
	
		
			
				|  |  | +                >{{ $t("refreshtip") }}</q-tooltip
 | 
	
		
			
				|  |  | +              >
 | 
	
		
			
				|  |  | +            </q-btn>
 | 
	
		
			
				|  |  | +          </q-btn-group>
 | 
	
		
			
				|  |  | +          <q-space />
 | 
	
		
			
				|  |  | +          <div class="flex items-center">
 | 
	
		
			
				|  |  | +            <q-input
 | 
	
		
			
				|  |  | +              outlined
 | 
	
		
			
				|  |  | +              rounded
 | 
	
		
			
				|  |  | +              dense
 | 
	
		
			
				|  |  | +              debounce="200"
 | 
	
		
			
				|  |  | +              color="primary"
 | 
	
		
			
				|  |  | +              v-model="filter"
 | 
	
		
			
				|  |  | +              :placeholder="'输入单据编号搜索'"
 | 
	
		
			
				|  |  | +              @input="getSearchList()"
 | 
	
		
			
				|  |  | +              @keyup.enter="getSearchList()"
 | 
	
		
			
				|  |  | +            >
 | 
	
		
			
				|  |  | +              <template v-slot:append>
 | 
	
		
			
				|  |  | +                <q-icon name="search" />
 | 
	
		
			
				|  |  | +              </template>
 | 
	
		
			
				|  |  | +            </q-input>
 | 
	
		
			
				|  |  | +          </div>
 | 
	
		
			
				|  |  | +        </template>
 | 
	
		
			
				|  |  | +        <template v-slot:body="props">
 | 
	
		
			
				|  |  | +          <q-tr :props="props">
 | 
	
		
			
				|  |  | +            <template v-if="props.row.id === editid">
 | 
	
		
			
				|  |  | +              <q-td key="detail" :props="props">
 | 
	
		
			
				|  |  | +                <q-btn
 | 
	
		
			
				|  |  | +                  round
 | 
	
		
			
				|  |  | +                  flat
 | 
	
		
			
				|  |  | +                  push
 | 
	
		
			
				|  |  | +                  color="black"
 | 
	
		
			
				|  |  | +                  icon="description"
 | 
	
		
			
				|  |  | +                  @click="detailData(props.row)"
 | 
	
		
			
				|  |  | +                >
 | 
	
		
			
				|  |  | +                  <q-tooltip
 | 
	
		
			
				|  |  | +                    content-class="bg-amber text-black shadow-4"
 | 
	
		
			
				|  |  | +                    :offset="[10, 10]"
 | 
	
		
			
				|  |  | +                    content-style="font-size: 12px"
 | 
	
		
			
				|  |  | +                    >{{ "查看单据详情" }}</q-tooltip
 | 
	
		
			
				|  |  | +                  >
 | 
	
		
			
				|  |  | +                </q-btn>
 | 
	
		
			
				|  |  | +              </q-td>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +            <template v-else-if="props.row.id !== editid">
 | 
	
		
			
				|  |  | +              <q-td key="detail" :props="props">
 | 
	
		
			
				|  |  | +                <q-btn
 | 
	
		
			
				|  |  | +                  round
 | 
	
		
			
				|  |  | +                  flat
 | 
	
		
			
				|  |  | +                  push
 | 
	
		
			
				|  |  | +                  color="black"
 | 
	
		
			
				|  |  | +                  icon="description"
 | 
	
		
			
				|  |  | +                  @click="detailData(props.row)"
 | 
	
		
			
				|  |  | +                >
 | 
	
		
			
				|  |  | +                  <q-tooltip
 | 
	
		
			
				|  |  | +                    content-class="bg-amber text-black shadow-4"
 | 
	
		
			
				|  |  | +                    :offset="[10, 10]"
 | 
	
		
			
				|  |  | +                    content-style="font-size: 12px"
 | 
	
		
			
				|  |  | +                    >{{ "查看批次详情" }}</q-tooltip
 | 
	
		
			
				|  |  | +                  >
 | 
	
		
			
				|  |  | +                </q-btn>
 | 
	
		
			
				|  |  | +              </q-td>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            <template v-if="props.row.id === editid">
 | 
	
		
			
				|  |  | +              <q-td key="billId" :props="props">{{ props.row.billId }}</q-td>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +            <template v-else-if="props.row.id !== editid">
 | 
	
		
			
				|  |  | +              <q-td key="billId" :props="props">{{ props.row.billId }}</q-td>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            <template v-if="props.row.id === editid">
 | 
	
		
			
				|  |  | +              <q-td key="number" :props="props">{{ props.row.number }}</q-td>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +            <template v-else-if="props.row.id !== editid">
 | 
	
		
			
				|  |  | +              <q-td key="number" :props="props">{{ props.row.number }}</q-td>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            <template v-if="props.row.id === editid">
 | 
	
		
			
				|  |  | +              <q-td key="type" :props="props">
 | 
	
		
			
				|  |  | +                <q-select
 | 
	
		
			
				|  |  | +                  dense
 | 
	
		
			
				|  |  | +                  outlined
 | 
	
		
			
				|  |  | +                  square
 | 
	
		
			
				|  |  | +                  v-model="editFormData.type"
 | 
	
		
			
				|  |  | +                  :label="'单据类型'"
 | 
	
		
			
				|  |  | +                  autofocus
 | 
	
		
			
				|  |  | +                  :options="bound_code_type_list"
 | 
	
		
			
				|  |  | +                  option-label="label"
 | 
	
		
			
				|  |  | +                  option-value="value"
 | 
	
		
			
				|  |  | +                  emit-value
 | 
	
		
			
				|  |  | +                  map-options
 | 
	
		
			
				|  |  | +                  transition-show="scale"
 | 
	
		
			
				|  |  | +                  transition-hide="scale"
 | 
	
		
			
				|  |  | +                  :rules="[(val) => (val && val.length > 0) || error1]"
 | 
	
		
			
				|  |  | +                />
 | 
	
		
			
				|  |  | +              </q-td>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +            <template v-else-if="props.row.id !== editid">
 | 
	
		
			
				|  |  | +              <q-td key="type" :props="props">
 | 
	
		
			
				|  |  | +                {{ formatBSType(props.row.type) || props.row.type }}</q-td
 | 
	
		
			
				|  |  | +              >
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            <template v-if="props.row.id === editid">
 | 
	
		
			
				|  |  | +              <q-td key="department" :props="props">
 | 
	
		
			
				|  |  | +                <q-select
 | 
	
		
			
				|  |  | +                  dense
 | 
	
		
			
				|  |  | +                  outlined
 | 
	
		
			
				|  |  | +                  square
 | 
	
		
			
				|  |  | +                  v-model="editFormData.department"
 | 
	
		
			
				|  |  | +                  :label="'部门'"
 | 
	
		
			
				|  |  | +                  :options="bound_department_list"
 | 
	
		
			
				|  |  | +                  option-label="label"
 | 
	
		
			
				|  |  | +                  option-value="value"
 | 
	
		
			
				|  |  | +                  emit-value
 | 
	
		
			
				|  |  | +                  map-options
 | 
	
		
			
				|  |  | +                  transition-show="scale"
 | 
	
		
			
				|  |  | +                  transition-hide="scale"
 | 
	
		
			
				|  |  | +                  :rules="[(val) => (val && val.length > 0) || error1]"
 | 
	
		
			
				|  |  | +                />
 | 
	
		
			
				|  |  | +              </q-td>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +            <template v-else-if="props.row.id !== editid">
 | 
	
		
			
				|  |  | +              <q-td key="department" :props="props">
 | 
	
		
			
				|  |  | +                {{
 | 
	
		
			
				|  |  | +                  bound_department_map[props.row.department] ||
 | 
	
		
			
				|  |  | +                  props.row.department
 | 
	
		
			
				|  |  | +                }}</q-td
 | 
	
		
			
				|  |  | +              >
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            <template v-if="props.row.id === editid">
 | 
	
		
			
				|  |  | +              <q-td key="date" :props="props">{{ props.row.date }}</q-td>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +            <template v-else-if="props.row.id !== editid">
 | 
	
		
			
				|  |  | +              <q-td key="date" :props="props">{{ props.row.date }}</q-td>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            <template v-if="props.row.id === editid">
 | 
	
		
			
				|  |  | +              <q-td key="creater" :props="props">
 | 
	
		
			
				|  |  | +                <q-input
 | 
	
		
			
				|  |  | +                  dense
 | 
	
		
			
				|  |  | +                  outlined
 | 
	
		
			
				|  |  | +                  square
 | 
	
		
			
				|  |  | +                  v-model.number="editFormData.creater"
 | 
	
		
			
				|  |  | +                  :label="'经办人'"
 | 
	
		
			
				|  |  | +                  :rules="[(val) => (val && val > 0) || error1]"
 | 
	
		
			
				|  |  | +                />
 | 
	
		
			
				|  |  | +              </q-td>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +            <template v-else-if="props.row.id !== editid">
 | 
	
		
			
				|  |  | +              <q-td key="creater" :props="props">{{ props.row.creater }}</q-td>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            <template v-if="props.row.id === editid">
 | 
	
		
			
				|  |  | +              <q-td key="bound_status" :props="props">
 | 
	
		
			
				|  |  | +                {{
 | 
	
		
			
				|  |  | +                  formatStatusType(props.row.bound_status) ||
 | 
	
		
			
				|  |  | +                  props.row.bound_status
 | 
	
		
			
				|  |  | +                }}</q-td
 | 
	
		
			
				|  |  | +              >
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +            <template v-else-if="props.row.id !== editid">
 | 
	
		
			
				|  |  | +              <q-td key="bound_status" :props="props">
 | 
	
		
			
				|  |  | +                {{
 | 
	
		
			
				|  |  | +                  formatStatusType(props.row.bound_status) ||
 | 
	
		
			
				|  |  | +                  props.row.bound_status
 | 
	
		
			
				|  |  | +                }}</q-td
 | 
	
		
			
				|  |  | +              >
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            <template v-if="!editMode">
 | 
	
		
			
				|  |  | +              <q-td key="action" :props="props" style="width: 100px">
 | 
	
		
			
				|  |  | +                <q-btn
 | 
	
		
			
				|  |  | +                  round
 | 
	
		
			
				|  |  | +                  flat
 | 
	
		
			
				|  |  | +                  push
 | 
	
		
			
				|  |  | +                  color="dark"
 | 
	
		
			
				|  |  | +                  icon="trolley"
 | 
	
		
			
				|  |  | +                  @click="change_status(props.row)"
 | 
	
		
			
				|  |  | +                >
 | 
	
		
			
				|  |  | +                  <q-tooltip
 | 
	
		
			
				|  |  | +                    content-class="bg-amber text-black shadow-4"
 | 
	
		
			
				|  |  | +                    :offset="[10, 10]"
 | 
	
		
			
				|  |  | +                    content-style="font-size: 12px"
 | 
	
		
			
				|  |  | +                    >单据无误</q-tooltip
 | 
	
		
			
				|  |  | +                  >
 | 
	
		
			
				|  |  | +                </q-btn>
 | 
	
		
			
				|  |  | +              </q-td>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +            <template v-else-if="editMode">
 | 
	
		
			
				|  |  | +              <template v-if="props.row.id === editid">
 | 
	
		
			
				|  |  | +                <q-td key="action" :props="props" style="width: 100px">
 | 
	
		
			
				|  |  | +                  <q-btn
 | 
	
		
			
				|  |  | +                    round
 | 
	
		
			
				|  |  | +                    flat
 | 
	
		
			
				|  |  | +                    push
 | 
	
		
			
				|  |  | +                    color="secondary"
 | 
	
		
			
				|  |  | +                    icon="check"
 | 
	
		
			
				|  |  | +                    @click="editDataSubmit()"
 | 
	
		
			
				|  |  | +                  >
 | 
	
		
			
				|  |  | +                    <q-tooltip
 | 
	
		
			
				|  |  | +                      content-class="bg-amber text-black shadow-4"
 | 
	
		
			
				|  |  | +                      :offset="[10, 10]"
 | 
	
		
			
				|  |  | +                      content-style="font-size: 12px"
 | 
	
		
			
				|  |  | +                      >{{ $t("confirmedit") }}</q-tooltip
 | 
	
		
			
				|  |  | +                    >
 | 
	
		
			
				|  |  | +                  </q-btn>
 | 
	
		
			
				|  |  | +                  <q-btn
 | 
	
		
			
				|  |  | +                    round
 | 
	
		
			
				|  |  | +                    flat
 | 
	
		
			
				|  |  | +                    push
 | 
	
		
			
				|  |  | +                    color="red"
 | 
	
		
			
				|  |  | +                    icon="close"
 | 
	
		
			
				|  |  | +                    @click="editDataCancel()"
 | 
	
		
			
				|  |  | +                  >
 | 
	
		
			
				|  |  | +                    <q-tooltip
 | 
	
		
			
				|  |  | +                      content-class="bg-amber text-black shadow-4"
 | 
	
		
			
				|  |  | +                      :offset="[10, 10]"
 | 
	
		
			
				|  |  | +                      content-style="font-size: 12px"
 | 
	
		
			
				|  |  | +                      >{{ $t("canceledit") }}</q-tooltip
 | 
	
		
			
				|  |  | +                    >
 | 
	
		
			
				|  |  | +                  </q-btn>
 | 
	
		
			
				|  |  | +                </q-td>
 | 
	
		
			
				|  |  | +              </template>
 | 
	
		
			
				|  |  | +              <template v-else-if="props.row.id !== editid"></template>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +          </q-tr>
 | 
	
		
			
				|  |  | +        </template>
 | 
	
		
			
				|  |  | +      </q-table>
 | 
	
		
			
				|  |  | +    </transition>
 | 
	
		
			
				|  |  | +    <template>
 | 
	
		
			
				|  |  | +      <div v-show="max !== 0" class="q-pa-lg flex flex-center">
 | 
	
		
			
				|  |  | +        <div>{{ total }}</div>
 | 
	
		
			
				|  |  | +        <q-pagination
 | 
	
		
			
				|  |  | +          v-model="current"
 | 
	
		
			
				|  |  | +          color="black"
 | 
	
		
			
				|  |  | +          :max="max"
 | 
	
		
			
				|  |  | +          :max-pages="6"
 | 
	
		
			
				|  |  | +          boundary-links
 | 
	
		
			
				|  |  | +          @click="
 | 
	
		
			
				|  |  | +            getSearchList(current);
 | 
	
		
			
				|  |  | +            paginationIpt = current;
 | 
	
		
			
				|  |  | +          "
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +        <div>
 | 
	
		
			
				|  |  | +          <input
 | 
	
		
			
				|  |  | +            v-model="paginationIpt"
 | 
	
		
			
				|  |  | +            @blur="changePageEnter"
 | 
	
		
			
				|  |  | +            @keyup.enter="changePageEnter"
 | 
	
		
			
				|  |  | +            style="width: 60px; text-align: center"
 | 
	
		
			
				|  |  | +          />
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +      <div v-show="max === 0" class="q-pa-lg flex flex-center">
 | 
	
		
			
				|  |  | +        <q-btn flat push color="dark" :label="$t('no_data')"></q-btn>
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +    </template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <q-dialog
 | 
	
		
			
				|  |  | +      v-model="detailForm"
 | 
	
		
			
				|  |  | +      transition-show="jump-down"
 | 
	
		
			
				|  |  | +      transition-hide="jump-up"
 | 
	
		
			
				|  |  | +    >
 | 
	
		
			
				|  |  | +      <q-card style="min-width: 900px; position: relative">
 | 
	
		
			
				|  |  | +        <q-bar
 | 
	
		
			
				|  |  | +          class="bg-light-blue-10 text-white rounded-borders"
 | 
	
		
			
				|  |  | +          style="height: 50px"
 | 
	
		
			
				|  |  | +        >
 | 
	
		
			
				|  |  | +          <div>
 | 
	
		
			
				|  |  | +            {{ "单据信息" }}
 | 
	
		
			
				|  |  | +          </div>
 | 
	
		
			
				|  |  | +          <q-space></q-space>
 | 
	
		
			
				|  |  | +          <q-btn dense flat icon="close" v-close-popup>
 | 
	
		
			
				|  |  | +            <q-tooltip
 | 
	
		
			
				|  |  | +              content-class="bg-amber text-black shadow-4"
 | 
	
		
			
				|  |  | +              :offset="[20, 20]"
 | 
	
		
			
				|  |  | +              content-style="font-size: 12px"
 | 
	
		
			
				|  |  | +            >
 | 
	
		
			
				|  |  | +              {{ $t("index.close") }}</q-tooltip
 | 
	
		
			
				|  |  | +            >
 | 
	
		
			
				|  |  | +          </q-btn>
 | 
	
		
			
				|  |  | +        </q-bar>
 | 
	
		
			
				|  |  | +        <q-card-section class="q-pt-md">
 | 
	
		
			
				|  |  | +          <q-tabs v-model="activeTab">
 | 
	
		
			
				|  |  | +            <q-tab name="tab1" label="单据信息" />
 | 
	
		
			
				|  |  | +            <!-- <q-tab name="tab2" label="货物信息" /> -->
 | 
	
		
			
				|  |  | +          </q-tabs>
 | 
	
		
			
				|  |  | +        </q-card-section>
 | 
	
		
			
				|  |  | +        <!-- 选项卡内容 -->
 | 
	
		
			
				|  |  | +        <q-tab-panels v-model="activeTab" animated>
 | 
	
		
			
				|  |  | +          <q-tab-panel name="tab1" style="height: 70px">
 | 
	
		
			
				|  |  | +            <div class="row q-gutter-x-md">
 | 
	
		
			
				|  |  | +              <div class="col column q-gutter-y-md">
 | 
	
		
			
				|  |  | +                <q-input
 | 
	
		
			
				|  |  | +                  dense
 | 
	
		
			
				|  |  | +                  outlined
 | 
	
		
			
				|  |  | +                  square
 | 
	
		
			
				|  |  | +                  v-model="table_detail.date"
 | 
	
		
			
				|  |  | +                  :label="'单据时间'"
 | 
	
		
			
				|  |  | +                  :readonly="true"
 | 
	
		
			
				|  |  | +                />
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +              <div class="col column q-gutter-y-md">
 | 
	
		
			
				|  |  | +                <q-input
 | 
	
		
			
				|  |  | +                  dense
 | 
	
		
			
				|  |  | +                  outlined
 | 
	
		
			
				|  |  | +                  square
 | 
	
		
			
				|  |  | +                  v-model="table_detail.number"
 | 
	
		
			
				|  |  | +                  :label="'单据编码'"
 | 
	
		
			
				|  |  | +                  :readonly="true"
 | 
	
		
			
				|  |  | +                />
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +          </q-tab-panel>
 | 
	
		
			
				|  |  | +        </q-tab-panels>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        <div
 | 
	
		
			
				|  |  | +          style="float: right; padding: 15px 15px 50px 15px; min-width: 100%"
 | 
	
		
			
				|  |  | +          flow="row wrap"
 | 
	
		
			
				|  |  | +        >
 | 
	
		
			
				|  |  | +          <q-card class="q-mb-md" bordered>
 | 
	
		
			
				|  |  | +            <q-card-section>
 | 
	
		
			
				|  |  | +              <template>
 | 
	
		
			
				|  |  | +                <div class="text-h6 q-mb-md">{{ "批次信息" }}</div>
 | 
	
		
			
				|  |  | +                <template v-if="batch_detail.length > 0">
 | 
	
		
			
				|  |  | +                  <div
 | 
	
		
			
				|  |  | +                    v-for="(item, index) in batch_detail"
 | 
	
		
			
				|  |  | +                    :key="index"
 | 
	
		
			
				|  |  | +                    class="row q-col-gutter-md q-mb-sm"
 | 
	
		
			
				|  |  | +                  >
 | 
	
		
			
				|  |  | +                    <div class="col">
 | 
	
		
			
				|  |  | +                      <q-input
 | 
	
		
			
				|  |  | +                        v-model="item.entryIds"
 | 
	
		
			
				|  |  | +                        :label="'明细id'"
 | 
	
		
			
				|  |  | +                        :readonly="onlyread"
 | 
	
		
			
				|  |  | +                        dense
 | 
	
		
			
				|  |  | +                        outlined
 | 
	
		
			
				|  |  | +                      />
 | 
	
		
			
				|  |  | +                    </div>
 | 
	
		
			
				|  |  | +                    <div class="col" style="min-width: 150px">
 | 
	
		
			
				|  |  | +                      <q-input
 | 
	
		
			
				|  |  | +                        v-model="item.production_batch"
 | 
	
		
			
				|  |  | +                        :label="'批次号'"
 | 
	
		
			
				|  |  | +                        :readonly="onlyread"
 | 
	
		
			
				|  |  | +                        dense
 | 
	
		
			
				|  |  | +                        outlined
 | 
	
		
			
				|  |  | +                      />
 | 
	
		
			
				|  |  | +                    </div>
 | 
	
		
			
				|  |  | +                    <div class="col">
 | 
	
		
			
				|  |  | +                      <q-input
 | 
	
		
			
				|  |  | +                        v-model="item.goods_name"
 | 
	
		
			
				|  |  | +                        :label="'货物名称'"
 | 
	
		
			
				|  |  | +                        :readonly="onlyread"
 | 
	
		
			
				|  |  | +                        dense
 | 
	
		
			
				|  |  | +                        outlined
 | 
	
		
			
				|  |  | +                      />
 | 
	
		
			
				|  |  | +                    </div>
 | 
	
		
			
				|  |  | +                    <div class="col">
 | 
	
		
			
				|  |  | +                      <q-input
 | 
	
		
			
				|  |  | +                        v-model="item.plan_qty"
 | 
	
		
			
				|  |  | +                        :label="'计划数量'"
 | 
	
		
			
				|  |  | +                        :readonly="onlyread"
 | 
	
		
			
				|  |  | +                        dense
 | 
	
		
			
				|  |  | +                        outlined
 | 
	
		
			
				|  |  | +                      />
 | 
	
		
			
				|  |  | +                    </div>
 | 
	
		
			
				|  |  | +                    <div class="col">
 | 
	
		
			
				|  |  | +                      <q-input
 | 
	
		
			
				|  |  | +                        v-model="item.goods_unit"
 | 
	
		
			
				|  |  | +                        :label="'单位'"
 | 
	
		
			
				|  |  | +                        :readonly="onlyread"
 | 
	
		
			
				|  |  | +                        dense
 | 
	
		
			
				|  |  | +                        outlined
 | 
	
		
			
				|  |  | +                      />
 | 
	
		
			
				|  |  | +                    </div>
 | 
	
		
			
				|  |  | +                  </div>
 | 
	
		
			
				|  |  | +                </template>
 | 
	
		
			
				|  |  | +              </template>
 | 
	
		
			
				|  |  | +            </q-card-section>
 | 
	
		
			
				|  |  | +          </q-card>
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +      </q-card>
 | 
	
		
			
				|  |  | +    </q-dialog>
 | 
	
		
			
				|  |  | +    <q-dialog
 | 
	
		
			
				|  |  | +      v-model="confirmForm"
 | 
	
		
			
				|  |  | +      position="top"
 | 
	
		
			
				|  |  | +      transition-show="scale"
 | 
	
		
			
				|  |  | +      transition-hide="scale"
 | 
	
		
			
				|  |  | +    >
 | 
	
		
			
				|  |  | +      <q-card class="shadow-24">
 | 
	
		
			
				|  |  | +        <q-card-section style="max-height: 325px; width: 500px" class="scroll">
 | 
	
		
			
				|  |  | +          <div class="text-h6 q-mb-md">{{ "确认入库单" }}</div>
 | 
	
		
			
				|  |  | +          确定现场数目与入库汇报{{ choose_bill_code }}单计划数目一致吗?
 | 
	
		
			
				|  |  | +        </q-card-section>
 | 
	
		
			
				|  |  | +        <div style="float: right; padding: 15px 15px 15px 0">
 | 
	
		
			
				|  |  | +          <q-btn
 | 
	
		
			
				|  |  | +            color="white"
 | 
	
		
			
				|  |  | +            text-color="black"
 | 
	
		
			
				|  |  | +            style="margin-right: 25px"
 | 
	
		
			
				|  |  | +            @click="confirmForm = false"
 | 
	
		
			
				|  |  | +            >{{ $t("cancel") }}</q-btn
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +          <q-btn color="primary" @click="confirm_status">{{
 | 
	
		
			
				|  |  | +            $t("submit")
 | 
	
		
			
				|  |  | +          }}</q-btn>
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +      </q-card>
 | 
	
		
			
				|  |  | +    </q-dialog>
 | 
	
		
			
				|  |  | +  </div>
 | 
	
		
			
				|  |  | +</template>
 | 
	
		
			
				|  |  | +<router-view />
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<script>
 | 
	
		
			
				|  |  | +import { getauth, postauth, putauth, deleteauth } from "boot/axios_request";
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import { date, exportFile, LocalStorage } from "quasar";
 | 
	
		
			
				|  |  | +import { QToggle } from "quasar";
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +export default {
 | 
	
		
			
				|  |  | +  components: {
 | 
	
		
			
				|  |  | +    QToggle,
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  name: "Pageasnlist",
 | 
	
		
			
				|  |  | +  data() {
 | 
	
		
			
				|  |  | +    return {
 | 
	
		
			
				|  |  | +      createDate2: "",
 | 
	
		
			
				|  |  | +      date_range: "",
 | 
	
		
			
				|  |  | +      proxyDate: "",
 | 
	
		
			
				|  |  | +      date: "",
 | 
	
		
			
				|  |  | +      goods_code: "",
 | 
	
		
			
				|  |  | +      goods_desc: "",
 | 
	
		
			
				|  |  | +      openid: "",
 | 
	
		
			
				|  |  | +      login_name: "",
 | 
	
		
			
				|  |  | +      authin: "0",
 | 
	
		
			
				|  |  | +      warehouse_code: "",
 | 
	
		
			
				|  |  | +      warehouse_name: "",
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      searchUrl: "",
 | 
	
		
			
				|  |  | +      pathname: "wms/inboundBills/",
 | 
	
		
			
				|  |  | +      pathfilename: "bound/file/",
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      pathname_previous: "",
 | 
	
		
			
				|  |  | +      pathname_next: "",
 | 
	
		
			
				|  |  | +      separator: "cell",
 | 
	
		
			
				|  |  | +      loading: false,
 | 
	
		
			
				|  |  | +      height: "",
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      printObj: {
 | 
	
		
			
				|  |  | +        id: "printMe",
 | 
	
		
			
				|  |  | +        popTitle: this.$t("inbound.asn"),
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      table_list: [],
 | 
	
		
			
				|  |  | +      table_detail: {},
 | 
	
		
			
				|  |  | +      batch_detail: [],
 | 
	
		
			
				|  |  | +      bound_code_type_list: [],
 | 
	
		
			
				|  |  | +      bound_code_type_map: [],
 | 
	
		
			
				|  |  | +      bound_bs_type_list: [],
 | 
	
		
			
				|  |  | +      bound_bs_type_map: [],
 | 
	
		
			
				|  |  | +      bound_desc_list: [],
 | 
	
		
			
				|  |  | +      bound_desc_map: [],
 | 
	
		
			
				|  |  | +      bound_department_list: [],
 | 
	
		
			
				|  |  | +      bound_department_map: [],
 | 
	
		
			
				|  |  | +      bound_status_list: [],
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      product_list: [],
 | 
	
		
			
				|  |  | +      product_map: [],
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      columns: [
 | 
	
		
			
				|  |  | +        { name: "detail", label: "详情", field: "detail", align: "center" },
 | 
	
		
			
				|  |  | +        { name: "billId", label: "表单序号", field: "billId", align: "center" },
 | 
	
		
			
				|  |  | +        { name: "number", label: "单据编号", field: "number", align: "center" },
 | 
	
		
			
				|  |  | +        { name: "type", label: "业务类型", field: "type", align: "center" },
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +          name: "department",
 | 
	
		
			
				|  |  | +          label: "部门",
 | 
	
		
			
				|  |  | +          field: "department",
 | 
	
		
			
				|  |  | +          align: "center",
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        { name: "date", label: "单据日期", field: "date", align: "center" },
 | 
	
		
			
				|  |  | +        { name: "creater", label: "经办人", field: "creater", align: "center" },
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +          name: "bound_status",
 | 
	
		
			
				|  |  | +          label: "状态",
 | 
	
		
			
				|  |  | +          field: "bound_status",
 | 
	
		
			
				|  |  | +          align: "center",
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        { name: "action", label: "操作", align: "center" },
 | 
	
		
			
				|  |  | +      ],
 | 
	
		
			
				|  |  | +      filter: "",
 | 
	
		
			
				|  |  | +      product_filter: "",
 | 
	
		
			
				|  |  | +      pagination: {
 | 
	
		
			
				|  |  | +        page: 1,
 | 
	
		
			
				|  |  | +        rowsPerPage: 11,
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      newForm: false,
 | 
	
		
			
				|  |  | +      newBatchForm: false,
 | 
	
		
			
				|  |  | +      newFormData: {},
 | 
	
		
			
				|  |  | +      newBatchFormData: {},
 | 
	
		
			
				|  |  | +      newDetailFormData: {},
 | 
	
		
			
				|  |  | +      editid: 0,
 | 
	
		
			
				|  |  | +      editFormData: {},
 | 
	
		
			
				|  |  | +      editMode: false,
 | 
	
		
			
				|  |  | +      deleteForm: false,
 | 
	
		
			
				|  |  | +      detailForm: false,
 | 
	
		
			
				|  |  | +      deleteid: 0,
 | 
	
		
			
				|  |  | +      detailid: 0,
 | 
	
		
			
				|  |  | +      bar_code: "",
 | 
	
		
			
				|  |  | +      error1: this.$t("goods.view_goodslist.error1"),
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      max: 0,
 | 
	
		
			
				|  |  | +      total: 0,
 | 
	
		
			
				|  |  | +      paginationIpt: 1,
 | 
	
		
			
				|  |  | +      current: 1,
 | 
	
		
			
				|  |  | +      onlyread: false,
 | 
	
		
			
				|  |  | +      bound_batch_list: [],
 | 
	
		
			
				|  |  | +      activeTab: "tab1",
 | 
	
		
			
				|  |  | +      confirmForm: false,
 | 
	
		
			
				|  |  | +      choose_bill_id: "",
 | 
	
		
			
				|  |  | +      choose_bill_code: "",
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  computed: {
 | 
	
		
			
				|  |  | +    interval() {
 | 
	
		
			
				|  |  | +      return (
 | 
	
		
			
				|  |  | +        this.$t("download_center.start") +
 | 
	
		
			
				|  |  | +        " - " +
 | 
	
		
			
				|  |  | +        this.$t("download_center.end")
 | 
	
		
			
				|  |  | +      );
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  methods: {
 | 
	
		
			
				|  |  | +    formatBSType(type) {
 | 
	
		
			
				|  |  | +      switch (type) {
 | 
	
		
			
				|  |  | +        case 1:
 | 
	
		
			
				|  |  | +          return "生产入库申请";
 | 
	
		
			
				|  |  | +        case 2:
 | 
	
		
			
				|  |  | +          return "采购入库申请";
 | 
	
		
			
				|  |  | +        case 3:
 | 
	
		
			
				|  |  | +          return "其他入库";
 | 
	
		
			
				|  |  | +        case 4:
 | 
	
		
			
				|  |  | +          return "调拨入库";
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        default:
 | 
	
		
			
				|  |  | +          return "未知";
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    formatStatusType(type) {
 | 
	
		
			
				|  |  | +      switch (type) {
 | 
	
		
			
				|  |  | +        case 0:
 | 
	
		
			
				|  |  | +          return "待审核";
 | 
	
		
			
				|  |  | +        case 1:
 | 
	
		
			
				|  |  | +          return "确认无误";
 | 
	
		
			
				|  |  | +        case 3:
 | 
	
		
			
				|  |  | +          return "其他入库";
 | 
	
		
			
				|  |  | +        case 4:
 | 
	
		
			
				|  |  | +          return "调拨入库";
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        default:
 | 
	
		
			
				|  |  | +          return "未知";
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    getList(params = {}) {
 | 
	
		
			
				|  |  | +      var _this = this;
 | 
	
		
			
				|  |  | +      _this.loading = true;
 | 
	
		
			
				|  |  | +      // 合并基础参数
 | 
	
		
			
				|  |  | +      const baseParams = {
 | 
	
		
			
				|  |  | +        page: _this.current,
 | 
	
		
			
				|  |  | +        base_type: "0",
 | 
	
		
			
				|  |  | +        page_size: _this.pagination.rowsPerPage,
 | 
	
		
			
				|  |  | +      };
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      // 创建URLSearchParams处理参数
 | 
	
		
			
				|  |  | +      const queryParams = new URLSearchParams({
 | 
	
		
			
				|  |  | +        ...baseParams,
 | 
	
		
			
				|  |  | +        ...params,
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      console.log(queryParams);
 | 
	
		
			
				|  |  | +      // 过滤空值参数
 | 
	
		
			
				|  |  | +      Array.from(queryParams.entries()).forEach(([key, value]) => {
 | 
	
		
			
				|  |  | +        if (value === "" || value === null || value === undefined) {
 | 
	
		
			
				|  |  | +          queryParams.delete(key);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      getauth(`${_this.pathname}?${queryParams}`)
 | 
	
		
			
				|  |  | +        .then((res) => {
 | 
	
		
			
				|  |  | +          _this.table_list = res.results;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          _this.total = res.count;
 | 
	
		
			
				|  |  | +          _this.max = Math.ceil(res.count / _this.pagination.rowsPerPage) || 0;
 | 
	
		
			
				|  |  | +          _this.pathname_previous = res.previous;
 | 
	
		
			
				|  |  | +          _this.pathname_next = res.next;
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        .catch((err) => {
 | 
	
		
			
				|  |  | +          _this.$q.notify({
 | 
	
		
			
				|  |  | +            message: err.detail,
 | 
	
		
			
				|  |  | +            icon: "close",
 | 
	
		
			
				|  |  | +            color: "negative",
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        .finally(() => {
 | 
	
		
			
				|  |  | +          _this.loading = false;
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    changePageEnter() {
 | 
	
		
			
				|  |  | +      if (Number(this.paginationIpt) < 1) {
 | 
	
		
			
				|  |  | +        this.current = 1;
 | 
	
		
			
				|  |  | +        this.paginationIpt = 1;
 | 
	
		
			
				|  |  | +      } else if (Number(this.paginationIpt) > this.max) {
 | 
	
		
			
				|  |  | +        this.current = this.max;
 | 
	
		
			
				|  |  | +        this.paginationIpt = this.max;
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        this.current = Number(this.paginationIpt);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      this.getSearchList(this.current);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // 带搜索条件加载
 | 
	
		
			
				|  |  | +    getSearchList(page = 1) {
 | 
	
		
			
				|  |  | +      this.current = page;
 | 
	
		
			
				|  |  | +      this.paginationIpt = page;
 | 
	
		
			
				|  |  | +      this.getList({
 | 
	
		
			
				|  |  | +        number__icontains: this.filter,
 | 
	
		
			
				|  |  | +        document_date__range: this.date_range,
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    getfileList() {
 | 
	
		
			
				|  |  | +      var _this = this;
 | 
	
		
			
				|  |  | +      _this.loading = true;
 | 
	
		
			
				|  |  | +      const params = {
 | 
	
		
			
				|  |  | +        goods_desc__icontains: _this.filter,
 | 
	
		
			
				|  |  | +        document_date__range: _this.date_range,
 | 
	
		
			
				|  |  | +      };
 | 
	
		
			
				|  |  | +      const queryParams = new URLSearchParams({
 | 
	
		
			
				|  |  | +        ...params,
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      console.log(queryParams);
 | 
	
		
			
				|  |  | +      // 过滤空值参数
 | 
	
		
			
				|  |  | +      Array.from(queryParams.entries()).forEach(([key, value]) => {
 | 
	
		
			
				|  |  | +        if (value === "" || value === null || value === undefined) {
 | 
	
		
			
				|  |  | +          queryParams.delete(key);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      console.log(`${_this.pathfilename}?${queryParams}`);
 | 
	
		
			
				|  |  | +      getauth(`${_this.pathfilename}?${queryParams}`)
 | 
	
		
			
				|  |  | +        .then((res) => {
 | 
	
		
			
				|  |  | +          var timeStamp = Date.now();
 | 
	
		
			
				|  |  | +          var formattedString = date.formatDate(timeStamp, "YYYYMMDDHHmmss");
 | 
	
		
			
				|  |  | +          const status = exportFile(
 | 
	
		
			
				|  |  | +            _this.pathfilename + "list" + formattedString + ".csv",
 | 
	
		
			
				|  |  | +            "\uFEFF" + res,
 | 
	
		
			
				|  |  | +            "text/csv"
 | 
	
		
			
				|  |  | +          );
 | 
	
		
			
				|  |  | +          if (status !== true) {
 | 
	
		
			
				|  |  | +            _this.$q.notify({
 | 
	
		
			
				|  |  | +              message: "Browser denied file download...",
 | 
	
		
			
				|  |  | +              color: "negative",
 | 
	
		
			
				|  |  | +              icon: "warning",
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        .catch((err) => {
 | 
	
		
			
				|  |  | +          _this.$q.notify({
 | 
	
		
			
				|  |  | +            message: err.detail,
 | 
	
		
			
				|  |  | +            icon: "close",
 | 
	
		
			
				|  |  | +            color: "negative",
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        .finally(() => {
 | 
	
		
			
				|  |  | +          _this.loading = false;
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    getListPrevious() {
 | 
	
		
			
				|  |  | +      var _this = this;
 | 
	
		
			
				|  |  | +      if (LocalStorage.has("auth")) {
 | 
	
		
			
				|  |  | +        getauth(_this.pathname_previous, {})
 | 
	
		
			
				|  |  | +          .then((res) => {
 | 
	
		
			
				|  |  | +            _this.table_list = res.results;
 | 
	
		
			
				|  |  | +            _this.pathname_previous = res.previous;
 | 
	
		
			
				|  |  | +            _this.pathname_next = res.next;
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +          .catch((err) => {
 | 
	
		
			
				|  |  | +            _this.$q.notify({
 | 
	
		
			
				|  |  | +              message: err.detail,
 | 
	
		
			
				|  |  | +              icon: "close",
 | 
	
		
			
				|  |  | +              color: "negative",
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    getListNext() {
 | 
	
		
			
				|  |  | +      var _this = this;
 | 
	
		
			
				|  |  | +      if (LocalStorage.has("auth")) {
 | 
	
		
			
				|  |  | +        getauth(_this.pathname_next, {})
 | 
	
		
			
				|  |  | +          .then((res) => {
 | 
	
		
			
				|  |  | +            _this.table_list = res.results;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            _this.pathname_previous = res.previous;
 | 
	
		
			
				|  |  | +            _this.pathname_next = res.next;
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +          .catch((err) => {
 | 
	
		
			
				|  |  | +            _this.$q.notify({
 | 
	
		
			
				|  |  | +              message: err.detail,
 | 
	
		
			
				|  |  | +              icon: "close",
 | 
	
		
			
				|  |  | +              color: "negative",
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    reFresh() {
 | 
	
		
			
				|  |  | +      var _this = this;
 | 
	
		
			
				|  |  | +      _this.getSearchList();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    change_status(e) {
 | 
	
		
			
				|  |  | +      var _this = this;
 | 
	
		
			
				|  |  | +      // _this.loading = true
 | 
	
		
			
				|  |  | +      _this.detailData(e);
 | 
	
		
			
				|  |  | +      _this.confirmForm = true;
 | 
	
		
			
				|  |  | +      _this.choose_bill_id = e.billId;
 | 
	
		
			
				|  |  | +      _this.choose_bill_code = e.number;
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    confirm_status() {
 | 
	
		
			
				|  |  | +      var _this = this;
 | 
	
		
			
				|  |  | +      _this.loading = true;
 | 
	
		
			
				|  |  | +      const params = {
 | 
	
		
			
				|  |  | +        billId: _this.choose_bill_id,
 | 
	
		
			
				|  |  | +      };
 | 
	
		
			
				|  |  | +      postauth("wms/generateinbound", params)
 | 
	
		
			
				|  |  | +        .then((res) => {
 | 
	
		
			
				|  |  | +          if (res.code == 200) {
 | 
	
		
			
				|  |  | +            _this.$q.notify({
 | 
	
		
			
				|  |  | +              message: "入库单生成成功,请到入库管理中查看",
 | 
	
		
			
				|  |  | +              icon: "check",
 | 
	
		
			
				|  |  | +              color: "green",
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          if (res.code == 400) {
 | 
	
		
			
				|  |  | +            _this.$q.notify({
 | 
	
		
			
				|  |  | +              message: res.error,
 | 
	
		
			
				|  |  | +              icon: "info",
 | 
	
		
			
				|  |  | +              color: "info",
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        .finally(() => {
 | 
	
		
			
				|  |  | +          _this.loading = false;
 | 
	
		
			
				|  |  | +          _this.confirmForm = false;
 | 
	
		
			
				|  |  | +          _this.getSearchList();
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    detailData(e) {
 | 
	
		
			
				|  |  | +      var _this = this;
 | 
	
		
			
				|  |  | +      _this.detailForm = true;
 | 
	
		
			
				|  |  | +      _this.detailid = e.billId;
 | 
	
		
			
				|  |  | +      console.log("detail查询的id是:", _this.detailid);
 | 
	
		
			
				|  |  | +      getauth(_this.pathname + _this.detailid + "/")
 | 
	
		
			
				|  |  | +        .then((res) => {
 | 
	
		
			
				|  |  | +          _this.table_detail = res;
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        .catch((err) => {
 | 
	
		
			
				|  |  | +          _this.$q.notify({
 | 
	
		
			
				|  |  | +            message: err.detail,
 | 
	
		
			
				|  |  | +            icon: "close",
 | 
	
		
			
				|  |  | +            color: "negative",
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +      console.log("detail查询的结果是:", _this.table_detail);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      getauth("wms/materials/?bound_billId=" + _this.detailid)
 | 
	
		
			
				|  |  | +        .then((res) => {
 | 
	
		
			
				|  |  | +          _this.batch_detail = res.results;
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        .catch((err) => {
 | 
	
		
			
				|  |  | +          _this.$q.notify({
 | 
	
		
			
				|  |  | +            message: err.detail,
 | 
	
		
			
				|  |  | +            icon: "close",
 | 
	
		
			
				|  |  | +            color: "negative",
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +      console.log("batch查询的结果是:", _this.batch_detail);
 | 
	
		
			
				|  |  | +      console.log("batch长度查询的结果是:", _this.batch_detail.length);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    deleteDataSubmit() {
 | 
	
		
			
				|  |  | +      var _this = this;
 | 
	
		
			
				|  |  | +      deleteauth(_this.pathname + _this.deleteid + "/")
 | 
	
		
			
				|  |  | +        .then((res) => {
 | 
	
		
			
				|  |  | +          _this.deleteDataCancel();
 | 
	
		
			
				|  |  | +          _this.getSearchList();
 | 
	
		
			
				|  |  | +          _this.$q.notify({
 | 
	
		
			
				|  |  | +            message: "成功删除数据",
 | 
	
		
			
				|  |  | +            icon: "check",
 | 
	
		
			
				|  |  | +            color: "green",
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        .catch((err) => {
 | 
	
		
			
				|  |  | +          _this.$q.notify({
 | 
	
		
			
				|  |  | +            message: err.detail,
 | 
	
		
			
				|  |  | +            icon: "close",
 | 
	
		
			
				|  |  | +            color: "negative",
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    deleteDataCancel() {
 | 
	
		
			
				|  |  | +      var _this = this;
 | 
	
		
			
				|  |  | +      _this.deleteForm = false;
 | 
	
		
			
				|  |  | +      _this.deleteid = 0;
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    updateProxy() {
 | 
	
		
			
				|  |  | +      var _this = this;
 | 
	
		
			
				|  |  | +      _this.proxyDate = _this.date;
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  created() {
 | 
	
		
			
				|  |  | +    var _this = this;
 | 
	
		
			
				|  |  | +    if (LocalStorage.has("openid")) {
 | 
	
		
			
				|  |  | +      _this.openid = LocalStorage.getItem("openid");
 | 
	
		
			
				|  |  | +    } else {
 | 
	
		
			
				|  |  | +      _this.openid = "";
 | 
	
		
			
				|  |  | +      LocalStorage.set("openid", "");
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    if (LocalStorage.has("warehouse_code")) {
 | 
	
		
			
				|  |  | +      _this.warehouse_code = LocalStorage.getItem("warehouse_code");
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    if (LocalStorage.has("warehouse_name")) {
 | 
	
		
			
				|  |  | +      _this.warehouse_name = LocalStorage.getItem("warehouse_name");
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    if (LocalStorage.has("login_name")) {
 | 
	
		
			
				|  |  | +      _this.login_name = LocalStorage.getItem("login_name");
 | 
	
		
			
				|  |  | +    } else {
 | 
	
		
			
				|  |  | +      _this.login_name = "";
 | 
	
		
			
				|  |  | +      LocalStorage.set("login_name", "");
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    if (LocalStorage.has("auth")) {
 | 
	
		
			
				|  |  | +      const timeStamp = Date.now();
 | 
	
		
			
				|  |  | +      const formattedString = date.formatDate(timeStamp, "YYYY/MM/DD");
 | 
	
		
			
				|  |  | +      _this.date = formattedString;
 | 
	
		
			
				|  |  | +      console.log(_this.date);
 | 
	
		
			
				|  |  | +      _this.authin = "1";
 | 
	
		
			
				|  |  | +      _this.getList();
 | 
	
		
			
				|  |  | +    } else {
 | 
	
		
			
				|  |  | +      _this.authin = "0";
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    getauth("warehouse/boundcodetype/", {})
 | 
	
		
			
				|  |  | +      .then((res) => {
 | 
	
		
			
				|  |  | +        _this.bound_code_type_list = res.results.map((item) => ({
 | 
	
		
			
				|  |  | +          label: item.bound_code_type_name,
 | 
	
		
			
				|  |  | +          value: item.bound_code_type_code,
 | 
	
		
			
				|  |  | +        }));
 | 
	
		
			
				|  |  | +        // 编码 → 名称的映射(普通对象,确保响应式)
 | 
	
		
			
				|  |  | +        _this.bound_code_type_map = res.results.reduce((acc, item) => {
 | 
	
		
			
				|  |  | +          acc[item.bound_code_type_code] = item.bound_code_type_name;
 | 
	
		
			
				|  |  | +          return acc;
 | 
	
		
			
				|  |  | +        }, {});
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +      .catch((err) => {
 | 
	
		
			
				|  |  | +        _this.$q.notify({
 | 
	
		
			
				|  |  | +          message: err.detail,
 | 
	
		
			
				|  |  | +          icon: "close",
 | 
	
		
			
				|  |  | +          color: "negative",
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    getauth("warehouse/boundtype/", {})
 | 
	
		
			
				|  |  | +      .then((res) => {
 | 
	
		
			
				|  |  | +        _this.bound_desc_list = res.results.map((item) => ({
 | 
	
		
			
				|  |  | +          label: item.bound_type_name,
 | 
	
		
			
				|  |  | +          value: item.bound_type_code,
 | 
	
		
			
				|  |  | +        }));
 | 
	
		
			
				|  |  | +        // 编码 → 名称的映射(普通对象,确保响应式)
 | 
	
		
			
				|  |  | +        _this.bound_desc_map = res.results.reduce((acc, item) => {
 | 
	
		
			
				|  |  | +          acc[item.bound_type_code] = item.bound_type_name;
 | 
	
		
			
				|  |  | +          return acc;
 | 
	
		
			
				|  |  | +        }, {});
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +      .catch((err) => {
 | 
	
		
			
				|  |  | +        _this.$q.notify({
 | 
	
		
			
				|  |  | +          message: err.detail,
 | 
	
		
			
				|  |  | +          icon: "close",
 | 
	
		
			
				|  |  | +          color: "negative",
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    getauth("warehouse/department/", {})
 | 
	
		
			
				|  |  | +      .then((res) => {
 | 
	
		
			
				|  |  | +        _this.bound_department_list = res.results.map((item) => ({
 | 
	
		
			
				|  |  | +          label: item.department_name,
 | 
	
		
			
				|  |  | +          value: item.department_code,
 | 
	
		
			
				|  |  | +        }));
 | 
	
		
			
				|  |  | +        _this.bound_department_map = res.results.reduce((acc, item) => {
 | 
	
		
			
				|  |  | +          acc[item.department_code] = item.department_name;
 | 
	
		
			
				|  |  | +          return acc;
 | 
	
		
			
				|  |  | +        }, {});
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +      .catch((err) => {
 | 
	
		
			
				|  |  | +        _this.$q.notify({
 | 
	
		
			
				|  |  | +          message: err.detail,
 | 
	
		
			
				|  |  | +          icon: "close",
 | 
	
		
			
				|  |  | +          color: "negative",
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    getauth("warehouse/boundbusiness/", {})
 | 
	
		
			
				|  |  | +      .then((res) => {
 | 
	
		
			
				|  |  | +        _this.bound_bs_type_list = res.results.map((item) => ({
 | 
	
		
			
				|  |  | +          label: item.bound_bs_name,
 | 
	
		
			
				|  |  | +          value: item.bound_bs_code,
 | 
	
		
			
				|  |  | +        }));
 | 
	
		
			
				|  |  | +        // 编码 → 名称的映射(普通对象,确保响应式)
 | 
	
		
			
				|  |  | +        _this.bound_bs_type_map = res.results.reduce((acc, item) => {
 | 
	
		
			
				|  |  | +          acc[item.bound_bs_code] = item.bound_bs_name;
 | 
	
		
			
				|  |  | +          return acc;
 | 
	
		
			
				|  |  | +        }, {});
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +      .catch((err) => {
 | 
	
		
			
				|  |  | +        _this.$q.notify({
 | 
	
		
			
				|  |  | +          message: err.detail,
 | 
	
		
			
				|  |  | +          icon: "close",
 | 
	
		
			
				|  |  | +          color: "negative",
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  mounted() {
 | 
	
		
			
				|  |  | +    var _this = this;
 | 
	
		
			
				|  |  | +    if (_this.$q.platform.is.electron) {
 | 
	
		
			
				|  |  | +      _this.height = String(_this.$q.screen.height - 290) + "px";
 | 
	
		
			
				|  |  | +    } else {
 | 
	
		
			
				|  |  | +      _this.height = _this.$q.screen.height - 290 + "" + "px";
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    _this.newFormData.creater = _this.login_name;
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  updated() {},
 | 
	
		
			
				|  |  | +  destroyed() {},
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +</script>
 | 
	
		
			
				|  |  | +<style scoped>
 | 
	
		
			
				|  |  | +/* 添加在 <style> 中 */
 | 
	
		
			
				|  |  | +.q-date__calendar-item--selected {
 | 
	
		
			
				|  |  | +  transition: all 0.3s ease;
 | 
	
		
			
				|  |  | +  background-color: #1976d2 !important;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.q-date__range {
 | 
	
		
			
				|  |  | +  background-color: rgba(25, 118, 210, 0.1);
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +:deep(.q-field__label) {
 | 
	
		
			
				|  |  | +  margin-top: 8px;
 | 
	
		
			
				|  |  | +  align-self: center;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +:deep(.q-field__control-container) {
 | 
	
		
			
				|  |  | +  padding-left: 50px;
 | 
	
		
			
				|  |  | +  margin-top: -5px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +</style>
 |