ezhizao_zx 9 kuukautta sitten
vanhempi
commit
410d94e54f

+ 53 - 0
src/api/business/accessories.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+const baseUrl = import.meta.env.VITE_APP_BASE_API
+const p2Url = import.meta.env.VITE_APP_P2_API
+// 查询辅料管理列表
+export function listAccessories(query) {
+  return request({
+    url: baseUrl + '/business/accessories/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询辅料管理详细
+export function getAccessories(id) {
+  return request({
+    url: baseUrl + '/business/accessories/' + id,
+    method: 'get'
+  })
+}
+
+// 新增辅料管理
+export function addAccessories(data) {
+  return request({
+    url: baseUrl + '/business/accessories',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改辅料管理
+export function updateAccessories(data) {
+  return request({
+    url: baseUrl + '/business/accessories',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除辅料管理
+export function delAccessories(id) {
+  return request({
+    url: baseUrl + '/business/accessories/' + id,
+    method: 'delete'
+  })
+}
+
+export function getP2Accessories() {
+  return request({
+    url: p2Url + '/business/inw10100/getP2Accessories',
+    method: 'get'
+  })
+}

+ 18 - 6
src/api/business/taksStockLot.js

@@ -1,10 +1,11 @@
 import request from '@/utils/request'
 const baseUrl = import.meta.env.VITE_APP_PRODUCTION_API
+import { download, downloadPdf } from '@/utils/request'
 
 // 查询盘点批次信息列表
 export function listTaksStockLot(query) {
   return request({
-    url:baseUrl + '/business/taksStockLot/list',
+    url: baseUrl + '/business/taksStockLot/list',
     method: 'get',
     params: query
   })
@@ -13,13 +14,13 @@ export function listTaksStockLot(query) {
 // 查询盘点批次信息详细
 export function getTaksStockLot(id) {
   return request({
-    url:baseUrl + '/business/taksStockLot/' + id,
+    url: baseUrl + '/business/taksStockLot/' + id,
     method: 'get'
   })
 }
 export function updateNoStartLot(data) {
   return request({
-    url:baseUrl + '/business/taksStockLot/updateNoStartLot',
+    url: baseUrl + '/business/taksStockLot/updateNoStartLot',
     method: 'post',
     data: data
   })
@@ -27,7 +28,7 @@ export function updateNoStartLot(data) {
 // 新增盘点批次信息
 export function addTaksStockLot(data) {
   return request({
-    url:baseUrl + '/business/taksStockLot',
+    url: baseUrl + '/business/taksStockLot',
     method: 'post',
     data: data
   })
@@ -36,7 +37,7 @@ export function addTaksStockLot(data) {
 // 修改盘点批次信息
 export function updateTaksStockLot(data) {
   return request({
-    url:baseUrl + '/business/taksStockLot',
+    url: baseUrl + '/business/taksStockLot',
     method: 'put',
     data: data
   })
@@ -45,7 +46,18 @@ export function updateTaksStockLot(data) {
 // 删除盘点批次信息
 export function delTaksStockLot(id) {
   return request({
-    url: baseUrl +'/business/taksStockLot/' + id,
+    url: baseUrl + '/business/taksStockLot/' + id,
     method: 'delete'
   })
 }
+
+// 导出
+export function exportNoStartLot(data) {
+  download(
+    baseUrl + "/business/taksStockLot/export",
+    {
+      ...data,
+    },
+    `未盘点批次_${new Date().getTime()}.xlsx`
+  )
+}

+ 347 - 0
src/views/business/accessories/index.vue

@@ -0,0 +1,347 @@
+<template>
+  <div class="page-container row-container">
+
+    <section class="list-part-container" style="flex: 2">
+      <!-- 搜索区域 -->
+      <el-form class="list-search-container" :model="queryParams" ref="queryRef" :inline="true">
+        <el-form-item class="section-title" label="辅料管理" />
+
+        <!-- <el-form-item label="辅料名称:" prop="code">
+          <el-input v-model="queryParams.name" placeholder="请输入辅料名称" clearable @keyup.enter="handleQuery"
+            style="width: 160px;" />
+        </el-form-item> -->
+        <el-form-item label="辅料编号:" prop="accessoriesCode">
+          <el-input v-model="queryParams.accessoriesCode" placeholder="请输入辅料编号" clearable @keyup.enter="handleQuery" />
+        </el-form-item>
+        <el-form-item label="物料描述:" prop="description">
+          <el-input v-model="queryParams.description" placeholder="请输入物料描述" clearable @keyup.enter="handleQuery" />
+        </el-form-item>
+        <el-form-item>
+          <el-button type="info" icon="Search" @click="handleQuery">搜索</el-button>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" icon="Plus" @click="handleAdd(null)"
+            v-hasPermi="['business:accessories:add']">新增</el-button>
+          <el-button type="primary" icon="Plus" @click="handleSync()"
+            v-hasPermi="['business:accessories:sync']">拉取p2数据</el-button>
+        </el-form-item>
+
+      </el-form>
+      <!-- 列表区域 -->
+      <div class="el-table-container">
+        <div class="el-table-inner-container">
+          <el-table v-loading="loading" :data="processList" border height="100%"
+            @selection-change="handleSelectionChange">
+            <el-table-column type="selection" width="55" align="center" />
+            <el-table-column type="index" label="行号" width="50" align="center" />
+            <el-table-column label="辅料编号" align="center" prop="accessoriesCode">
+              <template #default="scope">
+                <el-input v-if="scope.row.editStatus" placeholder="辅料编号" v-model="scope.row.accessoriesCode"
+                  style="width: 100%;" />
+                <div v-else>{{ scope.row.accessoriesCode }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="账号" align="center" prop="itype">
+              <template #default="scope">
+                <el-input v-if="scope.row.editStatus" placeholder="账号" v-model="scope.row.itype" style="width: 100%;" />
+                <div v-else>{{ scope.row.itype }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="主管部门" align="center" prop="cusven">
+              <template #default="scope">
+                <el-input v-if="scope.row.editStatus" placeholder="主管部门" v-model="scope.row.cusven"
+                  style="width: 100%;" />
+                <div v-else>{{ scope.row.cusven }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="物料描述" align="center" prop="description" width="200">
+              <template #default="scope">
+                <el-input v-if="scope.row.editStatus" placeholder="物料描述" v-model="scope.row.description"
+                  style="width: 100%;" />
+                <div v-else>{{ scope.row.description }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="采购单位" align="center" prop="unit">
+              <template #default="scope">
+                <el-input v-if="scope.row.editStatus" placeholder="采购单位" v-model="scope.row.unit"
+                  style="width: 100%;" />
+                <div v-else>{{ scope.row.unit }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="换算单位" align="center" prop="pouom">
+              <template #default="scope">
+                <el-input v-if="scope.row.editStatus" placeholder="换算单位" v-model="scope.row.pouom"
+                  style="width: 100%;" />
+                <div v-else>{{ scope.row.pouom }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="环保大类码" align="center" prop="htype">
+              <template #default="scope">
+                <el-input v-if="scope.row.editStatus" placeholder="环保大类码" v-model="scope.row.htype"
+                  style="width: 100%;" />
+                <div v-else>{{ scope.row.htype }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="环保大类简称" align="center" prop="htyna" width="120">
+              <template #default="scope">
+                <el-input v-if="scope.row.editStatus" placeholder="环保大类简称" v-model="scope.row.htyna"
+                  style="width: 100%;" />
+                <div v-else>{{ scope.row.htyna }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="月用量" align="center" prop="monthUseAmount">
+              <template #default="scope">
+                <el-input-number v-if="scope.row.editStatus" placeholder="月用量" v-model="scope.row.monthUseAmount"
+                  style="width: 100%;" :step="0.01" step-strictly :controls="false" />
+                <div v-else>{{ scope.row.monthUseAmount }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="类别" align="center" prop="ltype">
+              <template #default="scope">
+                <el-input v-if="scope.row.editStatus" placeholder="类别" v-model="scope.row.ltype" style="width: 100%;" />
+                <div v-else>{{ scope.row.ltype }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="交货天数" align="center" prop="deliveryDate">
+              <template #default="scope">
+                <el-input-number v-if="scope.row.editStatus" placeholder="交货天数" v-model="scope.row.deliveryDate"
+                  style="width: 100%;" :step="1" step-strictly :controls="false" />
+                <div v-else>{{ scope.row.deliveryDate }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="安全库存量" align="center" prop="safetyStock">
+              <template #default="scope">
+                <el-input-number v-if="scope.row.editStatus" placeholder="安全库存量" v-model="scope.row.safetyStock"
+                  style="width: 100%;" :step="0.01" step-strictly :controls="false" />
+                <div v-else>{{ scope.row.safetyStock }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="单价" align="center" prop="price">
+              <template #default="scope">
+                <el-input-number v-if="scope.row.editStatus" placeholder="单价" v-model="scope.row.price"
+                  style="width: 100%;" :step="0.00000001" step-strictly :controls="false" />
+                <div v-else>{{ scope.row.price }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="状态" align="center" prop="status">
+              <template #default="scope">
+                <el-input v-if="scope.row.editStatus" placeholder="状态" v-model="scope.row.status"
+                  style="width: 100%;" />
+                <div v-else>{{ scope.row.status }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="环保标志" align="center" prop="ecoMark">
+              <template #default="scope">
+                <el-input v-if="scope.row.editStatus" placeholder="环保标志" v-model="scope.row.ecoMark"
+                  style="width: 100%;" />
+                <div v-else>{{ scope.row.ecoMark }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="单位换算比例" align="center" prop="conversionRatio" width="120">
+              <template #default="scope">
+                <el-input-number v-if="scope.row.editStatus" placeholder="单位换算比例" v-model="scope.row.conversionRatio"
+                  style="width: 100%;" :step="0.0001" step-strictly :controls="false" />
+                <div v-else>{{ scope.row.conversionRatio }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="包装箱尺寸" align="center" prop="packageStandard">
+              <template #default="scope">
+                <el-input v-if="scope.row.editStatus" placeholder="包装箱尺寸" v-model="scope.row.packageStandard"
+                  style="width: 100%;" />
+                <div v-else>{{ scope.row.packageStandard }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="美捷原系统物料编码" align="center" prop="ypart">
+              <template #default="scope">
+                <el-input v-if="scope.row.editStatus" placeholder="美捷原系统物料编码" v-model="scope.row.ypart"
+                  style="width: 100%;" />
+                <div v-else>{{ scope.row.ypart }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="当月加权平均单价" align="center" prop="monthAvgPrice">
+              <template #default="scope">
+                <el-input-number v-if="scope.row.editStatus" placeholder="当月加权平均单价" v-model="scope.row.monthAvgPrice"
+                  style="width: 100%;" :step="0.000001" step-strictly :controls="false" />
+                <div v-else>{{ scope.row.monthAvgPrice }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="费用类别" align="center" prop="ftype">
+              <template #default="scope">
+                <el-input v-if="scope.row.editStatus" placeholder="费用类别" v-model="scope.row.ftype"
+                  style="width: 100%;" />
+                <div v-else>{{ scope.row.ftype }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="领用计费形式" align="center" prop="ktype">
+              <template #default="scope">
+                <el-input v-if="scope.row.editStatus" placeholder="领用计费形式" v-model="scope.row.ktype"
+                  style="width: 100%;" />
+                <div v-else>{{ scope.row.ktype }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="标准寿命天数" align="center" prop="ktyts">
+              <template #default="scope">
+                <el-input-number v-if="scope.row.editStatus" placeholder="标准寿命天数" v-model="scope.row.ktyts"
+                  style="width: 100%;" :step="1" step-strictly :controls="false" />
+                <div v-else>{{ scope.row.ktyts }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="备注" align="center" prop="remark">
+              <template #default="scope">
+                <el-input v-if="scope.row.editStatus" placeholder="备注" v-model="scope.row.remark"
+                  style="width: 100%;" />
+                <div v-else>{{ scope.row.remark }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120">
+              <template #default="scope">
+                <el-button v-if="!scope.row.editStatus" link type="warning" size="small" icon="Edit"
+                  @click="handleUpdate(scope.row)" v-hasPermi="['business:accessories:edit']">修改</el-button>
+                <el-button v-else link type="success" size="small" icon="Check"
+                  @click="handleSave(scope.row)">保存</el-button>
+                <el-button v-if="!scope.row.editStatus" link type="danger" size="small" icon="Delete"
+                  @click="handleDelete(scope.row, scope.$index)"
+                  v-hasPermi="['business:accessories:remove']">删除</el-button>
+                <el-button v-else link type="info" size="small" icon="Close" @click="handleCancel(scope.row)"
+                  v-hasPermi="['business:accessories:remove']">取消</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+      <pagination :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
+        @pagination="getList" />
+    </section>
+  </div>
+</template>
+
+<script setup name="Equipment">
+import { listAccessories, delAccessories, addAccessories, updateAccessories, getP2Accessories } from "@/api/business/accessories";
+const { proxy } = getCurrentInstance();
+const processList = ref([]);
+const loading = ref(true);
+const ids = ref([])
+const single = ref(true);
+const multiple = ref(true);
+const total = ref(0);
+/** 查询对象 */
+const queryParams = ref({
+  pageNum: 1,
+  pageSize: 10,
+  code: null,
+  name: null,
+  status: null,
+})
+
+/***********************  方法区  ****************************/
+
+/** 查询检查类别列表 */
+function getList() {
+  loading.value = true;
+  listAccessories(queryParams.value).then(response => {
+    processList.value = response.rows;
+    total.value = response.total;
+    loading.value = false;
+  });
+}
+
+/** 搜索按钮操作 */
+function handleQuery() {
+  queryParams.value.pageNum = 1;
+  getList();
+}
+
+
+// 多选框选中数据
+function handleSelectionChange(selection) {
+  ids.value = selection.map(item => item.id);
+  single.value = selection.length != 1;
+  multiple.value = !selection.length;
+}
+
+/** 新增按钮操作 */
+function handleAdd() {
+  processList.value.push({ editStatus: true })
+}
+
+/** 修改按钮操作 */
+function handleUpdate(row) {
+  row.editStatus = true
+}
+
+
+/** 删除按钮操作 */
+function handleDelete(row, index) {
+  const _ids = row.id || ids.value;
+  if (row.id == null) {
+    console.log(index)
+    processList.value.splice(index, 1)
+    return
+  }
+  proxy.$modal.confirm('是否确认删除选中的数据项?').then(function () {
+    return delAccessories(_ids);
+  }).then(() => {
+    getList();
+    proxy.$modal.msgSuccess("删除成功!");
+  }).catch(() => { });
+}
+
+function handleSave(row) {
+  // 保存判断
+  if (row.accessoriesCode == null || row.accessoriesCode == '') {
+    proxy.$modal.msgError("请输入辅料编码!")
+    return
+  }
+  if (row.itype == null || row.itype == '') {
+    proxy.$modal.msgError("请输入账号")
+    return
+  }
+  if (row.ltype == null || row.ltype == '') {
+    proxy.$modal.msgError("请输入辅料类别")
+    return
+  }
+  if (row.id == null) {
+    addAccessories(row).then(afterSave)
+  } else {
+    updateAccessories(row).then(afterSave)
+  }
+}
+
+function afterSave(res) {
+  if (res.code === 200) {
+    getList()
+    proxy.$modal.msgSuccess("保存成功!")
+  } else {
+    proxy.$modal.msgError("保存失败!")
+  }
+}
+
+function handleCancel(row) {
+  row.editStatus = false
+}
+
+function handleSync() {
+  // pullP2Accessories
+}
+
+getList();
+</script>
+<style scoped>
+:deep(.el-tree-node__label) {
+  font-size: 14px !important;
+  display: inline-block;
+  width: 100%;
+}
+
+:deep(.el-tree-node__content) {
+  height: 40px;
+  border-bottom: 1px solid #ebeef5;
+  padding: 8px 0;
+  line-height: 23px;
+}
+
+.move-handle {
+  cursor: move;
+  background-color: #eee;
+}
+</style>

+ 119 - 182
src/views/business/inventoryCheck/form.vue

@@ -15,186 +15,119 @@
         </div>
       </div>
       <el-form class="list-search-container" :model="queryParams" ref="queryRef" :inline="true"
-                style="margin-right: 0px">
-                <el-form-item class="section-title" label="盘点批次列表" />
-                <el-form-item label="批次号:">
-                    <el-input placeholder="请输入批次号" v-model.trim="queryParams.lotCode" @keydown.enter.prevent clearable
-                        style="width: 130px" />
-                </el-form-item>
-                <el-form-item label="产品描述:">
-                    <el-input placeholder="请输入产品描述" v-model.trim="queryParams.productDescription" @keydown.enter.prevent
-                        clearable style="width: 130px" />
-                </el-form-item>
-                <el-form-item label="生产状态:">
-					<el-select v-model="queryParams.isProductStatus" clearable placeholder="请选择生产状态" style="width: 145px">
-						<el-option v-for="dict in inventory_production_status" :key="dict.value" :label="dict.label"
-							:value="dict.value"></el-option>
-					</el-select>
-				</el-form-item>
-                <el-form-item label="标识:">
-                  <el-select
-                    style="width: 160px"
-                    multiple
-                    v-model="queryParams.flags"
-                    collapse-tags
-                    collapse-tags-tooltip
-                    clearable
-                    placeholder="请选择标识"
-                  >
-                    <el-option
-                      v-for="item in is_identification"
-                      :key="item.value"
-                      :label="item.label"
-                      :value="item.value"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item class="section-title" label="请选择当前工段:">
-                    <el-select-v2 v-model="queryParams.deptId" :options="deptList" placeholder="请选择工段"
-                        style="width: 120px" />
-                </el-form-item>
-                <el-form-item label="盘点状态:">
-					<el-select v-model="queryParams.isTaksStock" clearable placeholder="请选择盘点状态" style="width: 145px">
-						<el-option v-for="dict in is_taks_stock" :key="dict.value" :label="dict.label"
-							:value="dict.value"></el-option>
-					</el-select>
-				</el-form-item>
-                <el-form-item style="margin-left: 0">
-                    <el-button type="info" icon="Search" @click="handleQuery">搜索
-                    </el-button>
-                    <el-button :disabled="queryParams.deptId == null || queryParams.deptId == '0'" type="primary" icon="Check" @click="handleTaksLot">一键盘点未开始批次
-                    </el-button>
-                </el-form-item>
-            </el-form>
+        style="margin-right: 0px">
+        <el-form-item class="section-title" label="盘点批次列表" />
+        <el-form-item label="批次号:">
+          <el-input placeholder="请输入批次号" v-model.trim="queryParams.lotCode" @keydown.enter.prevent clearable
+            style="width: 130px" />
+        </el-form-item>
+        <el-form-item label="产品描述:">
+          <el-input placeholder="请输入产品描述" v-model.trim="queryParams.productDescription" @keydown.enter.prevent clearable
+            style="width: 130px" />
+        </el-form-item>
+        <el-form-item label="生产状态:">
+          <el-select v-model="queryParams.isProductStatus" clearable placeholder="请选择生产状态" style="width: 145px">
+            <el-option v-for="dict in inventory_production_status" :key="dict.value" :label="dict.label"
+              :value="dict.value"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="标识:">
+          <el-select style="width: 160px" multiple v-model="queryParams.flags" collapse-tags collapse-tags-tooltip
+            clearable placeholder="请选择标识">
+            <el-option v-for="item in is_identification" :key="item.value" :label="item.label"
+              :value="item.value"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item class="section-title" label="请选择当前工段:">
+          <el-select-v2 v-model="queryParams.deptId" :options="deptList" placeholder="请选择工段" style="width: 120px" />
+        </el-form-item>
+        <el-form-item label="盘点状态:">
+          <el-select v-model="queryParams.isTaksStock" clearable placeholder="请选择盘点状态" style="width: 145px">
+            <el-option v-for="dict in is_taks_stock" :key="dict.value" :label="dict.label"
+              :value="dict.value"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item style="margin-left: 0">
+          <el-button type="info" icon="Search" @click="handleQuery">搜索
+          </el-button>
+          <el-button type="info" icon="Download" @click="handleExport">导出未盘点批次
+          </el-button>
+          <el-button :disabled="queryParams.deptId == null || queryParams.deptId == '0'" type="primary" icon="Check"
+            @click="handleTaksLot">一键盘点未开始批次
+          </el-button>
+        </el-form-item>
+      </el-form>
       <div class="el-table-container">
         <div class="el-table-inner-container">
           <el-table v-loading="loading" :data="dataList" size="small" border height="100%">
             <el-table-column label="行号" type="index" align="center" width="48" />
-            <el-table-column
-            label="批次号"
-            prop="lotCode"
-            align="center"
-            width="120px"
-          >
-            <template #default="scope">
-              <el-button
-                link
-                type="primary"
-                @click="handleColumnClick(scope.row.lotCode)"
-                ><span>{{ scope.row.lotCode }}</span></el-button
-              >
-            </template>
-          </el-table-column>
-            <el-table-column label="产品描述" align="center" prop="productDescription"  />
+            <el-table-column label="批次号" prop="lotCode" align="center" width="120px">
+              <template #default="scope">
+                <el-button link type="primary" @click="handleColumnClick(scope.row.lotCode)"><span>{{ scope.row.lotCode
+                    }}</span></el-button>
+              </template>
+            </el-table-column>
+            <el-table-column label="产品描述" align="center" prop="productDescription" />
             <el-table-column label="箱号" align="center" prop="carrierName" width="120" />
-            <el-table-column label="生产状态" prop="isProductStatus" width="90" align="center" >
-                            <template #default="scope">
-                                <dict-tag :options="inventory_production_status" :value="scope.row.isProductStatus" />
-                            </template>
-                        </el-table-column>
+            <el-table-column label="生产状态" prop="isProductStatus" width="90" align="center">
+              <template #default="scope">
+                <dict-tag :options="inventory_production_status" :value="scope.row.isProductStatus" />
+              </template>
+            </el-table-column>
             <el-table-column label="工段" align="center" prop="deptName" width="100" />
             <el-table-column label="工序" align="center" prop="processAlias" width="110" />
             <el-table-column label="投入数" align="center" prop="prodNum" width="96" />
-            <el-table-column label="盘点数量" align="center" prop="taksStockNum" width="96" >
+            <el-table-column label="盘点数量" align="center" prop="taksStockNum" width="96">
               <template #default="scope">
-                <el-input-number
-                  v-if="scope.row.editStatus"
-                  v-model="scope.row.taksStockNum"
-                  controls-position="right"
-                  style="width: 100px"
-                  :min="0"
-                  :precision="0"
-                  :max="99999"
-                  @input="(val) => {handleChangeTaksStockNum(val, scope.row,scope.$index)}"
-                />
+                <el-input-number v-if="scope.row.editStatus" v-model="scope.row.taksStockNum" controls-position="right"
+                  style="width: 100px" :min="0" :precision="0" :max="99999"
+                  @input="(val) => { handleChangeTaksStockNum(val, scope.row, scope.$index) }" />
                 <div v-else>{{ scope.row.taksStockNum }}</div>
               </template>
             </el-table-column>
             <el-table-column label="标识" width="300" align="center">
-            <template #default="scope">
-              <el-tag
-                v-if="scope.row.isWaste == 1"
-                class="spacing"
-                type="danger"
-                >{{ "批废" }}</el-tag
-              >
-              <el-tag
-                v-if="scope.row.isAmend == 1"
-                class="spacing"
-                type="danger"
-                >{{ "工艺修改" }}</el-tag
-              >
-              <el-tag
-                v-if="scope.row.isWasteRecycling == 1"
-                class="spacing"
-                type="primary"
-                >{{ "废品回用" }}</el-tag
-              >
-            </template>
-          </el-table-column>
-          <el-table-column label="盘点状态" prop="isTaksStock" width="200" align="center" >
-            <template #default="scope">
-                <el-select
-                  v-model="scope.row.isTaksStock"
-                  placeholder="请选择盘点状态"
-                  style="width: 160px"
+              <template #default="scope">
+                <el-tag v-if="scope.row.isWaste == 1" class="spacing" type="danger">{{ "批废" }}</el-tag>
+                <el-tag v-if="scope.row.isAmend == 1" class="spacing" type="danger">{{ "工艺修改" }}</el-tag>
+                <el-tag v-if="scope.row.isWasteRecycling == 1" class="spacing" type="primary">{{ "废品回用" }}</el-tag>
+              </template>
+            </el-table-column>
+            <el-table-column label="盘点状态" prop="isTaksStock" width="200" align="center">
+              <template #default="scope">
+                <el-select v-model="scope.row.isTaksStock" placeholder="请选择盘点状态" style="width: 160px"
                   v-if="scope.row.editStatus"
-                  @change="(val) => {handleChangeTaksStock(val, scope.row,scope.$index)}"
-                >
-                  <el-option
-                    v-for="dict in is_taks_stock"
-                    :key="dict.value"
-                    :label="dict.label"
-                    :value="dict.value"
-                  ></el-option>
+                  @change="(val) => { handleChangeTaksStock(val, scope.row, scope.$index) }">
+                  <el-option v-for="dict in is_taks_stock" :key="dict.value" :label="dict.label"
+                    :value="dict.value"></el-option>
                 </el-select>
                 <div v-else>
                   <dict-tag :options="is_taks_stock" :value="scope.row.isTaksStock" />
                 </div>
               </template>
-                        </el-table-column>
-                        <el-table-column label="操作" width="160" align="center" v-if="detailInfo.status !=2">
+            </el-table-column>
+            <el-table-column label="操作" width="160" align="center" v-if="detailInfo.status != 2">
               <template #default="scope">
-                <el-button
-                link
-                icon="Check"
-                  v-if="scope.row.editStatus"
-                  type="success"
-                  @click="handleSave(scope.row)"
-                  >保存</el-button
-                >
-                <el-button
-                link
-                icon="Edit"
-                  v-else
-                  type="warning"
-                  @click="handleEdit(scope.row,scope.$index)"
-                  v-hasPermi="['business:inventoryCheck:editDetail']"
-                  >编辑</el-button
-                >
-                <el-button
-                link
-                icon="Close"
-                  v-if="scope.row.editStatus"
-                  type="danger"
-                  @click="handleCancel(scope.row, scope.$index)"
-                  >取消</el-button
-                >
+                <el-button link icon="Check" v-if="scope.row.editStatus" type="success"
+                  @click="handleSave(scope.row)">保存</el-button>
+                <el-button link icon="Edit" v-else type="warning" @click="handleEdit(scope.row, scope.$index)"
+                  v-hasPermi="['business:inventoryCheck:editDetail']">编辑</el-button>
+                <el-button link icon="Close" v-if="scope.row.editStatus" type="danger"
+                  @click="handleCancel(scope.row, scope.$index)">取消</el-button>
               </template>
             </el-table-column>
           </el-table>
         </div>
-      
+
       </div>
-             <!-- 分页 -->
-             <paginationMax v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
-                v-model:limit="queryParams.pageSize"  @pagination="getList" />
+      <!-- 分页 -->
+      <paginationMax v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
+        v-model:limit="queryParams.pageSize" @pagination="getList" />
     </div>
   </el-drawer>
 </template>
 <script setup>
 import {
-  listTaksStockLot,updateTaksStockLot,updateNoStartLot
+  listTaksStockLot, updateTaksStockLot, updateNoStartLot, exportNoStartLot
 } from "@/api/business/taksStockLot";
 import { getDeptList } from "@/api/business/planDetailSubDetail.js";
 import { ref } from "vue";
@@ -221,7 +154,7 @@ const queryParams = ref({
   lotCode: "",
   deptId: null,
   flags: null,
-  isTaksStock:null
+  isTaksStock: null
 });
 
 /****************************  方法区  ****************************/
@@ -231,21 +164,21 @@ const open = (row) => {
   reset();
   detailInfo.value = proxy.deepClone(row);
   getDeptList().then((response) => {
-        deptList.value = response.data.rows;
-        isDispatch.value = response.data.others.isDispatch;
-        if (isDispatch.value) {
-            deptList.value.unshift({ label: "全部", value: "0" });
-        } 
-        queryParams.value.deptId = deptList.value[0].value;
-        queryParams.value.takeStockPeriodId = row.id
-        getList();
-    });
+    deptList.value = response.data.rows;
+    isDispatch.value = response.data.others.isDispatch;
+    if (isDispatch.value) {
+      deptList.value.unshift({ label: "全部", value: "0" });
+    }
+    queryParams.value.deptId = deptList.value[0].value;
+    queryParams.value.takeStockPeriodId = row.id
+    getList();
+  });
 }
 function getList() {
   loading.value = true
-  listTaksStockLot(queryParams.value).then(res =>{
+  listTaksStockLot(queryParams.value).then(res => {
     res.rows.forEach(element => {
-      element.isTaksStock = element.isTaksStock +""
+      element.isTaksStock = element.isTaksStock + ""
       element.taksStockNum = Number(element.taksStockNum)
     });
     dataList.value = res.rows;
@@ -253,10 +186,10 @@ function getList() {
     loading.value = false
   })
 }
-function handleEdit(row,index) {
+function handleEdit(row, index) {
   row.editStatus = true
   console.log(row);
-  if(row.isTaksStock != 1) {
+  if (row.isTaksStock != 1) {
     row.taksStockNum = row.prodNum
   }
   console.log(row)
@@ -264,16 +197,16 @@ function handleEdit(row,index) {
 //一键盘点
 function handleTaksLot() {
   console.log(queryParams.value.deptId)
-  updateNoStartLot({takeStockPeriodId:queryParams.value.takeStockPeriodId,deptId:queryParams.value.deptId}).then(res =>{
-    if(res.code == 200){
+  updateNoStartLot({ takeStockPeriodId: queryParams.value.takeStockPeriodId, deptId: queryParams.value.deptId }).then(res => {
+    if (res.code == 200) {
       proxy.$modal.msgSuccess("盘点成功");
       getList()
     }
   })
 }
 function handleSave(row) {
-  updateTaksStockLot(row).then(res =>{
-    if(res.code == 200){
+  updateTaksStockLot(row).then(res => {
+    if (res.code == 200) {
       proxy.$modal.msgSuccess("保存成功");
       getList()
     }
@@ -289,17 +222,17 @@ function handleColumnClick(lotCode) {
   // 在新标签页打开 URL
   window.open(url, '_blank');
 }
-function handleChangeTaksStock(value,row,index) {
-if(value == 0) {
-  dataList.value[index].taksStockNum = 0
-}
+function handleChangeTaksStock(value, row, index) {
+  if (value == 0) {
+    dataList.value[index].taksStockNum = 0
+  }
 }
-function handleChangeTaksStockNum(value,row,index) {
-  if(value != 0) {
+function handleChangeTaksStockNum(value, row, index) {
+  if (value != 0) {
     dataList.value[index].isTaksStock = "1"
   }
 }
-function handleCancel(row,index) {
+function handleCancel(row, index) {
   dataList.value[index].editStatus = false
   getList()
 }
@@ -315,17 +248,21 @@ const cancel = () => {
 /** 表单重置 */
 const reset = () => {
   queryParams.value = {
-  pageNum: 1,
-  pageSize: 50,
-  productDescription: "",
-  lotCode: "",
-  deptId: null,
-  flags: null,
-  isTaksStock:null
+    pageNum: 1,
+    pageSize: 50,
+    productDescription: "",
+    lotCode: "",
+    deptId: null,
+    flags: null,
+    isTaksStock: null
   };
   dataList.value = [];
 };
 
+function handleExport() {
+  exportNoStartLot({ takeStockPeriodId: queryParams.value.takeStockPeriodId, isTaksStock: 0 })
+}
+
 /** 暴露给父组件的方法 */
 defineExpose({
   open,