Bläddra i källkod

Merge branch 'master' of http://120.46.159.163:7400/ezhizao/ezhizao_dms_vue

ezhizao_zx 1 år sedan
förälder
incheckning
86142fa1b9

+ 15 - 0
src/api/business/daywork.js

@@ -30,6 +30,21 @@ export function processesForOutsource(query) {
 	})
 }
 
+/**
+ * 查询当前报工工序
+ * 此方法在非本序废品页面使用
+ * @param {*} query 
+ * @returns 
+ */
+export function listDayworkLot(query) {
+	return request({
+		url: baseUrl + '/business/productionDaywork/listDayworkLot',
+		method: 'get',
+		params: query
+	})
+}
+
+
 export function carrierForOutsource(query) {
 	return request({
 		url: baseUrl + '/business/productionDaywork/carrierForOutsource',

+ 54 - 0
src/api/business/noCurrentReject.js

@@ -0,0 +1,54 @@
+import request from '@/utils/request'
+const baseUrl = import.meta.env.VITE_APP_PRODUCTION_API
+
+// 查询非本序废品列表
+export function listReject(query) {
+  return request({
+    url: baseUrl+ '/business/noCurrentReject/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询非本序废品详细
+export function getInfo(id) {
+  return request({
+    url: baseUrl+'/business/noCurrentReject/' + id,
+    method: 'get'
+  })
+}
+
+// 保存
+export function save(data) {
+  return request({
+    url: baseUrl+ '/business/noCurrentReject/save',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改非本序废品
+export function updateReject(data) {
+  return request({
+    url: baseUrl+'/business/noCurrentReject',
+    method: 'put',
+    data: data
+  })
+}
+
+// 查询用户
+export function selectUserList(data) {
+  return request({
+    url: baseUrl+'/business/noCurrentReject/userList/'+data,
+    method: 'get',
+  })
+}
+
+
+// 删除非本序废品
+export function delReject(id) {
+  return request({
+    url: baseUrl+'/business/noCurrentReject/' + id,
+    method: 'delete'
+  })
+}

+ 187 - 96
src/views/business/consult/index.vue

@@ -1,116 +1,207 @@
 <template>
-	<div class="page-container column-container">
-		<!-- 搜索区 -->
-		<el-form class="list-search-container" :model="queryParams" ref="queryRef" :inline="true">
-			<el-form-item class="section-title" label="咨询管理" />
-			<el-form-item label="咨询类别:">
-				<el-select v-model="queryParams.isProcessInspection" clearable placeholder="请选择类别" style="width: 130px">
-					<el-option label="全部" value="" />
-					<el-option label="分选" value="0" />
-					<el-option label="序检" value="1" />
-				</el-select>
-			</el-form-item>
-			<el-form-item label="计划单号/批次号:">
-				<el-input placeholder="请输入关键字" v-model.trim="queryParams.lotCode" style="width: 120px" clearable
-					@keyup.enter="handleQuery" @keydown.enter.prevent />
-			</el-form-item>
-			<el-form-item label="产品描述:">
-				<el-input placeholder="请输入关键字" v-model.trim="queryParams.keywords" style="width: 120px" clearable
-					@keyup.enter="handleQuery" @keydown.enter.prevent />
-			</el-form-item>
-			<el-form-item label="问题描述:">
-				<el-input placeholder="请输入关键字" v-model.trim="queryParams.content" style="width: 120px" clearable
-					@keyup.enter="handleQuery" @keydown.enter.prevent />
-			</el-form-item>
-			<el-form-item>
-				<el-button type="info" icon="Search" @click="handleQuery">搜索</el-button>
-			</el-form-item>
-		</el-form>
-		<!-- 列表区 -->
-		<div class="el-table-container">
-			<div class="el-table-inner-container">
-				<el-table ref="dataTable" v-loading="loading" border :data="dataList" highlight-current-row height="100%">
-					<el-table-column type="index" label="行号" width="50" align="center" />
-					<el-table-column label="状态" align="center" width="64">
-						<template #default="scope">
-							<span v-if="scope.row.status === 0">待回复</span>
-							<span v-if="scope.row.status === 1" style="font-weight: 700; color: #f56c6c">不合格</span>
-							<span v-if="scope.row.status === 2" style="font-weight: 700; color: #67c23a">合格</span>
-						</template>
-					</el-table-column>
-					<el-table-column label="批次号" width="120" align="center" prop="lotCode" />
-					<el-table-column label="产品描述" align="center" width="320" prop="productDescription" />
-					<el-table-column label="工序" width="120" align="center" prop="processAlias" />
-					<el-table-column label="问题描述" align="center" prop="content" />
-					<el-table-column label="提交人" align="center" width="80" prop="nickName" />
-					<el-table-column label="提交时间" align="center" width="144" prop="createTime" />
-					<el-table-column label="操作" align="center" width="200">
-						<template #default="scope">
-							<el-button v-if="scope.row.status === 0 || scope.row.status === 1" type="success" icon="Check"
-								@click="handleSetStatus('OK', scope.row)">合格</el-button>
-							<el-button v-if="scope.row.status === 0 || scope.row.status === 2" type="danger" icon="Close"
-								@click="handleSetStatus('ERR', scope.row)">不合格</el-button>
-						</template>
-					</el-table-column>
-				</el-table>
-			</div>
-		</div>
-		<!-- 分页 -->
-		<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
-			v-model:limit="queryParams.pageSize" @pagination="getList" />
-	</div>
+  <div class="page-container column-container">
+    <!-- 搜索区 -->
+    <el-form
+      class="list-search-container"
+      :model="queryParams"
+      ref="queryRef"
+      :inline="true"
+    >
+      <el-form-item class="section-title" label="咨询管理" />
+      <el-form-item label="咨询类别:">
+        <el-select
+          v-model="queryParams.isProcessInspection"
+          clearable
+          placeholder="请选择类别"
+          style="width: 130px"
+        >
+          <el-option label="全部" value="" />
+          <el-option label="分选" value="0" />
+          <el-option label="序检" value="1" />
+          <el-option label="外协序检" value="2" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="计划单号/批次号:">
+        <el-input
+          placeholder="请输入关键字"
+          v-model.trim="queryParams.lotCode"
+          style="width: 120px"
+          clearable
+          @keyup.enter="handleQuery"
+          @keydown.enter.prevent
+        />
+      </el-form-item>
+      <el-form-item label="产品描述:">
+        <el-input
+          placeholder="请输入关键字"
+          v-model.trim="queryParams.keywords"
+          style="width: 120px"
+          clearable
+          @keyup.enter="handleQuery"
+          @keydown.enter.prevent
+        />
+      </el-form-item>
+      <el-form-item label="问题描述:">
+        <el-input
+          placeholder="请输入关键字"
+          v-model.trim="queryParams.content"
+          style="width: 120px"
+          clearable
+          @keyup.enter="handleQuery"
+          @keydown.enter.prevent
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="info" icon="Search" @click="handleQuery"
+          >搜索</el-button
+        >
+      </el-form-item>
+    </el-form>
+    <!-- 列表区 -->
+    <div class="el-table-container">
+      <div class="el-table-inner-container">
+        <el-table
+          ref="dataTable"
+          v-loading="loading"
+          border
+          :data="dataList"
+          highlight-current-row
+          height="100%"
+        >
+          <el-table-column
+            type="index"
+            label="行号"
+            width="50"
+            align="center"
+          />
+          <el-table-column label="状态" align="center" width="64">
+            <template #default="scope">
+              <span v-if="scope.row.status === 0">待回复</span>
+              <span
+                v-if="scope.row.status === 1"
+                style="font-weight: 700; color: #f56c6c"
+                >不合格</span
+              >
+              <span
+                v-if="scope.row.status === 2"
+                style="font-weight: 700; color: #67c23a"
+                >合格</span
+              >
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="批次号"
+            width="120"
+            align="center"
+            prop="lotCode"
+          />
+          <el-table-column
+            label="产品描述"
+            align="center"
+            width="320"
+            prop="productDescription"
+          />
+          <el-table-column
+            label="工序"
+            width="120"
+            align="center"
+            prop="processAlias"
+          />
+          <el-table-column label="问题描述" align="center" prop="content" />
+          <el-table-column
+            label="提交人"
+            align="center"
+            width="80"
+            prop="nickName"
+          />
+          <el-table-column
+            label="提交时间"
+            align="center"
+            width="144"
+            prop="createTime"
+          />
+          <el-table-column label="操作" align="center" width="200">
+            <template #default="scope">
+              <el-button
+                v-if="scope.row.status === 0 || scope.row.status === 1"
+                type="success"
+                icon="Check"
+                @click="handleSetStatus('OK', scope.row)"
+                >合格</el-button
+              >
+              <el-button
+                v-if="scope.row.status === 0 || scope.row.status === 2"
+                type="danger"
+                icon="Close"
+                @click="handleSetStatus('ERR', scope.row)"
+                >不合格</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </div>
+    <!-- 分页 -->
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      v-model:page="queryParams.pageNum"
+      v-model:limit="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </div>
 </template>
 <script setup>
-import { list, save } from '@/api/business/consult'
-const { proxy } = getCurrentInstance()
+import { list, save } from "@/api/business/consult";
+const { proxy } = getCurrentInstance();
 
 /** 咨询查询对象 */
 const queryParams = ref({
-	isProcessInspection: '',
-	lotCode: '',
-	productDescription: '',
-	content: '',
-	pageNum: 1,
-	pageSize: 10,
-})
+  isProcessInspection: "",
+  lotCode: "",
+  productDescription: "",
+  content: "",
+  pageNum: 1,
+  pageSize: 10,
+});
 /** 咨询变量 */
-const dataList = ref([])
-const loading = ref(false)
-const ids = ref([])
-const total = ref(0)
+const dataList = ref([]);
+const loading = ref(false);
+const ids = ref([]);
+const total = ref(0);
 
 /***********************  方法区  ***********************/
 /** 查询咨询管理列表 */
 function getList() {
-	loading.value = true
-	list(queryParams.value).then((res) => {
-		dataList.value = res.rows
-		total.value = res.total
-		loading.value = false
-	})
+  loading.value = true;
+  list(queryParams.value).then((res) => {
+    dataList.value = res.rows;
+    total.value = res.total;
+    loading.value = false;
+  });
 }
 /** 咨询搜索按钮操作 */
 function handleQuery() {
-	queryParams.value.pageNum = 1
-	getList()
+  queryParams.value.pageNum = 1;
+  getList();
 }
 
 const handleSetStatus = (type, data) => {
-	const msg = type === 'OK' ? '合格' : '不合格'
-	proxy.$modal.confirm('确定' + msg + '?').then(() => {
-		data.status = type === 'OK' ? 2 : 1
-		save(data).then((res) => {
-			if (res.code === 200) {
-				getList()
-				proxy.$modal.msgSuccess('操作成功')
-			} else {
-				proxy.$modal.msgSuccess('操作失败')
-			}
-		})
-	})
-}
+  const msg = type === "OK" ? "合格" : "不合格";
+  proxy.$modal.confirm("确定" + msg + "?").then(() => {
+    data.status = type === "OK" ? 2 : 1;
+    save(data).then((res) => {
+      if (res.code === 200) {
+        getList();
+        proxy.$modal.msgSuccess("操作成功");
+      } else {
+        proxy.$modal.msgSuccess("操作失败");
+      }
+    });
+  });
+};
 
 onMounted(() => {
-	getList()
-})
+  getList();
+});
 </script>

+ 495 - 0
src/views/business/noCurrentReject/DialogRejectInfo.vue

@@ -0,0 +1,495 @@
+<template>
+  <el-dialog
+    title="添加非本序废品信息"
+    v-model="visible"
+    width="1000px"
+    append-to-body
+    draggable
+    v-loading="loading"
+  >
+    <div class="form-container">
+      <div style="padding: 16px 16px 0 16px">
+        <el-row :gutter="20">
+          <span style="font-weight: bold; font-size: 18px"
+            >批次号:{{ detailInfo.lotCode }}</span
+          >
+        </el-row>
+        <el-row :gutter="20" style="margin-top: 15px">
+          <span style="font-weight: bold">基础信息</span>
+        </el-row>
+        <el-row
+          :gutter="20"
+          style="
+            margin-top: 15px;
+            padding-bottom: 10px;
+            border-bottom: 1px solid #999;
+          "
+        >
+          <el-col :span="11">
+            <span class="leftInfo">客户简称</span>
+            <span class="rightInfo">{{ detailInfo.companyAlias }}</span>
+          </el-col>
+          <el-col :span="6">
+            <span class="middleInfo">生产计划单号</span>
+            <span class="rightInfo">{{ detailInfo.productionPlanNo }}</span>
+          </el-col>
+          <el-col :span="7">
+            <span class="middleInfo">批次号</span>
+            <span class="rightInfo">{{ detailInfo.lotCode }}</span>
+          </el-col>
+        </el-row>
+        <el-row
+          :gutter="20"
+          style="
+            margin-top: 15px;
+            padding-bottom: 10px;
+            border-bottom: 1px solid #999;
+          "
+        >
+          <el-col :span="11">
+            <span class="leftInfo">产品描述</span>
+            <span class="rightInfo">{{ detailInfo.productDescription }}</span>
+          </el-col>
+          <el-col :span="6">
+            <span class="middleInfo">图纸版本</span>
+            <span class="rightInfo">{{ detailInfo.technologyVersion }}</span>
+          </el-col>
+          <el-col :span="7">
+            <span class="middleInfo">批次投产量</span>
+            <span class="rightInfo">{{ detailInfo.productionQuantity }}</span>
+          </el-col>
+        </el-row>
+        <el-row
+          :gutter="20"
+          style="
+            margin-top: 15px;
+            padding-bottom: 10px;
+            border-bottom: 1px solid #999;
+          "
+        >
+          <el-col :span="11">
+            <span class="leftInfo">下达日期</span>
+            <span class="rightInfo">{{ detailInfo.createTime }}</span>
+          </el-col>
+          <!-- <el-col :span="6">
+            <span class="middleInfo">当前工段</span>
+            <span class="rightInfo">{{ detailInfo.deptName }}</span>
+          </el-col> -->
+          <!-- <el-col :span="7">
+            <span class="middleInfo">当前工序投产量</span>
+            <span class="rightInfo">{{
+              detailInfo.temporaryProcessQualifiedNum
+            }}</span>
+          </el-col> -->
+        </el-row>
+        <el-row :gutter="20" style="margin-top: 20px; margin-bottom: 20px">
+          <span style="font-weight: bold">废品信息</span>
+        </el-row>
+      </div>
+      <el-form
+        ref="noCurrent"
+        v-loading="loading"
+        class="master-container"
+        :model="detailInfo"
+        :rules="rules"
+        label-width="80px"
+      >
+        <el-row :gutter="24">
+          <el-col :span="8">
+            <el-form-item label="发现工段" label-width="80px" prop="findDeptId">
+              <el-select-v2
+                v-model="detailInfo.findDeptName"
+                :options="deptList"
+                placeholder="请选择工段"
+                @change="getFindProcess"
+                style="width: 140px"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item
+              label="发现工序"
+              label-width="100px"
+              prop="findTechnologicalProcessId"
+            >
+              <el-select-v2
+                v-model="detailInfo.findTechnologicalProcessName"
+                :options="findProcessList"
+                @change="selectFindProcess"
+                placeholder="请选择工序"
+                :disabled="detailInfo.findDeptId == null"
+                style="width: 140px"
+              >
+                <template #default="{ index, item }">
+                  <span style="float: left">{{ index + 1 }}</span>
+                  <span style="margin-left: 8px">{{ item.label }}</span>
+                </template>
+              </el-select-v2>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="发现人" label-width="100px">
+              <el-autocomplete
+                v-if="editStatus && type !== 'alterOrder'"
+                :fetch-suggestions="querySearchAsync"
+                :trigger-on-focus="true"
+                style="width: 100%"
+                v-model="detailInfo.findUserName"
+                placeholder="选择人员"
+                popper-class="my-autocomplete"
+                @select="handleSelectEmployee"
+              >
+                <template #default="{ item }">
+                  <div
+                    style="
+                      display: flex;
+                      flex-direction: row;
+                      justify-content: space-between;
+                    "
+                  >
+                    <div class="name" style="font-size: 12px">
+                      {{ item.nickName }}
+                    </div>
+                    <span
+                      class="code"
+                      style="font-size: 10px; color: darkgrey"
+                      >{{ item.userName }}</span
+                    >
+                  </div>
+                </template>
+              </el-autocomplete>
+              <!-- <el-select
+                v-model="detailInfo.findUserId"
+                filterable
+                remote
+                reserve-keyword
+                placeholder="请选发现人"
+                collapse-tags-tooltip
+                collapse-tags
+                :remote-method="(arg) => selectUsere(arg)"
+                :loading="loadingCarrier"
+                @change="handleselectUsereChange"
+              >
+                <el-option
+                  v-for="dict in userList"
+                  :key="dict.userid"
+                  :label="dict.userName"
+                >
+                  <template #suffix>
+                    <span>{{ dict.userName }} - {{ dict.nickName }}</span>
+                  </template>
+                </el-option>
+              </el-select> -->
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="24">
+          <el-col :span="8">
+            <el-form-item label="责任工段" label-width="80px" prop="deptId">
+              <el-select-v2
+                v-model="detailInfo.deptName"
+                :options="deptList"
+                placeholder="请选择工段"
+                @change="getProcess"
+                style="width: 140px"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item
+              label="责任工序"
+              label-width="100px"
+              prop="technologicalProcessId"
+            >
+              <el-select-v2
+                v-model="detailInfo.technologicalProcessName"
+                :options="processList"
+                placeholder="请选择工序"
+                :disabled="detailInfo.deptId == null"
+                @change="selectProcess"
+                style="width: 140px"
+              >
+                <template #default="{ index, item }">
+                  <span style="float: left">{{ index + 1 }}</span>
+                  <span style="margin-left: 8px">{{ item.label }}</span>
+                </template>
+              </el-select-v2>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="废品数量" label-width="100px" prop="rejectNum">
+              <el-input-number
+                v-model="detailInfo.rejectNum"
+                :min="1"
+                :max="detailInfo.productionQuantity"
+                label="数量"
+                style="width: 140px"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-form-item label="废品原因" label-width="90px" prop="remark">
+            <el-input
+              type="textarea"
+              placeholder="请输入批废原因"
+              maxlength="200"
+              show-word-limit
+              v-model.trim="detailInfo.remark"
+              style="width: 495px"
+            />
+          </el-form-item>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="8">
+            <el-form-item label="填写人" label-width="80px" prop="fillName">
+              <el-input
+                :disabled="true"
+                placeholder="请输入填写人"
+                v-model.trim="detailInfo.fillName"
+                style="width: 140px"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="9">
+            <el-form-item label="填写时间" label-width="100px" prop="fillDate">
+              <el-date-picker
+                v-model="detailInfo.fillDate"
+                :disabled="true"
+                type="date"
+                value-format="YYYY-MM-DD"
+                placeholder="请选择填写时间"
+                style="width: 150px"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+    <template #footer>
+      <el-button type="primary" icon="Check" @click="handleSave"
+        >保存</el-button
+      >
+      <el-button icon="Close" @click="handleCancel">取 消</el-button>
+    </template>
+  </el-dialog>
+</template>
+<script setup>
+import { getDeptInfo } from "@/api/business/daywork.js";
+import { getDayworkProcessList } from "@/api/business/daywork.js";
+import { lotParticulars } from "@/api/business/technologicalAmend.js";
+import { selectUserList, getInfo } from "@/api/business/noCurrentReject";
+import useUserStore from "@/store/modules/user";
+import { ref } from "vue";
+import { save } from "../../../api/business/noCurrentReject";
+const { proxy } = getCurrentInstance();
+const emit = defineEmits(["handleSaveSuccess"]);
+/** 字典数组区 */
+const { is_allow_more } = proxy.useDict("is_allow_more");
+/** 废批*/
+const deptList = ref([]);
+const detailInfo = ref({});
+const processList = ref([]);
+const findProcessList = ref([]);
+const userList = ref([]);
+const loading = ref(false);
+const editStatus = ref(true);
+const visible = ref(false);
+const data = reactive({
+  form: {},
+  rules: {
+    deptId: [{ required: true, message: "责任工段不能为空", trigger: "blur" }],
+    technologicalProcessId: [
+      { required: true, message: "责任工序不能为空", trigger: "blur" },
+    ],
+    findDeptId: [
+      { required: true, message: "发现工段不能为空", trigger: "blur" },
+    ],
+    findTechnologicalProcessId: [
+      { required: true, message: "发现工序不能为空", trigger: "blur" },
+    ],
+    rejectNum: [{ required: true, message: "废品不能为空", trigger: "blur" }],
+  },
+});
+const { form, rules } = toRefs(data);
+
+/***********************  方法区  ****************************/
+/** 打开抽屉 */
+const open = (row) => {
+  reset();
+  console.log("row", row);
+  if (row.id) {
+    getInfo(row.id).then((res) => {
+      if (res.code == 200) {
+        detailInfo.value = res.data;
+      }
+    });
+    //查工段
+    getDeptInfo({ dayworkId: row.dayworkId }).then((res) => {
+      deptList.value = res.data;
+      console.log("deptList.value", deptList.value);
+    });
+
+    visible.value = true;
+  }
+};
+
+const add = (row) => {
+  reset();
+  if (row.id) {
+    lotParticulars(row.lotCode).then((res) => {
+      if (res.code == 200) {
+        detailInfo.value = res.data;
+        detailInfo.value.companyAlias = detailInfo.value.daywork.companyAlias;
+        detailInfo.value.productDescription =
+          detailInfo.value.daywork.productDescription;
+        detailInfo.value.productionPlanNo =
+          detailInfo.value.daywork.productionPlanNo;
+        detailInfo.value.deptName = detailInfo.value.daywork.deptName;
+        detailInfo.value.dayworkId = row.id;
+        detailInfo.value.technologicalProcessId = null;
+        detailInfo.value.deptId = null;
+        detailInfo.value.fillDate = proxy.moment().format("YYYY-MM-DD");
+        detailInfo.value.fillName = useUserStore().user.nickName;
+        detailInfo.value.id = null;
+      }
+    });
+
+    //查工段
+    getDeptInfo({ dayworkId: row.id }).then((res) => {
+      deptList.value = res.data;
+      console.log("deptList.value", deptList.value);
+    });
+
+    visible.value = true;
+  }
+};
+
+/** 输入框输出建议 */
+function querySearchAsync(queryString, cb) {
+  if (queryString) {
+    selectUserList(queryString).then((res) => {
+      cb(res.rows);
+    });
+  }
+}
+/** 输入框输出选择 */
+function handleSelectEmployee(item) {
+  detailInfo.value.findUserName = item.nickName;
+  detailInfo.value.findUserId = item.userId;
+}
+//获得工序
+function getProcess(value) {
+  detailInfo.value.technologicalProcessId = null;
+
+  const foundProcess = deptList.value.find(
+    (process) => process.value === value
+  );
+
+  detailInfo.value.deptId = foundProcess.value;
+  detailInfo.value.deptName = foundProcess.label;
+
+  getDayworkProcessList({
+    id: detailInfo.value.dayworkId,
+    deptId: detailInfo.value.deptId,
+  }).then((response) => {
+    processList.value = response.data;
+  });
+}
+
+function selectProcess(value) {
+  const foundProcess = processList.value.find(
+    (process) => process.value === value
+  );
+
+  detailInfo.value.technologicalProcessId = foundProcess.value;
+  detailInfo.value.technologicalProcessName = foundProcess.label;
+}
+
+function selectFindProcess(value) {
+  const foundProcess = findProcessList.value.find(
+    (process) => process.value === value
+  );
+  detailInfo.value.findTechnologicalProcessId = foundProcess.value;
+  detailInfo.value.findTechnologicalProcessName = foundProcess.label;
+}
+
+//获得工序
+function getFindProcess(value) {
+  detailInfo.value.findTechnologicalProcessId = null;
+  const foundProcess = deptList.value.find(
+    (process) => process.value === value
+  );
+  console.log("foundProcess", foundProcess);
+  detailInfo.value.findDeptId = foundProcess.value;
+  detailInfo.value.findDeptNmae = foundProcess.label;
+  getDayworkProcessList({
+    id: detailInfo.value.dayworkId,
+    deptId: detailInfo.value.findDeptId,
+  }).then((response) => {
+    findProcessList.value = response.data;
+  });
+}
+
+/** 取消按钮 */
+function handleCancel() {
+  visible.value = false;
+  reset();
+}
+
+/** 表单重置 */
+function reset() {
+  detailInfo.value = {
+    id: null,
+    technologicalProcessId: null,
+    reason: "",
+    deptId: null,
+    fillDate: null,
+    fillName: null,
+  };
+  proxy.resetForm("noCurrent");
+}
+
+/** 提交按钮 */
+function handleSave() {
+  console.log("detailInfo", detailInfo.value);
+  proxy.$refs["noCurrent"].validate((valid) => {
+    if (valid) {
+      save(detailInfo.value).then((res) => {
+        if (res.code == 200) {
+          proxy.$message({
+            message: "保存成功",
+            type: "success",
+          });
+          visible.value = false;
+          emit("handleSaveSuccess");
+        }
+      });
+    }
+  });
+}
+
+/** 暴露给父组件的方法 */
+defineExpose({
+  open,
+  add,
+});
+</script>
+<style scoped>
+.leftInfo {
+  color: #999;
+  font-size: 16px;
+  width: 120px;
+  /* display: inline-block; */
+}
+.middleInfo {
+  color: #999;
+  font-size: 16px;
+  width: 120px;
+  display: inline-block;
+}
+.rightInfo {
+  font-size: 16px;
+  padding-left: 20px;
+}
+</style>

+ 171 - 0
src/views/business/noCurrentReject/DialogSelectLot.vue

@@ -0,0 +1,171 @@
+<template>
+  <el-dialog
+    title="选择批次"
+    v-model="visible"
+    width="800px"
+    height="400px"
+    @close="close"
+    append-to-body
+    draggable
+  >
+    <el-form
+      ref="dialogForm"
+      :model="queryParams"
+      :inline="true"
+      style="padding-top: 16px"
+    >
+      <el-form-item
+        label="产品描述:"
+        prop="productDescription"
+        label-width="104"
+      >
+        <el-input
+          v-model.trim="queryParams.keyword"
+          type="text"
+          @keydown.enter.prevent
+          style="width: 160px"
+          placeholder="请输入关键字"
+          :clearable="true"
+          @keyup.enter="handleSearch"
+        />
+      </el-form-item>
+      <el-form-item label-width="20px">
+        <el-button type="info" icon="Search" @click="handleSearch"
+          >搜索</el-button
+        >
+      </el-form-item>
+    </el-form>
+
+    <el-table
+      ref="dialogTable"
+      :data="dataList"
+      size="small"
+      v-loading="loading"
+      border
+      height="370px"
+      @selection-change="handleSelectionChange"
+    >
+      <el-table-column type="selection" width="40" align="center" />
+      <el-table-column type="index" label="行号" width="50" align="center" />
+      <el-table-column
+        label="批次号"
+        align="center"
+        prop="lotCode"
+        width="100"
+      />
+      <!-- <el-table-column
+        label="料号"
+        align="center"
+        prop="productCode"
+        width="96"
+      /> -->
+      <el-table-column
+        label="产品描述"
+        align="center"
+        prop="productDescription"
+      />
+      <!-- <el-table-column
+        label="箱号"
+        align="center"
+        prop="originalCarrier"
+        width="220"
+      /> -->
+    </el-table>
+    <!-- 分页 -->
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      v-model:page="queryParams.pageNum"
+      v-model:limit="queryParams.pageSize"
+      @pagination="getList"
+    />
+    <template #footer>
+      <div class="dialog-footer">
+        <el-button
+          type="primary"
+          icon="Check"
+          :disabled="selections.length != 1"
+          @click="handleMultipleSelected"
+        >
+          确 定
+        </el-button>
+        <el-button type="danger" icon="Close" @click="close">取 消</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 详情弹窗 -->
+  <dialog-reject-info ref="dialogRejectInfoRef" />
+</template>
+<script setup>
+import { listDayworkLot } from "@/api/business/daywork";
+import DialogRejectInfo from "./DialogRejectInfo";
+const { proxy } = getCurrentInstance();
+const total = ref(0);
+const props = defineProps({
+  multipleSelected: {
+    type: Function,
+    default: null,
+  },
+});
+
+const dataList = ref([]);
+const visible = ref(false);
+const showAll = ref(false);
+const loading = ref(false);
+const queryParams = ref({
+  existingOutsourceDetailIds: [],
+  pageNum: 1,
+  pageSize: 10,
+});
+const selections = ref([]);
+
+/**
+ * 对话框打开 事件
+ */
+function open() {
+  visible.value = true;
+  getList();
+}
+
+/**
+ * 对话框关闭 事件
+ */
+function close() {
+  queryParams.value.pageNum = 1;
+  visible.value = false;
+}
+
+/**
+ * 加载数据
+ */
+function getList() {
+  loading.value = true;
+  listDayworkLot(queryParams.value).then((res) => {
+    console.log(res);
+    dataList.value = res.rows;
+    total.value = res.total;
+    loading.value = false;
+  });
+}
+
+/**
+ * 列表checkbox列选择 事件
+ */
+function handleSelectionChange(selection) {
+  selections.value = selection;
+}
+
+/**  搜索 事件 */
+function handleSearch() {
+  getList();
+}
+/** 确定事件 */
+function handleMultipleSelected() {
+  proxy.$refs.dialogRejectInfoRef.add(selections.value[0]);
+  close();
+}
+
+defineExpose({
+  open,
+});
+</script>

+ 252 - 0
src/views/business/noCurrentReject/index.vue

@@ -0,0 +1,252 @@
+<template>
+  <div class="page-container column-container">
+    <!-- 搜索区 -->
+    <el-form
+      class="list-search-container"
+      :model="queryParams"
+      ref="queryRef"
+      :inline="true"
+      style="margin-right: 0px"
+    >
+      <el-form-item label="批次号:" prop="lotCode">
+        <el-input
+          v-model="queryParams.lotCode"
+          placeholder="请输入批次号"
+          style="width: 144px"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="产品描述:" prop="productDescription">
+        <el-input
+          v-model="queryParams.productDescription"
+          placeholder="请输入产品描述"
+          style="width: 144px"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="生成日期:" prop="startTime">
+        <el-date-picker
+          v-model="queryParams.startTime"
+          type="date"
+          style="width: 144px"
+          value-format="YYYY-MM-DD"
+          placeholder="选择起始日期"
+          clearable
+        />
+        <span style="margin: 0 4px">~</span>
+        <el-date-picker
+          v-model="queryParams.endTime"
+          type="date"
+          style="width: 144px"
+          value-format="YYYY-MM-DD"
+          placeholder="选择结束日期"
+          clearable
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="Search" @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="Refresh" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+    <!-- 功能按钮区 -->
+    <div class="list-btns-container">
+      <el-button type="primary" icon="Plus" @click="handleLogDialog">
+        新增
+      </el-button>
+      <el-button
+        type="danger"
+        icon="Delete"
+        :disabled="ids.length === 0"
+        @click="handleDelete"
+      >
+        删除
+      </el-button>
+    </div>
+    <!-- 渲染数据区 -->
+    <div class="el-table-container">
+      <div class="el-table-inner-container">
+        <el-table
+          v-loading="loading"
+          :data="dataList"
+          size="small"
+          @selection-change="handleSelectionChange"
+          border
+          height="100%"
+        >
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column label="批次号" align="center" prop="lotCode" />
+          <el-table-column
+            label="产品描述"
+            align="center"
+            min-width="150px"
+            prop="productDescription"
+          />
+          <el-table-column
+            label="计划单号"
+            align="center"
+            prop="productionPlanNo"
+          />
+          <el-table-column label="责任工段" align="center" prop="deptName" />
+          <el-table-column
+            label="批次投产量"
+            align="center"
+            prop="productionQuantity"
+          />
+          <el-table-column label="废品数量" align="center" prop="rejectNum" />
+          <el-table-column label="生成日期" align="center" prop="fillDate">
+            <template #default="scope">
+              {{ parseTime(scope.row.fillDate, "{y}-{m}-{d}") }}
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="操作"
+            align="center"
+            class-name="small-padding fixed-width"
+          >
+            <template #default="scope">
+              <el-button
+                link
+                type="warning"
+                icon="Edit"
+                @click="handleShowTurnoverDialog(scope.row)"
+              >
+                编辑
+              </el-button>
+
+              <el-button
+                link
+                type="danger"
+                icon="Delete"
+                @click="handleDelete(scope.row)"
+              >
+                编辑
+              </el-button>
+              <!-- <el-button
+                v-else
+                link
+                type="primary"
+                icon="View"
+                @click="handleShowTurnoverDialog(scope.row)"
+              >
+                查看
+              </el-button> -->
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </div>
+
+    <!-- 分页 -->
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      v-model:page="queryParams.pageNum"
+      v-model:limit="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 详情弹窗 -->
+    <dialog-reject-info
+      ref="dialogRejectInfoRef"
+      @handleSaveSuccess="getList()"
+    />
+    <!-- 选择批次弹窗 -->
+    <dialog-select-lot ref="dialogSelectLot" />
+  </div>
+</template>
+
+<script setup name="noCurrentReject">
+import { listReject, delReject } from "@/api/business/noCurrentReject";
+
+import DialogRejectInfo from "./DialogRejectInfo";
+import DialogSelectLot from "./DialogSelectLot";
+const { proxy } = getCurrentInstance();
+const dataList = ref([]);
+const loading = ref(true);
+const ids = ref([]);
+const total = ref(0);
+/** 查询对象 */
+const queryParams = ref({
+  pageNum: 1,
+  pageSize: 10,
+  formCode: null,
+  formDate: null,
+});
+
+/***********************  方法区  ****************************/
+
+/** 列表查询 */
+function getList() {
+  loading.value = true;
+  listReject(queryParams.value).then((response) => {
+    dataList.value = response.rows;
+    total.value = response.total;
+    loading.value = false;
+  });
+}
+
+/** 删除按钮操作 */
+function handleDelete(row) {
+  const _ids = row.id || ids.value;
+  proxy.$modal
+    .confirm("是否确认删除选中的数据项?")
+    .then(function () {
+      return delReject(_ids);
+    })
+    .then(() => {
+      getList();
+      proxy.$modal.msgSuccess("删除成功!");
+    })
+    .catch(() => {});
+}
+
+// 新增按钮操作
+function handleLogDialog() {
+  proxy.$refs.dialogSelectLot.open();
+}
+
+/** 搜索按钮操作 */
+function handleQuery() {
+  queryParams.value.pageNum = 1;
+  getList();
+}
+
+// 多选框选中数据
+function handleSelectionChange(selection) {
+  ids.value = selection.map((item) => item.id);
+}
+
+/** 重置按钮操作 */
+function resetQuery() {
+  proxy.resetForm("queryRef");
+  queryParams.value = {
+    pageNum: 1,
+    pageSize: 10,
+    formCode: null,
+    formDate: null,
+  };
+  handleQuery();
+}
+
+/** 修改周转按钮操作 */
+function handleShowTurnoverDialog(row) {
+  proxy.$refs.dialogRejectInfoRef.open(row);
+}
+
+/** 导出按钮操作 */
+// function handleExport() {
+//   proxy.download(
+//     "business/returnReceipt/export",
+//     {
+//       ...queryParams.value,
+//     },
+//     `order_${new Date().getTime()}.xlsx`
+//   );
+// }
+
+getList();
+</script>

+ 1 - 1
src/views/business/outsource/DialogProducts.vue

@@ -23,7 +23,7 @@
           v-model.trim="queryParams.keyword"
           type="text"
           @keydown.enter.prevent
-          style="width: 160px"
+          style="width: 170px"
           placeholder="请输入批号或产品描述"
           :clearable="true"
           @keyup.enter="handleSearch"

+ 1 - 1
src/views/business/outsource/form.vue

@@ -416,7 +416,7 @@ const form = ref({});
 const currentDetail = ref({});
 const rules = {
   supplierName: [
-    { required: true, message: "外协商名称不能为空", trigger: "blur" },
+    { required: true, message: "外协商名称不能为空", trigger: "change" },
   ],
 };
 

+ 2 - 0
src/views/business/outsource/index.vue

@@ -260,6 +260,8 @@ const queryParams = ref({
   pageSize: 10,
   formCode: null,
   formDate: null,
+  startTime:null,
+  endTime:null,
   supplierName: null,
   deliveryMethod: null,
   packagingMethod: null,

+ 177 - 120
src/views/business/returnReceipt/index.vue

@@ -1,161 +1,218 @@
 <template>
-	<div class="page-container column-container">
-		<!-- 搜索区 -->
-		<el-form class="list-search-container" :model="queryParams" ref="queryRef" :inline="true" style="margin-right: 0px">
-			<el-form-item label="单据号:" prop="formCode">
-				<el-input
-					v-model="queryParams.formCode"
-					placeholder="请输入单据号"
-					style="width: 144px"
-					clearable
-					@keyup.enter="handleQuery"
-				/>
-			</el-form-item>
-			<el-form-item label="表单日期:" prop="startTime">
-				<el-date-picker
-					v-model="queryParams.startTime"
-					type="date"
-					style="width: 144px"
-					value-format="YYYY-MM-DD"
-					placeholder="选择起始日期"
-					clearable
-				/>
-				<span style="margin: 0 4px">~</span>
-				<el-date-picker
-					v-model="queryParams.endTime"
-					type="date"
-					style="width: 144px"
-					value-format="YYYY-MM-DD"
-					placeholder="选择结束日期"
-					clearable
-				/>
-			</el-form-item>
-			<el-form-item>
-				<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-				<el-button icon="Refresh" @click="resetQuery">重置</el-button>
-			</el-form-item>
-		</el-form>
+  <div class="page-container column-container">
+    <!-- 搜索区 -->
+    <el-form
+      class="list-search-container"
+      :model="queryParams"
+      ref="queryRef"
+      :inline="true"
+      style="margin-right: 0px"
+    >
+      <el-form-item label="单据号:" prop="formCode">
+        <el-input
+          v-model="queryParams.formCode"
+          placeholder="请输入单据号"
+          style="width: 144px"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="表单日期:" prop="startTime">
+        <el-date-picker
+          v-model="queryParams.startTime"
+          type="date"
+          style="width: 144px"
+          value-format="YYYY-MM-DD"
+          placeholder="选择起始日期"
+          clearable
+        />
+        <span style="margin: 0 4px">~</span>
+        <el-date-picker
+          v-model="queryParams.endTime"
+          type="date"
+          style="width: 144px"
+          value-format="YYYY-MM-DD"
+          placeholder="选择结束日期"
+          clearable
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="Search" @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="Refresh" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
 
-		<!-- 功能按钮区 -->
-		<div class="list-btns-container">
-			<el-button type="primary" icon="Plus" @click="handleShowFormDialog(null)"> 新增 </el-button>
-			<el-button type="danger" icon="Delete" :disabled="multiple" @click="handleDelete"> 删除 </el-button>
-		</div>
-		<!-- 渲染数据区 -->
-		<div class="el-table-container">
-			<div class="el-table-inner-container">
-				<el-table v-loading="loading" :data="dataList" size="small" border height="100%" @selection-change="handleSelectionChange">
-					<el-table-column type="selection" width="48" align="center" />
-					<el-table-column label="收回单号" align="center" prop="formCode" width="120" />
-					<el-table-column label="外协商" align="center" prop="supplierName" width="240" />
-					<el-table-column label="收回日期" align="center" prop="formDate" width="120">
-						<template #default="scope">
-							{{ parseTime(scope.row.formDate, '{y}-{m}-{d}') }}
-						</template>
-					</el-table-column>
-					<el-table-column label="备注" align="center" prop="remark" />
-					<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="64">
-						<template #default="scope">
-							<el-button link type="warning" icon="Edit" @click="handleShowFormDialog(scope.row)"> 编辑 </el-button>
-						</template>
-					</el-table-column>
-				</el-table>
-			</div>
-		</div>
+    <!-- 功能按钮区 -->
+    <div class="list-btns-container">
+      <el-button type="primary" icon="Plus" @click="handleShowFormDialog(null)">
+        新增
+      </el-button>
+      <el-button
+        type="danger"
+        icon="Delete"
+        :disabled="multiple"
+        @click="handleDelete"
+      >
+        删除
+      </el-button>
+    </div>
+    <!-- 渲染数据区 -->
+    <div class="el-table-container">
+      <div class="el-table-inner-container">
+        <el-table
+          v-loading="loading"
+          :data="dataList"
+          size="small"
+          border
+          height="100%"
+          @selection-change="handleSelectionChange"
+        >
+          <el-table-column type="selection" width="48" align="center" />
+          <el-table-column
+            label="收回单号"
+            align="center"
+            prop="formCode"
+            width="120"
+          />
+          <el-table-column
+            label="外协商"
+            align="center"
+            prop="supplierName"
+            width="240"
+          />
+          <el-table-column
+            label="收回日期"
+            align="center"
+            prop="formDate"
+            width="120"
+          >
+            <template #default="scope">
+              {{ parseTime(scope.row.formDate, "{y}-{m}-{d}") }}
+            </template>
+          </el-table-column>
+          <el-table-column label="备注" align="center" prop="remark" />
+          <el-table-column
+            label="操作"
+            align="center"
+            class-name="small-padding fixed-width"
+            width="64"
+          >
+            <template #default="scope">
+              <el-button
+                link
+                type="warning"
+                icon="Edit"
+                @click="handleShowFormDialog(scope.row)"
+              >
+                编辑
+              </el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </div>
 
-		<!-- 分页 -->
-		<pagination
-			v-show="total > 0"
-			:total="total"
-			v-model:page="queryParams.pageNum"
-			v-model:limit="queryParams.pageSize"
-			@pagination="getList"
-		/>
+    <!-- 分页 -->
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      v-model:page="queryParams.pageNum"
+      v-model:limit="queryParams.pageSize"
+      @pagination="getList"
+    />
 
-		<!-- 表单 -->
-		<receipt-form ref="receiptRef" @handleSaveSuccess = getList() />
-	</div>
+    <!-- 表单 -->
+    <receipt-form ref="receiptRef" @handleSaveSuccess="getList()" />
+  </div>
 </template>
 
 <script setup name="Receipt">
-import { listReceipt,delReceipt } from '@/api/business/returnReceipt'
-import receiptForm from './form'
-const { proxy } = getCurrentInstance()
+import { listReceipt, delReceipt } from "@/api/business/returnReceipt";
+import receiptForm from "./form";
+const { proxy } = getCurrentInstance();
 
-const dataList = ref([])
-const loading = ref(true)
-const multiple = ref(false)
-const ids = ref([])
-const total = ref(0)
+const dataList = ref([]);
+const loading = ref(true);
+const multiple = ref(false);
+const ids = ref([]);
+const total = ref(0);
 /** 查询对象 */
 const queryParams = ref({
-	pageNum: 1,
-	pageSize: 10,
-	formCode: null,
-	formDate: null
-})
+  pageNum: 1,
+  pageSize: 10,
+  formCode: null,
+  formDate: null,
+});
 
 /***********************  方法区  ****************************/
 
 /** 查询外协单主
 带箱方式,是整单的。如果换新箱子,明细中,都需要更换箱子列表 */
 function getList() {
-	loading.value = true
-	listReceipt(queryParams.value).then((response) => {
-		dataList.value = response.rows
-		total.value = response.total
-		loading.value = false
-	})
+  loading.value = true;
+  listReceipt(queryParams.value).then((response) => {
+    dataList.value = response.rows;
+    total.value = response.total;
+    loading.value = false;
+  });
 }
 
 /** 搜索按钮操作 */
 function handleQuery() {
-	queryParams.value.pageNum = 1
-	getList()
+  queryParams.value.pageNum = 1;
+  getList();
 }
 
 /** 重置按钮操作 */
 function resetQuery() {
-	proxy.resetForm('queryRef')
-	handleQuery()
+  proxy.resetForm("queryRef");
+  queryParams.value = {
+    pageNum: 1,
+    pageSize: 10,
+    formCode: null,
+    formDate: null,
+  };
+  handleQuery();
 }
 /**复选框选中数据 */
 function handleSelectionChange(selection) {
-	ids.value = selection.map((item) => item.id)
+  ids.value = selection.map((item) => item.id);
 }
 
 /** 修改按钮操作 */
 function handleShowFormDialog(row) {
-	if(row) {
-		row.editStatus = false
-	}
-	proxy.$refs.receiptRef.open(row?row:null)
+  if (row) {
+    row.editStatus = false;
+  }
+  proxy.$refs.receiptRef.open(row ? row : null);
 }
 /** 删除按钮操作 */
 function handleDelete() {
-	const _ids = ids.value
-	proxy.$modal
-		.confirm('是否确认删除选中的数据项?')
-		.then(function () {
-			return delReceipt(_ids)
-		})
-		.then(() => {
-			getList()
-			proxy.$modal.msgSuccess('删除成功!')
-		})
-		.catch(() => {})
+  const _ids = ids.value;
+  proxy.$modal
+    .confirm("是否确认删除选中的数据项?")
+    .then(function () {
+      return delReceipt(_ids);
+    })
+    .then(() => {
+      getList();
+      proxy.$modal.msgSuccess("删除成功!");
+    })
+    .catch(() => {});
 }
 
 /** 导出按钮操作 */
 function handleExport() {
-	proxy.download(
-		'business/returnReceipt/export',
-		{
-			...queryParams.value
-		},
-		`order_${new Date().getTime()}.xlsx`
-	)
+  proxy.download(
+    "business/returnReceipt/export",
+    {
+      ...queryParams.value,
+    },
+    `order_${new Date().getTime()}.xlsx`
+  );
 }
 
-getList()
+getList();
 </script>

+ 2 - 2
src/views/business/returnTurnover/DialogReturnTurnover.vue

@@ -79,6 +79,7 @@ function open(data) {
     data.productionDeptId =null
   }
   form.value = proxy.deepClone(data);
+  console.log(form.value)
   getNowCarriers(data)
   getTurnoverDept()
   getCarriers()
@@ -132,7 +133,6 @@ function handleCancel() {
   visible.value = false;
   reset();
 }
-
 /** 表单重置 */
 function reset() {
   form.value = {
@@ -146,7 +146,7 @@ function reset() {
 
 /** 提交按钮 */
 function handleSave() {
-  if(!form.flag) {
+  if(!form.value.flag) {
     visible.value = false
   }else{
   proxy.$refs["returnTurnoverRef"].validate((valid) => {

+ 33 - 32
src/views/business/returnTurnover/index.vue

@@ -145,39 +145,40 @@ function resetQuery() {
 /** 修改周转按钮操作 */
 function handleShowTurnoverDialog(row) {
 	console.log(row)
+	proxy.$refs.dialogReturnTurnoverRef.open(row)
 	//判断该批次的工序是否需要审核
-	getP2NeedCheckProcess("Y").then(res => {
-		if(res.code == 200) {
-			//需要序检的工序
-			var process = []
-			let needCheckProcessCodeList = res.rows.map(item => item.prcode.trim())
-			let returnReceiptProcessCodeList=row.finishedProcesses.map(v => ({ processCode: v.processCode, processStepNumber: v.processStepNumber,returnReceiptDetailId:v.returnReceiptDetailId }))
-			for(let i = 0;i<needCheckProcessCodeList.length;i++) {
-				for(let j = 0;j<returnReceiptProcessCodeList.length;j++) {
-					if(needCheckProcessCodeList[i] == returnReceiptProcessCodeList[j].processCode) {
-						process.push(returnReceiptProcessCodeList[j])
-					}
-				}
-			}
-			console.log(needCheckProcessCodeList)
-			console.log(returnReceiptProcessCodeList)
-			console.log(process)
-			if(process.length >0) {
-				getProcessInspectionList(process[process.length - 1]).then(res => {
-					if(res.code == 200) {
-						if(res.data){
-						proxy.$refs.dialogReturnTurnoverRef.open(row)
-						}
-						else {
-							proxy.$modal.msgError('该批次的工序序检未合格,不能周转')
-						}
-					}
-				})
-			}else {
-				proxy.$refs.dialogReturnTurnoverRef.open(row)
-			}
-		}
-	})
+	// getP2NeedCheckProcess("Y").then(res => {
+	// 	if(res.code == 200) {
+	// 		//需要序检的工序
+	// 		var process = []
+	// 		let needCheckProcessCodeList = res.rows.map(item => item.prcode.trim())
+	// 		let returnReceiptProcessCodeList=row.finishedProcesses.map(v => ({ processCode: v.processCode, processStepNumber: v.processStepNumber,returnReceiptDetailId:v.returnReceiptDetailId }))
+	// 		for(let i = 0;i<needCheckProcessCodeList.length;i++) {
+	// 			for(let j = 0;j<returnReceiptProcessCodeList.length;j++) {
+	// 				if(needCheckProcessCodeList[i] == returnReceiptProcessCodeList[j].processCode) {
+	// 					process.push(returnReceiptProcessCodeList[j])
+	// 				}
+	// 			}
+	// 		}
+	// 		console.log(needCheckProcessCodeList)
+	// 		console.log(returnReceiptProcessCodeList)
+	// 		console.log(process)
+	// 		if(process.length >0) {
+	// 			getProcessInspectionList(process[process.length - 1]).then(res => {
+	// 				if(res.code == 200) {
+	// 					if(res.data){
+	// 					proxy.$refs.dialogReturnTurnoverRef.open(row)
+	// 					}
+	// 					else {
+	// 						proxy.$modal.msgError('该批次的工序序检未合格,不能周转')
+	// 					}
+	// 				}
+	// 			})
+	// 		}else {
+	// 			proxy.$refs.dialogReturnTurnoverRef.open(row)
+	// 		}
+	// 	}
+	// })
 }
 
 /** 导出按钮操作 */

+ 140 - 0
src/views/business/supplier/contactsForm.vue

@@ -0,0 +1,140 @@
+<template>
+  <!-- 添加或修改项目信息对话框 -->
+  <el-drawer
+      v-model="visible"
+      size="80%"
+      direction="rtl"
+      :close-on-press-escape="false"
+  >
+    <div class="page-container form-container">
+      <div class="form-btns-container">
+        <span class="title-label"
+        ><el-icon>
+            <Document/>
+          </el-icon>
+          联系人详情</span
+        >
+        <el-button
+            type="primary"
+            icon="Check"
+            style="margin-right: 10px"
+            @click="handleSave"
+        >保 存
+        </el-button
+        >
+        <el-button icon="Close" @click="handleCancel">取 消</el-button>
+      </div>
+      <!-- 搜索区域 -->
+      <el-form class="list-search-container" :inline="true">
+        <el-form-item>
+          <el-button
+              type="warning"
+              icon="Plus"
+              @click="handleOpenPerson('person')"
+          >添加人员
+          </el-button
+          >
+          <el-button
+              type="danger"
+              icon="Delete"
+              :disabled="selections.length == 0"
+              @click="handleDelete"
+          >批量删除
+          </el-button
+          >
+        </el-form-item>
+      </el-form>
+      <!-- 列表区 -->
+      <div class="el-table-container">
+        <el-table
+            ref="equipmentTable"
+            v-loading="loading"
+            row-key="id"
+            @selection-change="handleSelectionChange"
+            :data="contactsList"
+            height="100%"
+        >
+          <el-table-column type="selection" width="40" align="center"/>
+          <el-table-column label="姓名" prop="name" align="center"/>
+          <el-table-column label="职务" prop="rule" align="center"/>
+          <el-table-column label="电话" prop="phoneNumber" align="center"/>
+          <el-table-column label="邮箱" prop="eamil" align="center"/>
+          <el-table-column label="默认联系人" align="center" prop="status" width="200">
+							<template #default="scope">
+							<el-switch
+								v-model="scope.row.isDefault"
+								style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949"
+								:active-value="1"
+								:inactive-value="0"
+								active-text="是"
+    							inactive-text="否"
+								@change="handleChangeAuditStatus(scope.row)"
+								/>
+							</template>
+						</el-table-column>
+        </el-table>
+      </div>
+    </div>
+  </el-drawer>
+</template>
+<script setup>
+const {proxy} = getCurrentInstance();
+const emit = defineEmits(["handleSaveResourceSuccess"]);
+/** 表单抽屉 页变量 */
+const selections = ref([]);
+const loading = ref(false);
+const contactsList = ref([]);
+const visible = ref(false);
+
+/***********************  方法区  ****************************/
+/** 打开抽屉 */
+const open = (row) => {
+  loading.value = true;
+  loading.value = false;
+  visible.value = true;
+};
+
+/**
+ * 列表checkbox列选择 事件
+ */
+function handleSelectionChange(selection) {
+  selections.value = selection;
+}
+
+/**批量删除 */
+function handleDelete() {
+  checkUseEquipment(selections.value).then(res => {
+    if(res.code == 200) {
+        form.value.groupDetailList = form.value.groupDetailList.filter(
+      (item) => !selections.value.some((selectedItem) => selectedItem === item)
+  );
+    }
+  })
+
+}
+
+/**
+ * 对话框关闭 事件
+ */
+function close() {
+  visible.value = false;
+}
+
+/** 提交按钮 */
+const handleSave = () => {
+
+    }
+
+
+
+/** 取消按钮 */
+const handleCancel = () => {
+  visible.value = false;
+  reset();
+};
+
+/** 暴露给父组件的方法 */
+defineExpose({
+  open,
+});
+</script>

+ 5 - 5
src/views/business/supplier/form.vue

@@ -4,23 +4,23 @@
 			<!-- 主表 -->
 			<el-form ref="formRef" class="master-container" :model="form" :rules="rules" label-width="120px">
 				<el-form-item label="供应商名称" prop="name">
-					<el-input v-model.trim="form.name" placeholder="供应商名称" />
+					<el-input v-model.trim="form.name" placeholder="请输入供应商名称" />
 				</el-form-item>
 				<el-form-item label="助记码" prop="mnemonicCode">
-					<el-input v-model.trim="form.mnemonicCode" placeholder="请输入料号" />
+					<el-input v-model.trim="form.mnemonicCode" placeholder="请输入助记码" />
 				</el-form-item>
 				<el-form-item label="发货方式" prop="deliveryMethod">
-					<el-select v-model="form.deliveryMethod" placeholder="请选择">
+					<el-select v-model="form.deliveryMethod" placeholder="请选择发货方式">
 						<el-option v-for="dict in deliveryMethod" :key="dict.value" :label="dict.label" :value="dict.value" />
 					</el-select>
 				</el-form-item>
 				<el-form-item label="结算方式" prop="settlementType">
-					<el-select v-model="form.settlementType" placeholder="请选择">
+					<el-select v-model="form.settlementType" placeholder="请选择结算方式">
 						<el-option v-for="dict in settlementType" :key="dict.value" :label="dict.label" :value="dict.value" />
 					</el-select>
 				</el-form-item>
 				<el-form-item label="损耗上限(%)" prop="lossLimit">
-					<el-input-number v-model="form.lossLimit" :min="0" :precision="2" controls-position="right" />
+					<el-input-number v-model="form.lossLimit" :min="0" :max="100" :precision="2" controls-position="right" placeholder="请输入损耗上限(%)" />
 				</el-form-item>
 				<el-form-item label="备注" prop="remark">
 					<el-input v-model.trim="form.remark" placeholder="请输入备注" />

+ 22 - 6
src/views/business/supplier/index.vue

@@ -58,10 +58,10 @@
 							<template #default="scope"> {{ scope.row.lossLimit }}% </template>
 						</el-table-column>
 						<el-table-column label="备注" align="center" prop="remark" />
-						<el-table-column label="操作" width="240" align="center">
+						<el-table-column label="操作" width="350" align="center">
 							<template #default="scope">
 								<el-button
-									v-hasPermi="['system:supplier:edit']"
+									v-hasPermi="['business:supplier:edit']"
 									link
 									type="primary"
 									icon="User"
@@ -70,7 +70,16 @@
 									设置管理员
 								</el-button>
 								<el-button
-									v-hasPermi="['system:supplier:edit']"
+									v-hasPermi="['business:supplier:edit']"
+									link
+									type="success"
+									icon="Iphone"
+									@click="handleSetSupplierContacts(scope.row)"
+								>
+									设置联系人
+								</el-button>
+								<el-button
+									v-hasPermi="['business:supplier:edit']"
 									link
 									type="warning"
 									icon="Edit"
@@ -79,7 +88,7 @@
 									编辑
 								</el-button>
 								<el-button
-									v-hasPermi="['system:supplier:remove']"
+									v-hasPermi="['business:supplier:remove']"
 									link
 									type="danger"
 									icon="Delete"
@@ -110,7 +119,7 @@
 					<el-form-item label="产品描述:">
 						<el-input
 							placeholder="请输入关键字"
-							v-model.trim="queryParams.productDescription"
+							v-model.trim="queryProductParams.productDescription"
 							style="width: 120px"
 							clearable
 							@keyup.enter="handleQuery"
@@ -263,6 +272,8 @@
 		/>
 		<!-- 管理员设置 -->
 		<dialog-set-admin ref="setAdminRef" />
+		<!-- 联系人设置 -->
+		<contacts-form ref="setContactsRef" />
 	</div>
 </template>
 
@@ -282,6 +293,7 @@ import dialogForm from './form'
 import dialogProducts from './DialogProducts'
 import dialogProcesses from './DialogProcesses'
 import dialogSetAdmin from './DialogSetAdmin'
+import contactsForm from './contactsForm'
 const { proxy } = getCurrentInstance()
 const { delivery_method } = proxy.useDict('delivery_method')
 const { settlement_type } = proxy.useDict('settlement_type')
@@ -377,7 +389,10 @@ const handleDelete = (row) => {
 const handleSetSupplierAdmin = (data) => {
 	proxy.$refs.setAdminRef.open(data)
 }
-
+/**设置联系人 */
+const handleSetSupplierContacts = (data) => {
+	proxy.$refs.setContactsRef.open(data)
+}
 /**************************************** 产品相关 ****************************************/
 /** 产品打开对话框方法 */
 const handleShowProductsDialog = () => {
@@ -488,6 +503,7 @@ const handleProcessSelected = (selection) => {
 		}
 		dataList.push(newProcess)
 	})
+	console.log(dataList)
 	saveSupplierProductProcess(dataList).then((res) => {
 		if (res.code === 200) {
 			getCurrentSupplierProductProcess()