|
@@ -7,38 +7,17 @@
|
|
|
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('new')" icon="add" @click="newForm = true">
|
|
|
- <q-tooltip content-class="bg-amber text-black shadow-4" :offset="[10, 10]"
|
|
|
- content-style="font-size: 12px">{{ $t('newtip') }}</q-tooltip>
|
|
|
- </q-btn>
|
|
|
+
|
|
|
<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 :label="$t('downloadasnlist')" icon="cloud_download" @click="downloadlistData()">
|
|
|
- </q-btn>
|
|
|
+
|
|
|
</q-btn-group>
|
|
|
|
|
|
<q-space />
|
|
|
|
|
|
<div class="flex items-center">
|
|
|
- <div class="q-mr-md">{{ $t("download_center.createTime") }}</div>
|
|
|
- <q-input readonly outlined dense v-model="createDate2" :placeholder="interval">
|
|
|
- <template v-slot:append>
|
|
|
- <q-icon name="event" class="cursor-pointer">
|
|
|
- <q-popup-proxy ref="qDateProxy" transition-show="scale" transition-hide="scale">
|
|
|
- <q-date v-model="createDate1" range>
|
|
|
- <div class="row items-center justify-end q-gutter-sm">
|
|
|
- <q-btn :label="$t('index.cancel')" color="primary" flat v-close-popup />
|
|
|
- <q-btn :label="$t('index.clear')" color="primary" @click="createDate2 = ''; createDate1 = '';"
|
|
|
- v-close-popup />
|
|
|
-
|
|
|
- </div>
|
|
|
- </q-date>
|
|
|
- </q-popup-proxy>
|
|
|
- </q-icon>
|
|
|
- </template>
|
|
|
- </q-input>
|
|
|
<q-btn-group push class="q-ml-md">
|
|
|
</q-btn-group>
|
|
|
<q-input outlined rounded dense debounce="300" color="primary" v-model="filter" :placeholder="$t('search')"
|
|
@@ -51,7 +30,6 @@
|
|
|
</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)">
|
|
@@ -81,14 +59,14 @@
|
|
|
</template>
|
|
|
|
|
|
<template v-if="props.row.id === editid">
|
|
|
- <q-td key="container_location" :props="props">
|
|
|
- <q-input dense outlined square v-model="editFormData.container_location"
|
|
|
+ <q-td key="current_location" :props="props">
|
|
|
+ <q-input dense outlined square v-model="editFormData.current_location"
|
|
|
:label="'当前位置'"
|
|
|
:rules="[val => (val && val.length > 0) || error2]" />
|
|
|
</q-td>
|
|
|
</template>
|
|
|
<template v-else-if="props.row.id !== editid">
|
|
|
- <q-td key="container_location" :props="props">{{ props.row.container_location }}</q-td>
|
|
|
+ <q-td key="current_location" :props="props">{{ props.row.current_location }}</q-td>
|
|
|
</template>
|
|
|
|
|
|
|
|
@@ -104,199 +82,14 @@
|
|
|
</template>
|
|
|
|
|
|
<template v-if="props.row.id === editid">
|
|
|
- <q-td key="business_type" :props="props">
|
|
|
- <q-input dense outlined square v-model="editFormData.business_type"
|
|
|
- :label="$t('goods.view_goodslist.business_type')"
|
|
|
+ <q-td key="last_operation" :props="props">
|
|
|
+ <q-input dense outlined square v-model="editFormData.last_operation"
|
|
|
+ :label="'最后操作时间'"
|
|
|
:rules="[val => (val && val.length > 0) || error4]" />
|
|
|
</q-td>
|
|
|
</template>
|
|
|
<template v-else-if="props.row.id !== editid">
|
|
|
- <q-td key="business_type" :props="props">{{ props.row.business_type }}</q-td>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-if="props.row.id === editid">
|
|
|
- <q-td key="iout_type" :props="props">
|
|
|
- <q-input dense outlined square v-model.number="editFormData.iout_type"
|
|
|
- :label="$t('goods.view_goodslist.iout_type')" :rules="[val => (val && val > 0) || error5]" />
|
|
|
- </q-td>
|
|
|
- </template>
|
|
|
- <template v-else-if="props.row.id !== editid">
|
|
|
- <q-td key="iout_type" :props="props">{{ props.row.iout_type }}</q-td>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-if="props.row.id === editid">
|
|
|
- <q-td key="department" :props="props">
|
|
|
- <q-input dense outlined square v-model.number="editFormData.department"
|
|
|
- :label="$t('goods.view_goodslist.department')" :rules="[val => (val && val > 0) || error6]" />
|
|
|
- </q-td>
|
|
|
- </template>
|
|
|
- <template v-else-if="props.row.id !== editid">
|
|
|
- <q-td key="department" :props="props">{{ props.row.department }}</q-td>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-if="props.row.id === editid">
|
|
|
- <q-td key="warehouse_code" :props="props">
|
|
|
- <q-input dense outlined square v-model.number="editFormData.warehouse_code"
|
|
|
- :label="$t('goods.view_goodslist.warehouse_code')" :rules="[val => (val && val > 0) || error7]" />
|
|
|
- </q-td>
|
|
|
- </template>
|
|
|
- <template v-else-if="props.row.id !== editid">
|
|
|
- <q-td key="warehouse_code" :props="props">{{ props.row.warehouse_code }}</q-td>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-if="props.row.id === editid">
|
|
|
- <q-td key="warehouse_name" :props="props">
|
|
|
- <q-input dense outlined square v-model.number="editFormData.warehouse_name"
|
|
|
- :label="$t('goods.view_goodslist.warehouse_name')" :rules="[val => (val && val > 0) || error8]" />
|
|
|
- </q-td>
|
|
|
- </template>
|
|
|
- <template v-else-if="props.row.id !== editid">
|
|
|
- <q-td key="warehouse_name" :props="props">{{ props.row.warehouse_name }}</q-td>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-if="props.row.id === editid">
|
|
|
- <q-td key="goods_code" :props="props">
|
|
|
- <q-input dense outlined square v-model.number="editFormData.goods_code"
|
|
|
- :label="$t('goods.view_goodslist.goods_code')" :rules="[val => (val && val > 0) || error8]" />
|
|
|
- </q-td>
|
|
|
- </template>
|
|
|
- <template v-else-if="props.row.id !== editid">
|
|
|
- <q-td key="goods_code" :props="props">{{ props.row.goods_code }}</q-td>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-if="props.row.id === editid">
|
|
|
- <q-td key="goods_desc" :props="props">
|
|
|
- <q-input dense outlined square v-model.number="editFormData.goods_desc"
|
|
|
- :label="$t('goods.view_goodslist.goods_desc')" :rules="[val => (val && val > 0) || error8]" />
|
|
|
- </q-td>
|
|
|
- </template>
|
|
|
- <template v-else-if="props.row.id !== editid">
|
|
|
- <q-td key="goods_desc" :props="props">{{ props.row.goods_desc }}</q-td>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-if="props.row.id === editid">
|
|
|
- <q-td key="goods_std" :props="props">
|
|
|
- <q-input dense outlined square v-model.number="editFormData.goods_std"
|
|
|
- :label="$t('goods.view_goodslist.goods_std')" :rules="[val => (val && val > 0) || error8]" />
|
|
|
- </q-td>
|
|
|
- </template>
|
|
|
- <template v-else-if="props.row.id !== editid">
|
|
|
- <q-td key="goods_std" :props="props">{{ props.row.goods_std }}</q-td>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-if="props.row.id === editid">
|
|
|
- <q-td key="goods_batch" :props="props">
|
|
|
- <q-input dense outlined square v-model.number="editFormData.goods_batch"
|
|
|
- :label="$t('goods.view_goodslist.goods_batch')" :rules="[val => (val && val > 0) || error8]" />
|
|
|
- </q-td>
|
|
|
- </template>
|
|
|
- <template v-else-if="props.row.id !== editid">
|
|
|
- <q-td key="goods_batch" :props="props">{{ props.row.goods_batch }}</q-td>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-if="props.row.id === editid">
|
|
|
- <q-td key="in_batch" :props="props">
|
|
|
- <q-input dense outlined square v-model.number="editFormData.in_batch"
|
|
|
- :label="$t('goods.view_goodslist.in_batch')" :rules="[val => (val && val > 0) || error8]" />
|
|
|
- </q-td>
|
|
|
- </template>
|
|
|
- <template v-else-if="props.row.id !== editid">
|
|
|
- <q-td key="in_batch" :props="props">{{ props.row.in_batch }}</q-td>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-if="props.row.id === editid">
|
|
|
- <q-td key="out_batch" :props="props">
|
|
|
- <q-input dense outlined square v-model.number="editFormData.out_batch"
|
|
|
- :label="$t('goods.view_goodslist.out_batch')" :rules="[val => (val && val > 0) || error8]" />
|
|
|
- </q-td>
|
|
|
- </template>
|
|
|
- <template v-else-if="props.row.id !== editid">
|
|
|
- <q-td key="out_batch" :props="props">{{ props.row.out_batch }}</q-td>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-if="props.row.id === editid">
|
|
|
- <q-td key="goods_unit" :props="props">
|
|
|
- <q-input dense outlined square v-model.number="editFormData.goods_unit"
|
|
|
- :label="$t('goods.view_goodslist.goods_unit')" :rules="[val => (val && val > 0) || error8]" />
|
|
|
- </q-td>
|
|
|
- </template>
|
|
|
- <template v-else-if="props.row.id !== editid">
|
|
|
- <q-td key="goods_unit" :props="props">{{ props.row.goods_unit }}</q-td>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-if="props.row.id === editid">
|
|
|
- <q-td key="goods_in" :props="props">
|
|
|
- <q-input dense outlined square v-model.number="editFormData.goods_in" type="number"
|
|
|
- :label="$t('goods.view_goodslist.goods_in')" :rules="[val => (val && val > 0) || error8]" />
|
|
|
- </q-td>
|
|
|
- </template>
|
|
|
- <template v-else-if="props.row.id !== editid">
|
|
|
- <q-td key="goods_in" :props="props">{{ props.row.goods_in }}</q-td>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-if="props.row.id === editid">
|
|
|
- <q-td key="goods_out" :props="props">
|
|
|
- <q-input dense outlined square v-model.number="editFormData.goods_out" type="number"
|
|
|
- :label="$t('goods.view_goodslist.goods_out')" :rules="[val => (val && val > 0) || error8]" />
|
|
|
- </q-td>
|
|
|
- </template>
|
|
|
- <template v-else-if="props.row.id !== editid">
|
|
|
- <q-td key="goods_out" :props="props">{{ props.row.goods_out }}</q-td>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-if="props.row.id === editid">
|
|
|
- <q-td key="goods_notes" :props="props">
|
|
|
- <q-input dense outlined square v-model.number="editFormData.goods_notes"
|
|
|
- :label="$t('goods.view_goodslist.goods_notes')" :rules="[val => (val && val > 0) || error8]" />
|
|
|
- </q-td>
|
|
|
- </template>
|
|
|
- <template v-else-if="props.row.id !== editid">
|
|
|
- <q-td key="goods_notes" :props="props">{{ props.row.goods_notes }}</q-td>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-if="props.row.id === editid">
|
|
|
- <q-td key="creator" :props="props">
|
|
|
- <q-input dense outlined square v-model.number="editFormData.creator"
|
|
|
- :label="$t('goods.view_goodslist.creator')" :rules="[val => (val && val > 0) || error8]" />
|
|
|
- </q-td>
|
|
|
- </template>
|
|
|
- <template v-else-if="props.row.id !== editid">
|
|
|
- <q-td key="creator" :props="props">{{ props.row.creator }}</q-td>
|
|
|
- </template>
|
|
|
-
|
|
|
-
|
|
|
- <template v-if="!editMode">
|
|
|
- <q-td key="action" :props="props" style="width: 100px">
|
|
|
- <q-btn round flat push color="info" icon="print" @click="viewData(props.row)">
|
|
|
- <q-tooltip content-class="bg-amber text-black shadow-4" :offset="[10, 10]"
|
|
|
- content-style="font-size: 12px">
|
|
|
- {{ $t('goods.view_goodslist.print_goods_label') }}
|
|
|
- </q-tooltip>
|
|
|
- </q-btn>
|
|
|
- <q-btn round flat push color="purple" icon="edit" @click="editData(props.row)">
|
|
|
- <q-tooltip content-class="bg-amber text-black shadow-4" :offset="[10, 10]"
|
|
|
- content-style="font-size: 12px">{{ $t('edit') }}</q-tooltip>
|
|
|
- </q-btn>
|
|
|
- <q-btn round flat push color="dark" icon="delete" @click="deleteData(props.row.id)">
|
|
|
- <q-tooltip content-class="bg-amber text-black shadow-4" :offset="[10, 10]"
|
|
|
- content-style="font-size: 12px">{{ $t('delete') }}</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>
|
|
|
+ <q-td key="last_operation" :props="props">{{ props.row.last_operation }}</q-td>
|
|
|
</template>
|
|
|
</q-tr>
|
|
|
</template>
|
|
@@ -316,115 +109,107 @@
|
|
|
<q-btn flat push color="dark" :label="$t('no_data')"></q-btn>
|
|
|
</div>
|
|
|
</template>
|
|
|
- <q-dialog v-model="newForm">
|
|
|
- <q-card class="shadow-24">
|
|
|
- <q-bar class="bg-light-blue-10 text-white rounded-borders" style="height: 50px">
|
|
|
- <div>{{ $t('newtip') }}</div>
|
|
|
- <q-space />
|
|
|
- <q-btn dense flat icon="close" v-close-popup>
|
|
|
- <q-tooltip content-class="bg-amber text-black shadow-4">{{ $t('index.close') }}</q-tooltip>
|
|
|
- </q-btn>
|
|
|
- </q-bar>
|
|
|
- <q-card-section style="max-height: 325px; width: 400px" class="scroll">
|
|
|
- <q-input dense outlined square v-model="newFormData.goods_code" :label="$t('goods.view_goodslist.goods_code')"
|
|
|
- autofocus :rules="[val => (val && val.length > 0) || error1]" @keyup.enter="newDataSubmit()" />
|
|
|
- <q-input dense outlined square v-model="newFormData.goods_desc" :label="$t('goods.view_goodslist.goods_desc')"
|
|
|
- :rules="[val => (val && val.length > 0) || error2]" @keyup.enter="newDataSubmit()" />
|
|
|
- <q-select dense outlined square v-model="newFormData.goods_supplier" :options="supplier_list"
|
|
|
- transition-show="scale" transition-hide="scale" :label="$t('goods.view_goodslist.goods_supplier')"
|
|
|
- :rules="[val => (val && val.length > 0) || error3]" @keyup.enter="newDataSubmit()" />
|
|
|
- <q-input dense outlined square v-model.number="newFormData.goods_weight" type="number"
|
|
|
- :label="$t('goods.view_goodslist.goods_weight')" :rules="[val => (val && val > 0) || error4]"
|
|
|
- @keyup.enter="newDataSubmit()" />
|
|
|
- <q-input dense outlined square v-model.number="newFormData.goods_w" type="number"
|
|
|
- :label="$t('goods.view_goodslist.goods_w')" :rules="[val => (val && val > 0) || error5]"
|
|
|
- @keyup.enter="newDataSubmit()" />
|
|
|
- <q-input dense outlined square v-model.number="newFormData.goods_d" type="number"
|
|
|
- :label="$t('goods.view_goodslist.goods_d')" :rules="[val => (val && val > 0) || error6]"
|
|
|
- @keyup.enter="newDataSubmit()" />
|
|
|
- <q-input dense outlined square v-model.number="newFormData.goods_h" type="number"
|
|
|
- :label="$t('goods.view_goodslist.goods_h')" :rules="[val => (val && val > 0) || error7]"
|
|
|
- @keyup.enter="newDataSubmit()" />
|
|
|
- <q-select dense outlined square v-model="newFormData.goods_unit" :options="goods_unit_list"
|
|
|
- transition-show="scale" transition-hide="scale" :label="$t('goods.view_goodslist.goods_unit')"
|
|
|
- :rules="[val => (val && val.length > 0) || error8]" @keyup.enter="newDataSubmit()" />
|
|
|
- <q-select dense outlined square v-model="newFormData.goods_class" :options="goods_class_list"
|
|
|
- transition-show="scale" transition-hide="scale" :label="$t('goods.view_goodslist.goods_class')"
|
|
|
- :rules="[val => (val && val.length > 0) || error9]" @keyup.enter="newDataSubmit()" />
|
|
|
- <q-select dense outlined square v-model="newFormData.goods_brand" :options="goods_brand_list"
|
|
|
- transition-show="scale" transition-hide="scale" :label="$t('goods.view_goodslist.goods_brand')"
|
|
|
- :rules="[val => (val && val.length > 0) || error10]" @keyup.enter="newDataSubmit()" />
|
|
|
- <q-select dense outlined square v-model="newFormData.goods_color" :options="goods_color_list"
|
|
|
- transition-show="scale" transition-hide="scale" :label="$t('goods.view_goodslist.goods_color')"
|
|
|
- :rules="[val => (val && val.length > 0) || error11]" @keyup.enter="newDataSubmit()" />
|
|
|
- <q-select dense outlined square v-model="newFormData.goods_shape" :options="goods_shape_list"
|
|
|
- transition-show="scale" transition-hide="scale" :label="$t('goods.view_goodslist.goods_shape')"
|
|
|
- :rules="[val => (val && val.length > 0) || error12]" @keyup.enter="newDataSubmit()" />
|
|
|
- <q-select dense outlined square v-model="newFormData.goods_specs" :options="goods_specs_list"
|
|
|
- transition-show="scale" transition-hide="scale" :label="$t('goods.view_goodslist.goods_specs')"
|
|
|
- :rules="[val => (val && val.length > 0) || error13]" @keyup.enter="newDataSubmit()" />
|
|
|
- <q-select dense outlined square v-model="newFormData.goods_origin" :options="goods_origin_list"
|
|
|
- transition-show="scale" transition-hide="scale" :label="$t('goods.view_goodslist.goods_origin')"
|
|
|
- :rules="[val => (val && val.length > 0) || error14]" @keyup.enter="newDataSubmit()" />
|
|
|
- <q-input dense outlined square v-model.number="newFormData.goods_cost" type="number"
|
|
|
- :label="$t('goods.view_goodslist.goods_cost')" :rules="[val => (val && val > 0) || error15]"
|
|
|
- @keyup.enter="newDataSubmit()" />
|
|
|
- <q-input dense outlined square v-model.number="newFormData.goods_price" type="number"
|
|
|
- :label="$t('goods.view_goodslist.goods_price')" :rules="[val => (val && val > 0) || error16]"
|
|
|
- @keyup.enter="newDataSubmit()" />
|
|
|
- </q-card-section>
|
|
|
- <div style="float: right; padding: 15px 15px 15px 0">
|
|
|
- <q-btn color="white" text-color="black" style="margin-right: 25px" @click="newDataCancel()">{{ $t('cancel')
|
|
|
- }}</q-btn>
|
|
|
- <q-btn color="primary" @click="newDataSubmit()">{{ $t('submit') }}</q-btn>
|
|
|
- </div>
|
|
|
- </q-card>
|
|
|
- </q-dialog>
|
|
|
- <q-dialog v-model="deleteForm">
|
|
|
- <q-card class="shadow-24">
|
|
|
- <q-bar class="bg-light-blue-10 text-white rounded-borders" style="height: 50px">
|
|
|
- <div>{{ $t('delete') }}</div>
|
|
|
- <q-space />
|
|
|
- <q-btn dense flat icon="close" v-close-popup>
|
|
|
- <q-tooltip>{{ $t('index.close') }}</q-tooltip>
|
|
|
- </q-btn>
|
|
|
- </q-bar>
|
|
|
- <q-card-section style="max-height: 325px; width: 400px" class="scroll">{{ $t('deletetip') }}</q-card-section>
|
|
|
- <div style="float: right; padding: 15px 15px 15px 0">
|
|
|
- <q-btn color="white" text-color="black" style="margin-right: 25px" @click="deleteDataCancel()">{{ $t('cancel')
|
|
|
- }}</q-btn>
|
|
|
- <q-btn color="primary" @click="deleteDataSubmit()">{{ $t('submit') }}</q-btn>
|
|
|
- </div>
|
|
|
- </q-card>
|
|
|
- </q-dialog>
|
|
|
- <q-dialog v-model="viewForm">
|
|
|
- <div id="printMe" style="width: 400px;height:280px;background-color: white">
|
|
|
- <q-card-section>
|
|
|
- <div class="row" style="height: 50px">
|
|
|
- <div class="col-3"><img src="statics/goods/logo.png"
|
|
|
- style="width: 60px;height: 50px;margin-top: 5px;margin-left: 5px" /></div>
|
|
|
- <div class="col-9" style="height: 50px;float: contour;margin-top: 10px">
|
|
|
- <p style="font-size: 20px;font-weight: 550">{{ $t('goods.view_goodslist.goods_code') + ':' + goods_code }}
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <hr />
|
|
|
- <div class="row">
|
|
|
- <div class="col-8" style="margin-top: 30px;padding-left: 3%">
|
|
|
- <p style="font-size: 20px;font-weight: 550">{{ $t('goods.view_goodslist.goods_name') + ':' }}</p>
|
|
|
- <p style="font-size: 20px;font-weight: 550">{{ goods_desc }}</p>
|
|
|
- </div>
|
|
|
- <div class="col-4" style="margin-top: 25px;"><img :src="bar_code" style="width: 70%;margin-left: 23px" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </q-card-section>
|
|
|
- </div>
|
|
|
- <div style="float: right; padding: 15px 15px 15px 0"><q-btn color="primary" icon="print"
|
|
|
- v-print="printObj">print</q-btn></div>
|
|
|
- </q-dialog>
|
|
|
+
|
|
|
+ <q-dialog v-model="detailForm" transition-show="jump-down" transition-hide="jump-up" >
|
|
|
+ <q-card style="min-width: 900px; ">
|
|
|
+ <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.bound_date" :label="'单据时间'" :readonly=true />
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div class="col column q-gutter-y-md">
|
|
|
+ <q-input dense outlined square v-model="table_detail.bound_code" :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-actions class="q-px-none" style="position: absolute; right: 20px; top: 10px; z-index: 100">
|
|
|
+ <q-btn v-if="!onlyread" icon="add" flat dense color="primary" @click="addbatch(table_detail.id)" :label="$t('stock.add')" />
|
|
|
+
|
|
|
+ </q-card-actions>
|
|
|
+ <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" style="min-width: 150px">
|
|
|
+ <q-input
|
|
|
+ v-model="item.bound_batch.bound_number"
|
|
|
+ :label="'批次'"
|
|
|
+ :readonly="onlyread"
|
|
|
+ dense outlined
|
|
|
+
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="col">
|
|
|
+ <q-input
|
|
|
+ v-model="item.bound_batch.goods_desc"
|
|
|
+ :label="'货物'"
|
|
|
+ :readonly="onlyread"
|
|
|
+ dense outlined
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="col">
|
|
|
+ <q-input
|
|
|
+ v-model="item.bound_batch.goods_weight"
|
|
|
+ :label="'单重'"
|
|
|
+ :readonly="onlyread"
|
|
|
+ dense outlined
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="col">
|
|
|
+ <q-input
|
|
|
+ v-model="item.bound_batch.goods_qty"
|
|
|
+ :label="'数量'"
|
|
|
+ :readonly="onlyread"
|
|
|
+ dense outlined
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="col" style="max-width: 50px">
|
|
|
+ <q-btn v-if="!onlyread" icon="delete" flat dense color="primary" @click="addbatch(table_detail.id)" style="margin-top:1px;"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ </template>
|
|
|
+ </q-card-section>
|
|
|
+ </q-card>
|
|
|
+ </div>
|
|
|
+ </q-card>
|
|
|
+ </q-dialog>
|
|
|
+
|
|
|
</div>
|
|
|
</template>
|
|
|
- <router-view />
|
|
|
+
|
|
|
|
|
|
<script>
|
|
|
import { getauth, postauth, putauth, deleteauth } from 'boot/axios_request'
|
|
@@ -435,32 +220,19 @@
|
|
|
name: 'Pageflowlist',
|
|
|
data() {
|
|
|
return {
|
|
|
- createDate1: '',
|
|
|
- createDate2: '',
|
|
|
- date_range: '',
|
|
|
- proxyDate: '',
|
|
|
- date: '',
|
|
|
goods_code: '',
|
|
|
goods_desc: '',
|
|
|
openid: '',
|
|
|
login_name: '',
|
|
|
authin: '0',
|
|
|
searchUrl: '',
|
|
|
- pathname: 'reportcenter/flow/',
|
|
|
- pathfilename: 'reportcenter/file/',
|
|
|
-
|
|
|
+ pathname: 'container/list/',
|
|
|
pathname_previous: '',
|
|
|
pathname_next: '',
|
|
|
separator: 'cell',
|
|
|
loading: false,
|
|
|
height: '',
|
|
|
- viewForm: false,
|
|
|
- printObj: {
|
|
|
- id: 'printMe',
|
|
|
- popTitle: this.$t('inbound.asn')
|
|
|
- },
|
|
|
table_list: [],
|
|
|
-
|
|
|
columns: [
|
|
|
{ name :'detail',label:'详情', field: 'detail', align: 'center'},
|
|
|
{ name: 'container_code', required: true, label: '托盘编码', align: 'center', field: 'container_code' },
|
|
@@ -474,64 +246,21 @@
|
|
|
page: 1,
|
|
|
rowsPerPage: 11
|
|
|
},
|
|
|
- newForm: false,
|
|
|
- newFormData: {
|
|
|
- document_date: '',
|
|
|
- document_number: '',
|
|
|
- document_type: '',
|
|
|
- business_type: '',
|
|
|
- iout_type: '',
|
|
|
- department: '',
|
|
|
- warehouse_code: '',
|
|
|
- warehouse_name: '',
|
|
|
- goods_code: '',
|
|
|
- goods_desc: '',
|
|
|
- goods_std: '',
|
|
|
- goods_batch: '',
|
|
|
- in_batch: '',
|
|
|
- out_batch: '',
|
|
|
- goods_unit: '',
|
|
|
- goods_in: '',
|
|
|
- goods_out: '',
|
|
|
- goods_notes: '',
|
|
|
- creator: ''
|
|
|
- },
|
|
|
editid: 0,
|
|
|
editFormData: {},
|
|
|
- editMode: false,
|
|
|
- deleteForm: false,
|
|
|
- deleteid: 0,
|
|
|
- bar_code: '',
|
|
|
+ detailForm: false,
|
|
|
+ activeTab: 'tab1',
|
|
|
+ table_detail: {},
|
|
|
+ batch_detail: [],
|
|
|
error1: this.$t('goods.view_goodslist.error1'),
|
|
|
- error2: this.$t('goods.view_goodslist.error2'),
|
|
|
- error3: this.$t('goods.view_goodslist.error3'),
|
|
|
- error4: this.$t('goods.view_goodslist.error4'),
|
|
|
- error5: this.$t('goods.view_goodslist.error5'),
|
|
|
- error6: this.$t('goods.view_goodslist.error6'),
|
|
|
- error7: this.$t('goods.view_goodslist.error7'),
|
|
|
- error8: this.$t('goods.view_unit.error1'),
|
|
|
- error9: this.$t('goods.view_class.error1'),
|
|
|
- error10: this.$t('goods.view_brand.error1'),
|
|
|
- error11: this.$t('goods.view_color.error1'),
|
|
|
- error12: this.$t('goods.view_shape.error1'),
|
|
|
- error13: this.$t('goods.view_specs.error1'),
|
|
|
- error14: this.$t('goods.view_origin.error1'),
|
|
|
- error15: this.$t('goods.view_goodslist.error8'),
|
|
|
- error16: this.$t('goods.view_goodslist.error9'),
|
|
|
current: 1,
|
|
|
max: 0,
|
|
|
total: 0,
|
|
|
paginationIpt: 1,
|
|
|
- current: 1,
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- },
|
|
|
- computed: {
|
|
|
- interval() {
|
|
|
- return this.$t('download_center.start') + ' - ' + this.$t('download_center.end')
|
|
|
}
|
|
|
+
|
|
|
},
|
|
|
+
|
|
|
methods: {
|
|
|
getList(params = {}) {
|
|
|
var _this = this
|
|
@@ -592,57 +321,10 @@
|
|
|
this.current = page
|
|
|
this.paginationIpt = page
|
|
|
this.getList({
|
|
|
- goods_desc__icontains: this.filter,
|
|
|
- document_date__range: this.date_range
|
|
|
- })
|
|
|
- },
|
|
|
- downloadlistData() {
|
|
|
- this.getfileList()
|
|
|
-
|
|
|
- },
|
|
|
- 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)
|
|
|
- }
|
|
|
+ container_code__icontains: this.filter,
|
|
|
+
|
|
|
})
|
|
|
- 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')) {
|
|
@@ -685,199 +367,39 @@
|
|
|
var _this = this
|
|
|
_this.getSearchList()
|
|
|
},
|
|
|
-
|
|
|
- newDataSubmit() {
|
|
|
- var _this = this
|
|
|
- var goodscodes = []
|
|
|
- _this.table_list.forEach(i => {
|
|
|
- goodscodes.push(i.goods_code)
|
|
|
- })
|
|
|
- if (goodscodes.indexOf(_this.newFormData.goods_code) === -1 && _this.newFormData.goods_code.length !== 0) {
|
|
|
- _this.newFormData.creater = _this.login_name
|
|
|
- postauth(_this.pathname, _this.newFormData)
|
|
|
- .then(res => {
|
|
|
- _this.getSearchList()
|
|
|
- _this.newDataCancel()
|
|
|
- if (res.status_code != 500) {
|
|
|
- _this.$q.notify({
|
|
|
- message: 'Success Create',
|
|
|
- icon: 'check',
|
|
|
- color: 'green'
|
|
|
- })
|
|
|
- }
|
|
|
- })
|
|
|
- .catch(err => {
|
|
|
- _this.$q.notify({
|
|
|
- message: err.detail,
|
|
|
- icon: 'close',
|
|
|
- color: 'negative'
|
|
|
- })
|
|
|
- })
|
|
|
- } else if (goodscodes.indexOf(_this.newFormData.goods_code) !== -1) {
|
|
|
- _this.$q.notify({
|
|
|
- message: _this.$t('notice.goodserror.goods_listerror'),
|
|
|
- icon: 'close',
|
|
|
- color: 'negative'
|
|
|
- })
|
|
|
- } else if (_this.newFormData.goods_code.length === 0) {
|
|
|
- _this.$q.notify({
|
|
|
- message: _this.$t('goods.view_goodslist.error1'),
|
|
|
- icon: 'close',
|
|
|
- color: 'negative'
|
|
|
- })
|
|
|
- }
|
|
|
- goodscodes = []
|
|
|
- },
|
|
|
- newDataCancel() {
|
|
|
- var _this = this
|
|
|
- _this.newForm = false
|
|
|
- _this.newFormData = {
|
|
|
- goods_code: '',
|
|
|
- goods_desc: '',
|
|
|
- goods_supplier: '',
|
|
|
- goods_weight: '',
|
|
|
- goods_w: '',
|
|
|
- goods_d: '',
|
|
|
- goods_h: '',
|
|
|
- goods_unit: '',
|
|
|
- goods_class: '',
|
|
|
- goods_brand: '',
|
|
|
- goods_color: '',
|
|
|
- goods_shape: '',
|
|
|
- goods_specs: '',
|
|
|
- goods_origin: '',
|
|
|
- goods_cost: '',
|
|
|
- goods_price: '',
|
|
|
- creater: ''
|
|
|
- }
|
|
|
- },
|
|
|
- editData(e) {
|
|
|
- var _this = this
|
|
|
- _this.editMode = true
|
|
|
- _this.editid = e.id
|
|
|
- _this.editFormData = {
|
|
|
- goods_code: e.goods_code,
|
|
|
- goods_desc: e.goods_desc,
|
|
|
- goods_supplier: e.goods_supplier,
|
|
|
- goods_weight: e.goods_weight,
|
|
|
- goods_w: e.goods_w,
|
|
|
- goods_d: e.goods_d,
|
|
|
- goods_h: e.goods_h,
|
|
|
- goods_unit: e.goods_unit,
|
|
|
- goods_class: e.goods_class,
|
|
|
- goods_brand: e.goods_brand,
|
|
|
- goods_color: e.goods_color,
|
|
|
- goods_shape: e.goods_shape,
|
|
|
- goods_specs: e.goods_specs,
|
|
|
- goods_origin: e.goods_origin,
|
|
|
- goods_cost: e.goods_cost,
|
|
|
- goods_price: e.goods_price,
|
|
|
- creater: _this.login_name,
|
|
|
- bar_code: e.bar_code
|
|
|
- }
|
|
|
- },
|
|
|
- editDataSubmit() {
|
|
|
- var _this = this
|
|
|
- putauth(_this.pathname + _this.editid + '/', _this.editFormData)
|
|
|
- .then(res => {
|
|
|
- _this.editDataCancel()
|
|
|
- _this.getSearchList()
|
|
|
- if (res.status_code != 500) {
|
|
|
- _this.$q.notify({
|
|
|
- message: 'Success Edit Data',
|
|
|
- icon: 'check',
|
|
|
- color: 'green'
|
|
|
- })
|
|
|
- }
|
|
|
- })
|
|
|
- .catch(err => {
|
|
|
+ detailData(e) {
|
|
|
+ var _this = this
|
|
|
+ _this.detailForm = true
|
|
|
+ _this.detailid = e.id
|
|
|
+ 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'
|
|
|
})
|
|
|
})
|
|
|
- },
|
|
|
- editDataCancel() {
|
|
|
- var _this = this
|
|
|
- _this.editMode = false
|
|
|
- _this.editid = 0
|
|
|
- _this.editFormData = {
|
|
|
- goods_code: '',
|
|
|
- goods_desc: '',
|
|
|
- goods_supplier: '',
|
|
|
- goods_weight: '',
|
|
|
- goods_w: '',
|
|
|
- goods_d: '',
|
|
|
- goods_h: '',
|
|
|
- goods_unit: '',
|
|
|
- goods_class: '',
|
|
|
- goods_brand: '',
|
|
|
- goods_color: '',
|
|
|
- goods_shape: '',
|
|
|
- goods_specs: '',
|
|
|
- goods_origin: '',
|
|
|
- goods_cost: '',
|
|
|
- goods_price: '',
|
|
|
- creater: ''
|
|
|
- }
|
|
|
- },
|
|
|
- deleteData(e) {
|
|
|
- var _this = this
|
|
|
- _this.deleteForm = true
|
|
|
- _this.deleteid = e
|
|
|
- },
|
|
|
- deleteDataSubmit() {
|
|
|
- var _this = this
|
|
|
- deleteauth(_this.pathname + _this.deleteid + '/')
|
|
|
- .then(res => {
|
|
|
- _this.deleteDataCancel()
|
|
|
- _this.getSearchList()
|
|
|
- _this.$q.notify({
|
|
|
- message: 'Success Edit Data',
|
|
|
- icon: 'check',
|
|
|
- color: 'green'
|
|
|
- })
|
|
|
- })
|
|
|
- .catch(err => {
|
|
|
+ console.log("detail查询的结果是:",_this.table_detail)
|
|
|
+
|
|
|
+ getauth('bound/detail/?bound_list=' + _this.detailid)
|
|
|
+ .then(res =>{
|
|
|
+ _this.batch_detail = res.results
|
|
|
+ })
|
|
|
+ .catch(err => {
|
|
|
_this.$q.notify({
|
|
|
message: err.detail,
|
|
|
icon: 'close',
|
|
|
color: 'negative'
|
|
|
})
|
|
|
})
|
|
|
- },
|
|
|
- deleteDataCancel() {
|
|
|
- var _this = this
|
|
|
- _this.deleteForm = false
|
|
|
- _this.deleteid = 0
|
|
|
- },
|
|
|
- viewData(e) {
|
|
|
- var _this = this
|
|
|
- var QRCode = require('qrcode')
|
|
|
- QRCode.toDataURL(e.bar_code, [
|
|
|
- {
|
|
|
- errorCorrectionLevel: 'H',
|
|
|
- mode: 'byte',
|
|
|
- version: '2',
|
|
|
- type: 'image/jpeg'
|
|
|
- }
|
|
|
- ])
|
|
|
- .then(url => {
|
|
|
- _this.goods_code = e.goods_code
|
|
|
- _this.goods_desc = e.goods_desc
|
|
|
- _this.bar_code = url
|
|
|
- })
|
|
|
- .catch(err => {
|
|
|
- console.error(err)
|
|
|
- })
|
|
|
- _this.viewForm = true
|
|
|
- },
|
|
|
-
|
|
|
- updateProxy() {
|
|
|
- var _this = this
|
|
|
- _this.proxyDate = _this.date
|
|
|
- }
|
|
|
+ console.log("batch查询的结果是:",_this.batch_detail)
|
|
|
+ console.log("batch长度查询的结果是:",_this.batch_detail.length)
|
|
|
+
|
|
|
+ },
|
|
|
|
|
|
},
|
|
|
created() {
|
|
@@ -895,10 +417,8 @@
|
|
|
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 {
|
|
@@ -917,30 +437,7 @@
|
|
|
destroyed() { },
|
|
|
// 在 watch 或方法中添加调试代码
|
|
|
watch: {
|
|
|
- createDate1(val) {
|
|
|
- if (val) {
|
|
|
- if (val.to) {
|
|
|
- this.createDate2 = `${val.from} - ${val.to}`
|
|
|
- this.date_range = `${val.from},${val.to} `
|
|
|
-
|
|
|
- // this.downloadhUrl = this.pathname + 'filelist/?' + 'document_date__range=' + this.date_range
|
|
|
- } else {
|
|
|
- this.createDate2 = `${val}`
|
|
|
- this.dateArray = val.split('/')
|
|
|
- this.searchUrl = this.pathname + '?' + 'document_date__year=' + this.dateArray[0] + '&' + 'document_date__month=' + this.dateArray[1] + '&' + 'document_date__day=' + this.dateArray[2]
|
|
|
- // this.downloadhUrl = this.pathname + 'filelist/?' + 'document_date__year=' + this.dateArray[0] + '&' + 'document_date__month=' + this.dateArray[1] + '&' + 'document_date__day=' + this.dateArray[2]
|
|
|
- }
|
|
|
- this.date_range = this.date_range.replace(/\//g, '-')
|
|
|
-
|
|
|
- this.getSearchList()
|
|
|
- this.$refs.qDateProxy.hide()
|
|
|
- }
|
|
|
- else {
|
|
|
- this.createDate2 = ''
|
|
|
- this.date_range = ''
|
|
|
- this.getSearchList()
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
</script>
|