Merge branch 'main' of http://118.182.97.76:3000/admin/zhyc-sheep-ui
This commit is contained in:
@@ -42,3 +42,10 @@ export function delSale(id) {
|
|||||||
method: 'delete'
|
method: 'delete'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getSaleCodeDict() {
|
||||||
|
return request({
|
||||||
|
url: '/sale/sale/codeDict',
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -86,89 +86,116 @@
|
|||||||
|
|
||||||
<!-- 添加或修改销售主单对话框 -->
|
<!-- 添加或修改销售主单对话框 -->
|
||||||
<el-dialog :title="title" v-model="open" width="1200px" append-to-body>
|
<el-dialog :title="title" v-model="open" width="1200px" append-to-body>
|
||||||
<el-form ref="saleRef" :model="form" :rules="rules" label-width="80px">
|
<el-form ref="saleRef" :model="form" :rules="rules" label-width="100px">
|
||||||
|
|
||||||
|
<!-- ================= 主单信息(两列布局) ================= -->
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="12">
|
||||||
<el-form-item label="销售日期" prop="saleDate">
|
<el-form-item label="销售日期" prop="saleDate">
|
||||||
<el-date-picker clearable v-model="form.saleDate" type="date" value-format="YYYY-MM-DD" placeholder="请选择销售日期">
|
<el-date-picker clearable v-model="form.saleDate" type="date" value-format="YYYY-MM-DD"
|
||||||
</el-date-picker>
|
placeholder="请选择销售日期" style="width: 100%" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="12">
|
||||||
<el-form-item label="客户名称" prop="custName">
|
<el-form-item label="客户名称" prop="custName">
|
||||||
<el-input v-model="form.custName" placeholder="请输入客户名称" />
|
<el-input v-model="form.custName" placeholder="请输入客户名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="12">
|
||||||
<el-form-item label="客户电话" prop="custPhone">
|
<el-form-item label="客户电话" prop="custPhone">
|
||||||
<el-input v-model="form.custPhone" placeholder="请输入客户电话" />
|
<el-input v-model="form.custPhone" placeholder="请输入客户电话" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="客户地址" prop="custAddr">
|
</el-col>
|
||||||
<el-input v-model="form.custAddr" type="textarea" placeholder="请输入内容" />
|
|
||||||
</el-form-item>
|
<el-col :span="12">
|
||||||
<el-form-item label="销售人员" prop="salesper">
|
<el-form-item label="销售人员" prop="salesper">
|
||||||
<el-input v-model="form.salesper" placeholder="请输入销售人员" />
|
<el-input v-model="form.salesper" placeholder="请输入销售人员" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="12">
|
||||||
<el-form-item label="检疫证号" prop="quaranNo">
|
<el-form-item label="检疫证号" prop="quaranNo">
|
||||||
<el-input v-model="form.quaranNo" placeholder="请输入检疫证号" />
|
<el-input v-model="form.quaranNo" placeholder="请输入检疫证号" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="12">
|
||||||
<el-form-item label="审批编号" prop="apprNo">
|
<el-form-item label="审批编号" prop="apprNo">
|
||||||
<el-input v-model="form.apprNo" placeholder="请输入审批编号" />
|
<el-input v-model="form.apprNo" placeholder="请输入审批编号" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="12">
|
||||||
<el-form-item label="总价" prop="price">
|
<el-form-item label="总价" prop="price">
|
||||||
<el-input v-model="form.price" placeholder="请输入总价" />
|
<el-input v-model="form.price" placeholder="请输入总价" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="12">
|
||||||
<el-form-item label="技术员" prop="tech">
|
<el-form-item label="技术员" prop="tech">
|
||||||
<el-input v-model="form.tech" placeholder="请输入技术员" />
|
<el-input v-model="form.tech" placeholder="请输入技术员" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="备注" prop="remark">
|
</el-col>
|
||||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
|
||||||
|
<!-- 占满一整行 -->
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="客户地址" prop="custAddr">
|
||||||
|
<el-input v-model="form.custAddr" type="textarea" placeholder="请输入客户地址" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="备注" prop="remark">
|
||||||
|
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<!-- ================= 销售明细 ================= -->
|
||||||
<el-divider content-position="center">销售明细信息</el-divider>
|
<el-divider content-position="center">销售明细信息</el-divider>
|
||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="primary" icon="Plus" @click="handleAddDdSaleItem">添加</el-button>
|
<el-button type="primary" icon="Plus" @click="handleAddDdSaleItem">
|
||||||
|
添加
|
||||||
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="danger" icon="Delete" @click="handleDeleteDdSaleItem">删除</el-button>
|
<el-button type="danger" icon="Delete" @click="handleDeleteDdSaleItem">
|
||||||
|
删除
|
||||||
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-table :data="ddSaleItemList" :row-class-name="rowDdSaleItemIndex"
|
<el-table :data="ddSaleItemList" :row-class-name="rowDdSaleItemIndex"
|
||||||
@selection-change="handleDdSaleItemSelectionChange" ref="ddSaleItem">
|
@selection-change="handleDdSaleItemSelectionChange" ref="ddSaleItem" align="center">
|
||||||
<el-table-column type="selection" width="50" align="center" />
|
<el-table-column type="selection" width="50" align="center" />
|
||||||
<el-table-column label="序号" align="center" prop="index" width="50" />
|
<el-table-column label="序号" align="center" prop="index" width="50" />
|
||||||
<el-table-column label="明细类型" prop="itemType" width="150">
|
<el-table-column label="明细类型" prop="itemType" width="150">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-select v-model="scope.row.itemType" placeholder="请选择明细类型">
|
<el-select v-model="scope.row.itemType" placeholder="请选择明细类型" style="width:100%">
|
||||||
<el-option v-for="dict in frozen_sale_item_type" :key="dict.value" :label="dict.label"
|
<el-option v-for="dict in frozen_sale_item_type" :key="dict.value" :label="dict.label"
|
||||||
:value="dict.value"></el-option>
|
:value="dict.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="胚胎编号或冻精号" prop="itemCode" width="150">
|
<el-table-column label="胚胎编号或冻精号" prop="itemCode">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-input v-model="scope.row.itemCode" placeholder="请输入胚胎编号或冻精号" />
|
<el-select v-model="scope.row.itemCode" placeholder="请选择序号">
|
||||||
|
<el-option v-for="dict in getItemCodeOptions(scope.row)" :value="dict"></el-option>
|
||||||
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="数量" prop="qty" width="150">
|
<!-- <el-table-column label="数量" prop="qty" width="150">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-input v-model="scope.row.qty" placeholder="请输入数量" />
|
<el-input v-model="scope.row.qty" placeholder="请输入数量" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column> -->
|
||||||
<el-table-column label="单价" prop="unitPrice" width="150">
|
<el-table-column label="单价" prop="unitPrice" width="150">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-input v-model="scope.row.unitPrice" placeholder="请输入单价" />
|
<el-input v-model="scope.row.unitPrice" placeholder="请输入单价" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="所在液氮罐ID" prop="tankId" width="150">
|
|
||||||
<template #default="scope">
|
|
||||||
<el-input v-model="scope.row.tankId" placeholder="请输入所在液氮罐ID" />
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="所在提桶ID" prop="bucketId" width="150">
|
|
||||||
<template #default="scope">
|
|
||||||
<el-input v-model="scope.row.bucketId" placeholder="请输入所在提桶ID" />
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="所在冷冻架ID" prop="rackId" width="180">
|
|
||||||
<template #default="scope">
|
|
||||||
<el-input v-model="scope.row.rackId" placeholder="请输入所在冷冻架ID" />
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-form>
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
@@ -183,7 +210,7 @@
|
|||||||
<el-table :data="ddSaleItemList" :row-class-name="rowDdSaleItemIndex"
|
<el-table :data="ddSaleItemList" :row-class-name="rowDdSaleItemIndex"
|
||||||
@selection-change="handleDdSaleItemSelectionChange" ref="ddSaleItem">
|
@selection-change="handleDdSaleItemSelectionChange" ref="ddSaleItem">
|
||||||
<el-table-column type="selection" width="50" align="center" disabled />
|
<el-table-column type="selection" width="50" align="center" disabled />
|
||||||
<el-table-column label="序号" align="center" prop="index" width="50" />
|
<el-table-column label="序号" align="center" prop="index" width="50" disabled />
|
||||||
<el-table-column label="明细类型" prop="itemType" width="150">
|
<el-table-column label="明细类型" prop="itemType" width="150">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-select v-model="scope.row.itemType" placeholder="请选择明细类型" disabled>
|
<el-select v-model="scope.row.itemType" placeholder="请选择明细类型" disabled>
|
||||||
@@ -192,8 +219,14 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="胚胎编号或冻精号" prop="itemCode" width="150" align="center" />
|
<el-table-column label="胚胎编号或冻精号" prop="itemCode" width="200" align="center">
|
||||||
<el-table-column label="数量" prop="qty" width="150" align="center" />
|
<template #default="scope">
|
||||||
|
<el-select v-model="scope.row.itemCode" placeholder="请选择序号" disabled>
|
||||||
|
<el-option v-for="dict in getItemCodeOptions(scope.row)" :value="dict"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="数量" prop="qty" width="100" align="center" />
|
||||||
|
|
||||||
<el-table-column label="单价" prop="unitPrice" width="150" align="center" />
|
<el-table-column label="单价" prop="unitPrice" width="150" align="center" />
|
||||||
<el-table-column label="所在液氮罐ID" prop="tankId" width="150" align="center" />
|
<el-table-column label="所在液氮罐ID" prop="tankId" width="150" align="center" />
|
||||||
@@ -206,7 +239,10 @@
|
|||||||
|
|
||||||
<script setup name="Sale">
|
<script setup name="Sale">
|
||||||
import { listSale, getSale, delSale, addSale, updateSale } from "@/api/frozen/sale"
|
import { listSale, getSale, delSale, addSale, updateSale } from "@/api/frozen/sale"
|
||||||
import { tr } from "date-fns/locale"
|
import { reactive } from "vue"
|
||||||
|
import { ref } from "vue"
|
||||||
|
import { getSaleCodeDict } from "../../../api/frozen/sale"
|
||||||
|
import { computed } from "vue"
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance()
|
const { proxy } = getCurrentInstance()
|
||||||
const { frozen_sale_item_type } = proxy.useDict('frozen_sale_item_type')
|
const { frozen_sale_item_type } = proxy.useDict('frozen_sale_item_type')
|
||||||
@@ -223,7 +259,7 @@
|
|||||||
const multiple = ref(true)
|
const multiple = ref(true)
|
||||||
const total = ref(0)
|
const total = ref(0)
|
||||||
const title = ref("")
|
const title = ref("")
|
||||||
|
const CodeDict = reactive({})
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
form: {},
|
form: {},
|
||||||
queryParams: {
|
queryParams: {
|
||||||
@@ -257,9 +293,22 @@
|
|||||||
|
|
||||||
const { queryParams, form, rules } = toRefs(data)
|
const { queryParams, form, rules } = toRefs(data)
|
||||||
|
|
||||||
|
function getItemCodeOptions(row) {
|
||||||
|
if (row.itemType === "embryo") {
|
||||||
|
return this.CodeDict.embryo || []
|
||||||
|
}
|
||||||
|
if (row.itemType === "semen") {
|
||||||
|
return this.CodeDict.semen || []
|
||||||
|
}
|
||||||
|
return []
|
||||||
|
}
|
||||||
/** 查询销售主单列表 */
|
/** 查询销售主单列表 */
|
||||||
function getList() {
|
function getList() {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
|
getSaleCodeDict().then(response => {
|
||||||
|
Object.assign(CodeDict, response.data)
|
||||||
|
})
|
||||||
|
console.log(CodeDict)
|
||||||
listSale(queryParams.value).then(response => {
|
listSale(queryParams.value).then(response => {
|
||||||
saleList.value = response.rows
|
saleList.value = response.rows
|
||||||
total.value = response.total
|
total.value = response.total
|
||||||
@@ -324,6 +373,10 @@
|
|||||||
function handleUpdateOrView(row, mode) {
|
function handleUpdateOrView(row, mode) {
|
||||||
reset()
|
reset()
|
||||||
const _id = row.id || ids.value
|
const _id = row.id || ids.value
|
||||||
|
// 获取字典数据
|
||||||
|
getSaleCodeDict().then(response => {
|
||||||
|
Object.assign(CodeDict, response.data)
|
||||||
|
})
|
||||||
getSale(_id).then(response => {
|
getSale(_id).then(response => {
|
||||||
form.value = response.data
|
form.value = response.data
|
||||||
ddSaleItemList.value = response.data.ddSaleItemList
|
ddSaleItemList.value = response.data.ddSaleItemList
|
||||||
@@ -411,6 +464,5 @@
|
|||||||
...queryParams.value
|
...queryParams.value
|
||||||
}, `sale_${new Date().getTime()}.xlsx`)
|
}, `sale_${new Date().getTime()}.xlsx`)
|
||||||
}
|
}
|
||||||
|
|
||||||
getList()
|
getList()
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -128,6 +128,10 @@
|
|||||||
<el-date-picker v-model="form.measureDate" value-format="YYYY-MM-DD" type="date" placeholder="请选择测量日期"
|
<el-date-picker v-model="form.measureDate" value-format="YYYY-MM-DD" type="date" placeholder="请选择测量日期"
|
||||||
:disabled="!isAdd"></el-date-picker>
|
:disabled="!isAdd"></el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="当前体重" prop="currentWeight">
|
||||||
|
<el-input-number v-model="form.currentWeight" :precision="2" :min="0" :max="200" placeholder="请输入当前体重(kg)"
|
||||||
|
style="width:100%" />
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="体高" prop="height">
|
<el-form-item label="体高" prop="height">
|
||||||
<el-input v-model="form.height" placeholder="请输入体高" :disabled="!isAdd" clearable />
|
<el-input v-model="form.height" placeholder="请输入体高" :disabled="!isAdd" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|||||||
Reference in New Issue
Block a user