|
@@ -4,7 +4,8 @@ import { reactive, ref, unref } from "vue";
|
|
|
import { useAsync } from "/@/hooks/core/useAsync";
|
|
|
import { httpCgdList } from "/@/api/purchase/orderRecord";
|
|
|
import { selectOptions as _selectOptions } from "../_options";
|
|
|
-import { INPUT_MAX_LENGTH } from "/@/utils/global";
|
|
|
+import { useDebounceFn } from "@vueuse/core";
|
|
|
+
|
|
|
|
|
|
import {
|
|
|
send_status_list,
|
|
@@ -14,14 +15,13 @@ import {
|
|
|
|
|
|
const emit = defineEmits(["pushOrder"]);
|
|
|
|
|
|
-const props = defineProps<{
|
|
|
- supplierNo?: string;
|
|
|
- companyNo?: string;
|
|
|
-}>();
|
|
|
+const state = ref({
|
|
|
+ supplierNo: "",
|
|
|
+ companyNo: ""
|
|
|
+});
|
|
|
|
|
|
const visible = ref(false);
|
|
|
const selection = ref<Array<any>>([]);
|
|
|
-const selectOptions = ref(_selectOptions);
|
|
|
const tableRef = ref<InstanceType<typeof ElTable>>(null);
|
|
|
|
|
|
const {
|
|
@@ -33,8 +33,13 @@ const {
|
|
|
success: _data => (pagination.total = _data.count)
|
|
|
});
|
|
|
|
|
|
-const formData = ref<Record<string, string>>({
|
|
|
- codeType: "sequenceNo",
|
|
|
+const formData = ref<Record<string, any>>({
|
|
|
+ timer: [],
|
|
|
+ sequenceNo: "",
|
|
|
+ cxCode: "",
|
|
|
+ goodNo: "",
|
|
|
+ goodName: "",
|
|
|
+ cgder: "",
|
|
|
sendstatus: "",
|
|
|
cgdsource: "",
|
|
|
cgdtype: "",
|
|
@@ -49,13 +54,14 @@ const pagination = reactive({
|
|
|
|
|
|
async function handleSearch() {
|
|
|
loading.value = true;
|
|
|
- const { companyNo, supplierNo } = props;
|
|
|
+ const { companyNo, supplierNo } = state.value;
|
|
|
const { currentPage: page, pageSize: size } = pagination;
|
|
|
- const { codeType, code: keyword, ...restParams } = formData.value;
|
|
|
+ const { timer, ...restParams } = formData.value;
|
|
|
|
|
|
const searchParams = {
|
|
|
...restParams,
|
|
|
- [codeType]: keyword,
|
|
|
+ start: timer[0],
|
|
|
+ end: timer[1],
|
|
|
status: "0",
|
|
|
supplierNo,
|
|
|
companyNo,
|
|
@@ -69,7 +75,18 @@ async function handleSearch() {
|
|
|
//重置搜索
|
|
|
function handleReset() {
|
|
|
pagination.currentPage = 1;
|
|
|
- formData.value = {};
|
|
|
+ formData.value = {
|
|
|
+ timer: [],
|
|
|
+ sequenceNo: "",
|
|
|
+ goodNo: "",
|
|
|
+ goodName: "",
|
|
|
+ cgder: "",
|
|
|
+ cxCode: "",
|
|
|
+ sendstatus: "",
|
|
|
+ cgdsource: "",
|
|
|
+ cgdtype: "",
|
|
|
+ code: ""
|
|
|
+ };
|
|
|
handleSearch();
|
|
|
}
|
|
|
|
|
@@ -90,7 +107,10 @@ const handleSizeChange = () => {
|
|
|
};
|
|
|
|
|
|
defineExpose({
|
|
|
- onDisplay: () => (visible.value = true)
|
|
|
+ onDisplay: (_state: any) => {
|
|
|
+ visible.value = true;
|
|
|
+ state.value = _state;
|
|
|
+ }
|
|
|
});
|
|
|
</script>
|
|
|
|
|
@@ -103,63 +123,103 @@ defineExpose({
|
|
|
width="1040px"
|
|
|
@open="handleSearch"
|
|
|
>
|
|
|
- <div flex justify-between>
|
|
|
- <div flex mb-2 gap-2 w-full>
|
|
|
- <div flex mb-2 gap-2>
|
|
|
- <el-input
|
|
|
- v-model="formData.code"
|
|
|
- placeholder="关键字"
|
|
|
- class="input-with-select"
|
|
|
- :maxlength="INPUT_MAX_LENGTH"
|
|
|
- style="width: 340px"
|
|
|
- clearable
|
|
|
- >
|
|
|
- <template #prepend>
|
|
|
- <ElSelect
|
|
|
- v-model="formData.codeType"
|
|
|
- placeholder="关键字类型"
|
|
|
- style="width: 130px"
|
|
|
- >
|
|
|
- <ElOption
|
|
|
- v-for="(si, sii) in selectOptions"
|
|
|
- :key="'si' + si.value + sii"
|
|
|
- :label="si.label"
|
|
|
- :value="si.value"
|
|
|
- />
|
|
|
- </ElSelect>
|
|
|
- </template>
|
|
|
- </el-input>
|
|
|
+ <ElRow :gutter="5" mb-1>
|
|
|
+ <ElCol :span="6">
|
|
|
+ <ElDatePicker
|
|
|
+ size="small"
|
|
|
+ type="daterange"
|
|
|
+ v-model="formData.timer"
|
|
|
+ start-placeholder="开始时间"
|
|
|
+ end-placeholder="结束时间"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ </ElCol>
|
|
|
|
|
|
- <ElSelect
|
|
|
- placeholder="发货状态"
|
|
|
- v-model="formData.sendstatus"
|
|
|
- clearable
|
|
|
- w-200px
|
|
|
- >
|
|
|
- <ElOption
|
|
|
- v-for="status in send_status_list"
|
|
|
- :key="status.value"
|
|
|
- :label="status.label"
|
|
|
- :value="status.value"
|
|
|
- />
|
|
|
- </ElSelect>
|
|
|
+ <ElCol :span="6">
|
|
|
+ <ElInput
|
|
|
+ size="small"
|
|
|
+ placeholder="采购单编号"
|
|
|
+ v-model="formData.sequenceNo"
|
|
|
+ />
|
|
|
+ </ElCol>
|
|
|
|
|
|
- <ElSelect
|
|
|
- v-model="formData.cgdsource"
|
|
|
- placeholder="订单来源"
|
|
|
- clearable
|
|
|
- >
|
|
|
- <ElOption
|
|
|
- v-for="c in cg_order_source_options"
|
|
|
- :key="c.value"
|
|
|
- :label="c.label"
|
|
|
- :value="c.value"
|
|
|
- />
|
|
|
- </ElSelect>
|
|
|
+ <ElCol :span="6">
|
|
|
+ <ElInput
|
|
|
+ size="small"
|
|
|
+ placeholder="采购主单编号"
|
|
|
+ v-model="formData.cxCode"
|
|
|
+ />
|
|
|
+ </ElCol>
|
|
|
+
|
|
|
+ <ElCol :span="6">
|
|
|
+ <ElInput
|
|
|
+ size="small"
|
|
|
+ placeholder="商品编号"
|
|
|
+ v-model="formData.goodNo"
|
|
|
+ />
|
|
|
+ </ElCol>
|
|
|
+ </ElRow>
|
|
|
+
|
|
|
+ <ElRow :gutter="5" mb-2>
|
|
|
+ <ElCol :span="6">
|
|
|
+ <ElInput
|
|
|
+ size="small"
|
|
|
+ placeholder="商品名称"
|
|
|
+ v-model="formData.goodName"
|
|
|
+ />
|
|
|
+ </ElCol>
|
|
|
|
|
|
+ <ElCol :span="6">
|
|
|
+ <ElInput
|
|
|
+ size="small"
|
|
|
+ placeholder="采购员名称"
|
|
|
+ v-model="formData.cgder"
|
|
|
+ />
|
|
|
+ </ElCol>
|
|
|
+
|
|
|
+ <ElCol :span="6">
|
|
|
+ <ElSelect
|
|
|
+ placeholder="发货状态"
|
|
|
+ v-model="formData.sendstatus"
|
|
|
+ size="small"
|
|
|
+ clearable
|
|
|
+ w-full
|
|
|
+ >
|
|
|
+ <ElOption
|
|
|
+ v-for="status in send_status_list"
|
|
|
+ :key="status.value"
|
|
|
+ :label="status.label"
|
|
|
+ :value="status.value"
|
|
|
+ />
|
|
|
+ </ElSelect>
|
|
|
+ </ElCol>
|
|
|
+
|
|
|
+ <ElCol :span="6">
|
|
|
+ <ElSelect
|
|
|
+ v-model="formData.cgdsource"
|
|
|
+ size="small"
|
|
|
+ placeholder="订单来源"
|
|
|
+ clearable
|
|
|
+ w-full
|
|
|
+ >
|
|
|
+ <ElOption
|
|
|
+ v-for="c in cg_order_source_options"
|
|
|
+ :key="c.value"
|
|
|
+ :label="c.label"
|
|
|
+ :value="c.value"
|
|
|
+ />
|
|
|
+ </ElSelect>
|
|
|
+ </ElCol>
|
|
|
+ </ElRow>
|
|
|
+
|
|
|
+ <ElRow mb-2>
|
|
|
+ <div w-full flex justify-between>
|
|
|
+ <ElCol :span="6">
|
|
|
<ElSelect
|
|
|
v-model="formData.cgdtype"
|
|
|
- w-200px
|
|
|
+ size="small"
|
|
|
+ w-full
|
|
|
placeholder="商品来源"
|
|
|
clearable
|
|
|
>
|
|
@@ -170,12 +230,16 @@ defineExpose({
|
|
|
:value="c.value"
|
|
|
/>
|
|
|
</ElSelect>
|
|
|
+ </ElCol>
|
|
|
|
|
|
- <ElButton @click="handleSearch" type="primary">搜索</ElButton>
|
|
|
- <ElButton @click="handleReset">重置</ElButton>
|
|
|
- </div>
|
|
|
+ <ElCol :span="3">
|
|
|
+ <ElButton size="small" @click="handleSearch" type="primary"
|
|
|
+ >搜索</ElButton
|
|
|
+ >
|
|
|
+ <ElButton size="small" @click="handleReset">重置</ElButton>
|
|
|
+ </ElCol>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </ElRow>
|
|
|
|
|
|
<ElTable
|
|
|
ref="tableRef"
|