|
@@ -1,31 +1,42 @@
|
|
|
<template>
|
|
|
<!-- 采购明细出库 -->
|
|
|
<div>
|
|
|
- <div class="common-card">
|
|
|
+ <!-- <div class="common-card">
|
|
|
<el-form :model="listForm" ref="planForm" :inline="true">
|
|
|
<el-form-item label="采购单号" prop="dyntNo">
|
|
|
- <el-input v-model="listForm.dyntNo" placeholder="请输入采购单号"></el-input>
|
|
|
+ <el-input
|
|
|
+ v-model="listForm.dyntNo"
|
|
|
+ placeholder="请输入采购单号"
|
|
|
+ ></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button type="primary" @click="getDetails('search')"
|
|
|
- >提取采购明细
|
|
|
+ >查询
|
|
|
</el-button>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
<div class="common-card">
|
|
|
- <el-form :model="tableData" ref="tabledata">
|
|
|
+ <el-form :model="tableform" ref="tableform">
|
|
|
<el-table
|
|
|
- :data="tableData"
|
|
|
+ :data="tableform.tableData"
|
|
|
v-loading="loding"
|
|
|
+ ref="tabelView"
|
|
|
element-loading-text="加载中..."
|
|
|
border
|
|
|
- :span-method="handleSpan"
|
|
|
+ row-key="id"
|
|
|
+ height="500"
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
>
|
|
|
<template slot="empty">
|
|
|
<img src="@/assets/nopage.png" alt />
|
|
|
<p>暂无数据</p>
|
|
|
</template>
|
|
|
+ <el-table-column
|
|
|
+ type="selection"
|
|
|
+ :reserve-selection="true"
|
|
|
+ width="55"
|
|
|
+ ></el-table-column>
|
|
|
<el-table-column fixed type="index" label="序号" width="60" />
|
|
|
<el-table-column label="采购单号" prop="purcOrdId" />
|
|
|
<el-table-column label="耗材编码" prop="prodCode" />
|
|
@@ -44,16 +55,14 @@
|
|
|
<el-form-item
|
|
|
label-width="0"
|
|
|
class="item"
|
|
|
- :prop="scope.$index + '.lotNum'"
|
|
|
- :rules="[
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请输入',
|
|
|
- trigger: 'blur',
|
|
|
- },
|
|
|
- ]"
|
|
|
+ :prop="'tableData.' + scope.$index + '.lotNum'"
|
|
|
+ :rules="lotNumCheck(scope.row, lotNumRule)"
|
|
|
>
|
|
|
- <el-input placeholder="请输入" v-model="scope.row.lotNum"></el-input>
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入"
|
|
|
+ v-model="scope.row.lotNum"
|
|
|
+ @change="handleEDIT(scope.row, scope.$index)"
|
|
|
+ ></el-input>
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -62,14 +71,8 @@
|
|
|
<el-form-item
|
|
|
label-width="0"
|
|
|
class="item"
|
|
|
- :prop="scope.$index + '.manuDate'"
|
|
|
- :rules="[
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请选择生产日期',
|
|
|
- trigger: 'change',
|
|
|
- },
|
|
|
- ]"
|
|
|
+ :prop="'tableData.' + scope.$index + '.manuDate'"
|
|
|
+ :rules="lotNumCheck(scope.row, manuDate)"
|
|
|
>
|
|
|
<el-date-picker
|
|
|
style="width: 100%"
|
|
@@ -82,19 +85,13 @@
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="有效期至" width="220" prop="prodExpy">
|
|
|
+ <el-table-column label="有效期至" width="220" props="prodExpy">
|
|
|
<template slot-scope="scope">
|
|
|
<el-form-item
|
|
|
label-width="0"
|
|
|
class="item"
|
|
|
- :prop="scope.$index + '.prodExpy'"
|
|
|
- :rules="[
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请选择有效期',
|
|
|
- trigger: 'change',
|
|
|
- },
|
|
|
- ]"
|
|
|
+ :prop="'tableData.' + scope.$index + '.prodExpy'"
|
|
|
+ :rules="lotNumCheck(scope.row, prodExpyRule)"
|
|
|
>
|
|
|
<el-date-picker
|
|
|
style="width: 100%"
|
|
@@ -107,28 +104,15 @@
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <!-- <el-table-column label="UDI码" prop="udid" >
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-button type="text" @click="handleudi(scope.row)">10</el-button>
|
|
|
- </template>
|
|
|
- </el-table-column> -->
|
|
|
<el-table-column label="需求数量" prop="purcCnt" />
|
|
|
- <!-- <el-table-column label="已出库数量" prop="delvCntYck" width="90px" /> -->
|
|
|
<el-table-column label="剩余出库量" prop="toDelvCnt" width="90px" />
|
|
|
- <el-table-column label="出库数量" prop="delvCnt" width="150">
|
|
|
+ <el-table-column label="出库数量" props="delvCnt" width="150">
|
|
|
<template slot-scope="scope">
|
|
|
<el-form-item
|
|
|
label-width="0"
|
|
|
class="item"
|
|
|
- :prop="scope.$index + '.delvCnt'"
|
|
|
- :rules="[
|
|
|
- {
|
|
|
- required: true,
|
|
|
- pattern: /^[0-9]\d*$/,
|
|
|
- message: '请输入正整数',
|
|
|
- trigger: 'blur',
|
|
|
- },
|
|
|
- ]"
|
|
|
+ :prop="'tableData.' + scope.$index + '.delvCnt'"
|
|
|
+ :rules="lotNumCheck(scope.row, delvCntRule)"
|
|
|
>
|
|
|
<el-input-number
|
|
|
v-model="scope.row.delvCnt"
|
|
@@ -149,30 +133,29 @@
|
|
|
urlName="acco"
|
|
|
:index="scope.$index"
|
|
|
>
|
|
|
- <template v-slot:dec>只能上传pdf文件</template>
|
|
|
+ <template v-slot:dec
|
|
|
+ >只能上传pdf文件</template
|
|
|
+ >
|
|
|
</yl-upload>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <!-- <el-table-column label="随货单" prop="dyntFileId" width="200">
|
|
|
- <template slot-scope="scope">
|
|
|
- <yl-upload
|
|
|
- :fileId="scope.row.dyntFileId"
|
|
|
- @getUpload="getUpload"
|
|
|
- urlName="acco"
|
|
|
- :index="scope.$index"
|
|
|
- >
|
|
|
- <template v-slot:dec>只能上传pdf文件</template>
|
|
|
- </yl-upload>
|
|
|
- </template>
|
|
|
- </el-table-column> -->
|
|
|
<el-table-column label="备注" prop="memo" width="120">
|
|
|
<template slot-scope="scope">
|
|
|
<el-form-item label-width="0" class="item">
|
|
|
- <el-input placeholder="请输入" v-model="scope.row.memo"></el-input>
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入"
|
|
|
+ v-model="scope.row.memo"
|
|
|
+ ></el-input>
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column align="center" fixed="right" label="操作" width="120">
|
|
|
+
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ fixed="right"
|
|
|
+ label="操作"
|
|
|
+ width="120"
|
|
|
+ >
|
|
|
<template slot-scope="scope">
|
|
|
<el-button
|
|
|
v-if="scope.row.showDeleteButton"
|
|
@@ -181,7 +164,10 @@
|
|
|
@click="handleDelete(scope.row, scope.$index)"
|
|
|
>删除</el-button
|
|
|
>
|
|
|
- <el-button v-else type="text" @click="handleBatch(scope.row, scope.$index)"
|
|
|
+ <el-button
|
|
|
+ v-else
|
|
|
+ type="text"
|
|
|
+ @click="handleBatch(scope.row, scope.$index)"
|
|
|
>添加批次
|
|
|
</el-button>
|
|
|
</template>
|
|
@@ -189,180 +175,17 @@
|
|
|
</el-table>
|
|
|
</el-form>
|
|
|
</div>
|
|
|
+ <ylPagination
|
|
|
+ v-show="total > 0"
|
|
|
+ :total="total"
|
|
|
+ :page.sync="listQuery.current"
|
|
|
+ :limit.sync="listQuery.size"
|
|
|
+ @pagination="getdialog"
|
|
|
+ />
|
|
|
<div class="foot-button" style="margin-top: 30px">
|
|
|
<!-- <el-button type="success" @click="handleSave">保存</el-button> -->
|
|
|
<el-button type="primary" @click="handleDelivery">出库</el-button>
|
|
|
</div>
|
|
|
- <el-dialog class="dialog-tq" title="提取采购单" :visible.sync="dialog" width="70%">
|
|
|
- <template>
|
|
|
- <el-form :model="listQuery" ref="listQuery" :inline="true" label-width="90px">
|
|
|
- <el-form-item size="mini" label="采购单号" prop="purcOrdId" class="long">
|
|
|
- <el-input v-model="listQuery.purcOrdId" placeholder="请输入采购单号"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item size="mini" label="耗材名称" prop="prodName" class="long">
|
|
|
- <el-input
|
|
|
- v-model="listQuery.prodName"
|
|
|
- placeholder="请输入耗材名称"
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item size="mini" label="医保编码" prop="hiCode" class="long">
|
|
|
- <el-input v-model="listQuery.hiCode" placeholder="请输入医保编码"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item size="mini" label="生产企业" prop="prodEntp" class="long">
|
|
|
- <el-input v-model="listQuery.prodEntp" placeholder="请输入生产企业"></el-input>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item size="mini" label="是否集采" prop="isFas" class="long">
|
|
|
- <el-select v-model="listQuery.isFas" placeholder="请选择是否集采" clearable>
|
|
|
- <el-option
|
|
|
- v-for="item in isFasData"
|
|
|
- :key="item.value"
|
|
|
- :label="item.name"
|
|
|
- :value="item.value"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item size="mini" label="注册证号" prop="regcertno" class="long">
|
|
|
- <el-input v-model="listQuery.regcertno" placeholder="请输入注册证号"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item>
|
|
|
- <el-button type="primary" @click="getdialog('search')">查询</el-button>
|
|
|
- <el-button @click="reset('consumable')">重置</el-button>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- <el-table
|
|
|
- ref="multipleTable"
|
|
|
- v-loading="dialogLoading"
|
|
|
- element-loading-text="加载中"
|
|
|
- fit
|
|
|
- stripe
|
|
|
- border
|
|
|
- :data="consumableData"
|
|
|
- border
|
|
|
- style="width: 100%"
|
|
|
- row-key="id"
|
|
|
- height="500"
|
|
|
- @selection-change="handleSelectionChange"
|
|
|
- highlight-current-row
|
|
|
- :default-sort="{ prop: 'hiCode', order: 'descending' }"
|
|
|
- >
|
|
|
- <el-table-column
|
|
|
- type="selection"
|
|
|
- :reserve-selection="true"
|
|
|
- width="55"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column label="采购单号" prop="purcOrdId"> </el-table-column>
|
|
|
- <el-table-column label="耗材编码" prop="prodCode" />
|
|
|
- <el-table-column label="医保编码" prop="hiCode" />
|
|
|
- <el-table-column label="耗材信息" width="300">
|
|
|
- <template slot-scope="scope">
|
|
|
- <mcs-info :info="scope.row"></mcs-info>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="规格" prop="spec" />
|
|
|
- <el-table-column label="型号" prop="mol" />
|
|
|
- <el-table-column label="材质" prop="matl" />
|
|
|
- <el-table-column label="是否集采" prop="isFas">
|
|
|
- <template #default="{ row }">
|
|
|
- <span v-if="row.isFas == '0'">否</span>
|
|
|
- <span v-if="row.isFas == '1'">是</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="包装" prop="convrat" width="120px">
|
|
|
- <template #default="{ row }">
|
|
|
- <span>{{row.purcUnt}} ({{row.convrat}}{{row.prcUnt}}/{{row.purcUnt}})</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <!-- <el-table-column label="单价" prop="purcPric" /> -->
|
|
|
- <el-table-column label="需求数量" prop="purcCnt" />
|
|
|
- <!-- <el-table-column label="已出库数量" prop="delvCntYck" width="90px" /> -->
|
|
|
- <el-table-column label="剩余出库量" prop="toDelvCnt" width="90px" />
|
|
|
- </el-table>
|
|
|
- <div slot="footer" class="dialog-footer">
|
|
|
- <el-button type="primary" @click="handleConfirm">确认</el-button>
|
|
|
- </div>
|
|
|
- <!--分页-->
|
|
|
- <yl-pagination
|
|
|
- v-show="total > 0"
|
|
|
- :total="total"
|
|
|
- :page.sync="listQuery.current"
|
|
|
- :limit.sync="listQuery.size"
|
|
|
- @pagination="getdialog"
|
|
|
- />
|
|
|
- </template>
|
|
|
- </el-dialog>
|
|
|
- <!-- UDI码 -->
|
|
|
- <!-- <el-dialog
|
|
|
- title="UDI码填写"
|
|
|
- :visible.sync="udidialog"
|
|
|
- width="70%"
|
|
|
- >
|
|
|
- <el-form :model="udiData" ref="udiData">
|
|
|
- <el-table
|
|
|
- element-loading-text="加载中"
|
|
|
- :data="udiData"
|
|
|
- fit
|
|
|
- stripe
|
|
|
- border
|
|
|
- >
|
|
|
- <template slot="empty">
|
|
|
- <img src="@/assets/nopage.png" alt />
|
|
|
- <p>暂无数据</p>
|
|
|
- </template>
|
|
|
- <el-table-column type="index" label="序号" width="60" />
|
|
|
- <el-table-column label="耗材信息" width="230">
|
|
|
- <template slot-scope="scope">
|
|
|
- <mcs-info :info="scope.row"></mcs-info>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="规格" prop="spec" />
|
|
|
- <el-table-column label="型号" prop="mol" />
|
|
|
- <el-table-column label="材质" prop="matl" />
|
|
|
- <el-table-column label="是否集采" prop="isFas" >
|
|
|
- <template #default="{ row }">
|
|
|
- <span v-if="row.isFas == '0'">否</span>
|
|
|
- <span v-if="row.isFas == '1'">是</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="批号" prop="lotNum">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="生产日期" prop="manuDate">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="有效期至" prop="prodExpy">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="包装" prop="convrat" width="120px">
|
|
|
- <template #default="{ row }">
|
|
|
- <span>{{row.purcUnt}} ({{row.convrat}}{{row.prcUnt}}/{{row.purcUnt}})</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="UDI码" prop="udid" width="120" fixed="right">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-form-item
|
|
|
- label-width="0"
|
|
|
- class="item"
|
|
|
- :prop="scope.$index + '.udid'"
|
|
|
- :rules="[
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请输入',
|
|
|
- trigger: 'blur',
|
|
|
- },
|
|
|
- ]"
|
|
|
- >
|
|
|
- <el-input placeholder="请输入" v-model="scope.row.udid"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- </el-form>
|
|
|
- <div class="foot-button" style="margin-top: 30px">
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- click="clickUdi"
|
|
|
- >确 认</el-button
|
|
|
- >
|
|
|
- </div>
|
|
|
- </el-dialog> -->
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -371,86 +194,93 @@ import mcsInfo from "@/views/components/mcs-info.vue";
|
|
|
import ylUpload from "@/components/yl-upload";
|
|
|
import { countNumPrice, getTotalAmount } from "@/utils/utils";
|
|
|
import rules from "@/utils/rules";
|
|
|
+import ylPagination from "@/components/yl-pagination";
|
|
|
import { getMcsPurcOrdMx, submitMcsDelvOrd } from "@/api/orderManage-sup/index";
|
|
|
export default {
|
|
|
components: {
|
|
|
mcsInfo,
|
|
|
ylUpload,
|
|
|
+ ylPagination
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ lotNumRule: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请输入",
|
|
|
+ trigger: "change"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ manuDate: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请选择生产日期",
|
|
|
+ trigger: "change"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ prodExpyRule: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请选择有效日期",
|
|
|
+ trigger: "change"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ delvCntRule: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ pattern: /^[0-9]\d*$/,
|
|
|
+ message: "请输入正整数",
|
|
|
+ trigger: "blur"
|
|
|
+ }
|
|
|
+ ],
|
|
|
rules,
|
|
|
listForm: {
|
|
|
dyntNo: "",
|
|
|
current: 1,
|
|
|
- size: 10,
|
|
|
+ size: 10
|
|
|
},
|
|
|
+ total: 0,
|
|
|
planForm: {},
|
|
|
// 表格数据
|
|
|
loding: false,
|
|
|
- tableData: [],
|
|
|
+ tableform: {
|
|
|
+ tableData: []
|
|
|
+ },
|
|
|
// 弹框表格数据
|
|
|
dialog: false,
|
|
|
listQuery: {
|
|
|
- hiCode: "",
|
|
|
- prodName: "",
|
|
|
- purcOrdId: "",
|
|
|
current: 1,
|
|
|
- size: 10,
|
|
|
- prodEntp:"",
|
|
|
- isFas:"",
|
|
|
+ size: 10
|
|
|
},
|
|
|
consumableData: [],
|
|
|
selectData: [],
|
|
|
dialogLoading: false,
|
|
|
Loading: false,
|
|
|
cellList: [],
|
|
|
- isFasData: [
|
|
|
- { value: "1", name: "是" },
|
|
|
- { value: "0", name: "否" },
|
|
|
- ],
|
|
|
+ isFasData: [{ value: "1", name: "是" }, { value: "0", name: "否" }],
|
|
|
TimeOption: {
|
|
|
disabledDate(time) {
|
|
|
return time.getTime() < Date.now();
|
|
|
- },
|
|
|
+ }
|
|
|
},
|
|
|
TimeOption1: {
|
|
|
disabledDate(time) {
|
|
|
return time.getTime() > Date.now();
|
|
|
- },
|
|
|
+ }
|
|
|
},
|
|
|
- udidialog:false,
|
|
|
+ udidialog: false
|
|
|
};
|
|
|
},
|
|
|
+ mounted() {
|
|
|
+ this.getDetails();
|
|
|
+ },
|
|
|
methods: {
|
|
|
getDetails() {
|
|
|
- this.dialog = true;
|
|
|
- this.getdialog();
|
|
|
- this.$nextTick(() => {
|
|
|
- this.$refs.multipleTable.clearSelection();
|
|
|
- this.tableData.forEach((i) => {
|
|
|
- this.consumableData.forEach((row) => {
|
|
|
- if (i.id == row.id) {
|
|
|
- this.$refs.multipleTable.toggleRowSelection(row, true);
|
|
|
- }
|
|
|
- });
|
|
|
- });
|
|
|
- });
|
|
|
- },
|
|
|
- // 列表数据
|
|
|
- getData() {
|
|
|
- this.Loading = true;
|
|
|
- getPurcOrdDrugList(this.listForm)
|
|
|
- .then((res) => {
|
|
|
- this.tableData = res.data.records;
|
|
|
- this.Loading = false;
|
|
|
- })
|
|
|
- .catch((err) => {
|
|
|
- this.Loading = false;
|
|
|
- });
|
|
|
+ this.getdialog("search");
|
|
|
},
|
|
|
+
|
|
|
// 重置
|
|
|
- reset(){
|
|
|
+ reset() {
|
|
|
this.$refs.listQuery.resetFields();
|
|
|
this.getdialog();
|
|
|
},
|
|
@@ -461,84 +291,65 @@ export default {
|
|
|
}
|
|
|
this.dialogLoading = true;
|
|
|
getMcsPurcOrdMx(this.listQuery)
|
|
|
- .then((res) => {
|
|
|
- this.consumableData = res.data.records;
|
|
|
- this.consumableData.forEach((i) => {
|
|
|
- i.docmkDate = moment(i.docmkDate).format("YYYY-MM-DD HH:mm:ss");
|
|
|
- });
|
|
|
+ .then(res => {
|
|
|
+ this.tableform.tableData = res.data.records;
|
|
|
+ // this.tableform.tableData.forEach(i => {
|
|
|
+ // i.docmkDate = moment(i.docmkDate).format("YYYY-MM-DD HH:mm:ss");
|
|
|
+ // });
|
|
|
this.total = res.data.total;
|
|
|
this.dialogLoading = false;
|
|
|
})
|
|
|
- .catch((err) => {
|
|
|
+ .catch(err => {
|
|
|
this.dialogLoading = false;
|
|
|
});
|
|
|
},
|
|
|
+ //表格选中再进行校验
|
|
|
+ lotNumCheck(row, ruleArray) {
|
|
|
+ let rule = [];
|
|
|
+ let isId = this.selectData.filter(item => {
|
|
|
+ return item.id == row.id;
|
|
|
+ });
|
|
|
+ if (isId.length > 0) {
|
|
|
+ rule = ruleArray;
|
|
|
+ } else {
|
|
|
+ rule = [];
|
|
|
+ }
|
|
|
+ return rule;
|
|
|
+ },
|
|
|
//删除
|
|
|
handleDelete(row, i) {
|
|
|
- const index = this.tableData.findIndex(
|
|
|
- (item) => item.prodCode === row.prodCode
|
|
|
+ const index = this.tableform.tableData.findIndex(
|
|
|
+ item => item.prodCode === row.prodCode
|
|
|
);
|
|
|
if (index !== -1) {
|
|
|
- let qwe = this.tableData.findIndex(function (item) {
|
|
|
+ let qwe = this.tableform.tableData.findIndex(function(item) {
|
|
|
return item.prodCode == row.prodCode;
|
|
|
});
|
|
|
- this.tableData.splice(i, 1);
|
|
|
+ this.tableform.tableData.splice(i, 1);
|
|
|
this.cellList.splice(i, 1);
|
|
|
this.cellList[qwe]--;
|
|
|
}
|
|
|
row.showDeleteButton = false;
|
|
|
-
|
|
|
this.shanchu3(row);
|
|
|
- // if(this.number[index]){
|
|
|
- // this.shanchu2(row,index);
|
|
|
- // }else{
|
|
|
- // this.shanchu(row);
|
|
|
- // }
|
|
|
- // this.number.splice(i,1);
|
|
|
- },
|
|
|
- // 合并列
|
|
|
- handleSpan({ row, column, rowIndex, columnIndex }) {
|
|
|
- if (
|
|
|
- columnIndex === 1 ||
|
|
|
- columnIndex === 2 ||
|
|
|
- columnIndex === 3 ||
|
|
|
- columnIndex === 4 ||
|
|
|
- columnIndex === 5 ||
|
|
|
- columnIndex === 6 ||
|
|
|
- columnIndex === 7 ||
|
|
|
- columnIndex === 8
|
|
|
- ) {
|
|
|
- // console.log("单元格数组,若下一项为0,则代表合并上一项", this.cellList);
|
|
|
- const rowCell = this.cellList[rowIndex];
|
|
|
- if (rowCell > 0) {
|
|
|
- const colCell = 1;
|
|
|
- // console.log(`动态竖向合并单元格, 第${colCell}列,竖向合并${rowCell}个单元格 `);
|
|
|
- return {
|
|
|
- rowspan: rowCell,
|
|
|
- colspan: colCell,
|
|
|
- };
|
|
|
- } else {
|
|
|
- // 清除原有的单元格,必须要加,否则就会出现单元格会被横着挤到后面了!!!
|
|
|
- // 本例中数据是写死的不会出现,数据若是动态后端获取的,就会出现了!!!
|
|
|
- return {
|
|
|
- rowspan: 0,
|
|
|
- colspan: 0,
|
|
|
- };
|
|
|
- }
|
|
|
+ if (this.number[index]) {
|
|
|
+ this.shanchu2(row, index);
|
|
|
+ } else {
|
|
|
+ this.shanchu(row);
|
|
|
}
|
|
|
+ this.number.splice(i, 1);
|
|
|
},
|
|
|
//弹框选择
|
|
|
handleSelectionChange(e) {
|
|
|
this.selectData = e;
|
|
|
},
|
|
|
- // 判断一个数组对象的属性是否有重复
|
|
|
- pf(arr) {
|
|
|
+ // 判断一个数组对象的属性是否有重复
|
|
|
+ pf(arr) {
|
|
|
for (let i = 0; i < arr.length - 1; i++) {
|
|
|
for (let j = i + 1; j < arr.length; j++) {
|
|
|
console.log(arr[i].prodCode, arr[j].prodCode);
|
|
|
if (arr[i].prodCode == arr[j].prodCode) {
|
|
|
var set = new Set(); //创建个集合Set对象(用object对象也可以)
|
|
|
- return arr.some(function (v, i) {
|
|
|
+ return arr.some(function(v, i) {
|
|
|
//遍历 arr数组,当返回值为true时提前退出遍历。
|
|
|
var f = set.has(v.lotNum); //判断每个对象里number属性的值是否在集合Set
|
|
|
set.add(v.lotNum); //将number属性的值添加到集合Set中
|
|
@@ -552,38 +363,44 @@ export default {
|
|
|
},
|
|
|
// 出库
|
|
|
handleDelivery() {
|
|
|
- this.tableData.forEach((item) => {
|
|
|
- // console.log(item, "item");
|
|
|
+ if (this.selectData.length <= 0) {
|
|
|
+ this.$message({
|
|
|
+ message: "请选择出库明细",
|
|
|
+ type: "warning"
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.selectData.forEach(item => {
|
|
|
if (item.delvCnt == "0") {
|
|
|
this.$message({
|
|
|
message: "本次出库数量必须大于0",
|
|
|
- type: "warning",
|
|
|
+ type: "warning"
|
|
|
});
|
|
|
throw new Error("本次出库数量必须大于0");
|
|
|
}
|
|
|
if (item.prodSouc == "2" && !item.invoFileId) {
|
|
|
this.$message({
|
|
|
message: "请填写相应信息,并选择报关单",
|
|
|
- type: "warning",
|
|
|
+ type: "warning"
|
|
|
});
|
|
|
throw new Error("请填写相应信息,并选择报关单");
|
|
|
}
|
|
|
});
|
|
|
- let lotnum = this.pf(this.tableData);
|
|
|
+ let lotnum = this.pf(this.selectData);
|
|
|
if (lotnum == true) {
|
|
|
this.$message({
|
|
|
message: "同一产品的批号不能重复",
|
|
|
- type: "info",
|
|
|
+ type: "info"
|
|
|
});
|
|
|
throw new Error("同一产品的批号不能重复");
|
|
|
}
|
|
|
- this.$refs.tabledata.validate((valid) => {
|
|
|
+ this.$refs.tableform.validate(valid => {
|
|
|
if (valid) {
|
|
|
- let data = this.tableData.map((i) => {
|
|
|
+ let data = this.selectData.map(i => {
|
|
|
return i.purcOrdId;
|
|
|
});
|
|
|
let data2 = data.slice(1);
|
|
|
- let qwe = data2.some((item) => {
|
|
|
+ let qwe = data2.some(item => {
|
|
|
if (item != data[0]) {
|
|
|
return true;
|
|
|
}
|
|
@@ -594,81 +411,81 @@ export default {
|
|
|
this.$confirm("确认出库", "提示", {
|
|
|
confirmButtonText: "确定",
|
|
|
cancelButtonText: "取消",
|
|
|
- type: "warning",
|
|
|
+ type: "warning"
|
|
|
}).then(() => {
|
|
|
- let data = this.tableData.map((i) => {
|
|
|
+ let data = this.selectData.map(i => {
|
|
|
return {
|
|
|
materialId: i.prodCode,
|
|
|
memo: i.memo,
|
|
|
delvCnt: i.delvCnt,
|
|
|
hiCode: i.hiCode,
|
|
|
- delvPric: i.purcPric,
|
|
|
+ purcPric: i.purcPric,
|
|
|
lotNum: i.lotNum,
|
|
|
manuDate: i.manuDate,
|
|
|
prodExpy: i.prodExpy,
|
|
|
invoFileId: i.invoFileId,
|
|
|
dyntFileId: i.dyntFileId,
|
|
|
noRow: i.index,
|
|
|
+ purcOrdId: this.selectData[0].purcOrdId
|
|
|
};
|
|
|
});
|
|
|
let data2 = {
|
|
|
delvOrdId: "",
|
|
|
spdId: "",
|
|
|
detlList: data,
|
|
|
- dyntNo: this.listForm.dyntNo,
|
|
|
- purcOrdId: this.tableData[0].purcOrdId,
|
|
|
+ dyntNo: ""
|
|
|
};
|
|
|
submitMcsDelvOrd(data2)
|
|
|
- .then((res) => {
|
|
|
+ .then(res => {
|
|
|
this.getdialog();
|
|
|
- this.tableData = [];
|
|
|
this.selectData = [];
|
|
|
this.$message({
|
|
|
- message: '出库成功',
|
|
|
- type: 'success'
|
|
|
+ message: "出库成功",
|
|
|
+ type: "success"
|
|
|
});
|
|
|
- this.listForm.dyntNo = "";
|
|
|
+ this.selectData = [];
|
|
|
+ this.$refs.tabelView.clearSelection();
|
|
|
})
|
|
|
- .catch((err) => {
|
|
|
- this.$message.error("出库失败")
|
|
|
+ .catch(err => {
|
|
|
+ this.$message.error("出库失败");
|
|
|
});
|
|
|
});
|
|
|
}
|
|
|
} else {
|
|
|
this.$message({
|
|
|
type: "warning",
|
|
|
- message: "请填写必填项信息",
|
|
|
+ message: "请填写必填项信息"
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
// 查看UDI码
|
|
|
- // 填写UDI码
|
|
|
- handleudi(row){
|
|
|
+ // 填写UDI码
|
|
|
+ handleudi(row) {
|
|
|
this.udidialog = true;
|
|
|
- let udiObj={
|
|
|
- spec:row.spec,
|
|
|
- mol:row.mol,
|
|
|
- matl:row.matl,
|
|
|
- isFas:row.isFas,
|
|
|
- lotNum:row.lotNum,
|
|
|
- manuDate:row.manuDate,
|
|
|
- prodExpy:row.prodExpy,
|
|
|
- convrat:row.convrat,
|
|
|
- prcUnt:row.prcUnt,
|
|
|
- purcUnt:row.purcUnt,
|
|
|
- prodName:row.prodName,
|
|
|
- regcertno:row.regcertno,
|
|
|
- prodEntp:row.prodEntp,
|
|
|
- fasBtch:row.fasBtch,
|
|
|
- }
|
|
|
+ let udiObj = {
|
|
|
+ spec: row.spec,
|
|
|
+ mol: row.mol,
|
|
|
+ matl: row.matl,
|
|
|
+ isFas: row.isFas,
|
|
|
+ lotNum: row.lotNum,
|
|
|
+ manuDate: row.manuDate,
|
|
|
+ prodExpy: row.prodExpy,
|
|
|
+ convrat: row.convrat,
|
|
|
+ prcUnt: row.prcUnt,
|
|
|
+ purcUnt: row.purcUnt,
|
|
|
+ prodName: row.prodName,
|
|
|
+ regcertno: row.regcertno,
|
|
|
+ prodEntp: row.prodEntp,
|
|
|
+ fasBtch: row.fasBtch
|
|
|
+ };
|
|
|
// const obj = { a: 1, b: 2 };
|
|
|
const n = 5;
|
|
|
// const copiedObjects = Array.from({ length: n }, () => ({ ...obj }));
|
|
|
// const n = row.udid;
|
|
|
const copiedObjects = Array.from({ length: n }, () => ({ ...udiObj }));
|
|
|
- console.log(copiedObjects,"copiedObjects")
|
|
|
- this.udiData = copiedObjects
|
|
|
+ console.log(copiedObjects, "copiedObjects");
|
|
|
+ this.udiData = copiedObjects;
|
|
|
},
|
|
|
// 添加批次
|
|
|
handleBatch(row, index) {
|
|
@@ -700,21 +517,18 @@ export default {
|
|
|
lotNum: "",
|
|
|
manuDate: "",
|
|
|
prodExpy: "",
|
|
|
- dyntFileId: "",
|
|
|
+ dyntFileId: ""
|
|
|
};
|
|
|
- this.tableData.splice(index + 1, 0, list);
|
|
|
+ this.tableform.tableData.splice(index + 1, 0, list);
|
|
|
list.showDeleteButton = true;
|
|
|
- this.computeCell(this.tableData);
|
|
|
- console.log(this.tableData, "tableData");
|
|
|
- // const aa = this.tableData.findIndex((item) => item.id === row.id);
|
|
|
- // this.number.splice(aa+1,0,this.number[aa])
|
|
|
+ this.computeCell(this.tableform.tableData);
|
|
|
},
|
|
|
getUpload1(id, index) {
|
|
|
- this.tableData[index].invoFileId = id;
|
|
|
+ this.tableform.tableData[index].invoFileId = id;
|
|
|
if (id) {
|
|
|
- this.$refs.tabledata.clearValidate("invoFileId");
|
|
|
+ this.$refs.tableform.clearValidate("invoFileId");
|
|
|
} else {
|
|
|
- this.$refs.tabledata.validateField("invoFileId");
|
|
|
+ this.$refs.tableform.validateField("invoFileId");
|
|
|
}
|
|
|
},
|
|
|
// 筛选合并项
|
|
@@ -744,7 +558,7 @@ export default {
|
|
|
//获取出库数量和
|
|
|
numAll(row) {
|
|
|
let num = 0;
|
|
|
- this.tableData.forEach((item) => {
|
|
|
+ this.tableform.tableData.forEach(item => {
|
|
|
if (item.prodCode == row.prodCode) {
|
|
|
num += item.delvCnt;
|
|
|
}
|
|
@@ -752,14 +566,13 @@ export default {
|
|
|
return num;
|
|
|
},
|
|
|
shanchu3(row) {
|
|
|
- this.tableData.forEach(async (item) => {
|
|
|
+ this.tableform.tableData.forEach(async item => {
|
|
|
await this.numAll(row);
|
|
|
- console.log(this.numAll(row), "he");
|
|
|
if (item.prodCode == row.prodCode) {
|
|
|
if (this.numAll(row) > item.toDelvCnt) {
|
|
|
this.$message.warning("出库数量不能大于待出库数量");
|
|
|
row.delvCnt = 0;
|
|
|
- row.price = 0;
|
|
|
+ row.purcPric = 0;
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
@@ -769,8 +582,8 @@ export default {
|
|
|
},
|
|
|
numOrPriceChange(index, row) {
|
|
|
this.$set(
|
|
|
- this.tableData[index],
|
|
|
- "price",
|
|
|
+ this.tableform.tableData[index],
|
|
|
+ "purcPric",
|
|
|
getTotalAmount(row.delvCnt, row.purcPric)
|
|
|
);
|
|
|
this.amount = countNumPrice(this.tableData);
|
|
@@ -788,11 +601,11 @@ export default {
|
|
|
},
|
|
|
// 确认
|
|
|
handleConfirm() {
|
|
|
- let data = this.selectData.map((i) => {
|
|
|
+ let data = this.selectData.map(i => {
|
|
|
return i.purcOrdId;
|
|
|
});
|
|
|
let data2 = data.slice(1);
|
|
|
- let qwe = data2.some((item) => {
|
|
|
+ let qwe = data2.some(item => {
|
|
|
if (item != data[0]) {
|
|
|
return true;
|
|
|
}
|
|
@@ -800,12 +613,12 @@ export default {
|
|
|
if (qwe == true) {
|
|
|
this.$message.info("请勾选同一采购单明细");
|
|
|
} else {
|
|
|
- this.tableData = this.selectData;
|
|
|
- this.computeCell(this.tableData);
|
|
|
+ this.tableform.tableData = this.selectData;
|
|
|
+ this.computeCell(this.tableform.tableData);
|
|
|
this.dialog = false;
|
|
|
}
|
|
|
- },
|
|
|
- },
|
|
|
+ }
|
|
|
+ }
|
|
|
};
|
|
|
</script>
|
|
|
|