Sfoglia il codice sorgente

指定目标版本

Veronique 4 mesi fa
parent
commit
70f4f08d6f

+ 33 - 1
src/api/upgrade/index.ts

@@ -38,5 +38,37 @@ export function revokeUpgradeProject(data) {
     url: "/upgradeProject/revokeUpgradeProject",
     method: "post",
     params: data,
-  })
+  });
+}
+
+export function queryClientUpgradeVersions(data) {
+  return request({
+    url: "/upgradeProject/queryClientUpgradeVersions",
+    method: "post",
+    params: data,
+  });
+}
+
+export function addClientUpgradeVersion(data) {
+  return request({
+    url: "/upgradeProject/addClientUpgradeVersion",
+    method: "post",
+    params: data,
+  });
+}
+
+export function updateClientUpgradeVersion(data) {
+  return request({
+    url: "/upgradeProject/updateClientUpgradeVersion",
+    method: "post",
+    params: data,
+  });
+}
+
+export function deleteClientUpgradeVersion(data) {
+  return request({
+    url: "/upgradeProject/deleteClientUpgradeVersion",
+    method: "post",
+    params: data,
+  });
 }

+ 172 - 0
src/views/baseInfo/erpClientList/compt/editTargetVersion.vue

@@ -0,0 +1,172 @@
+<template>
+  <div class="dialog">
+    <el-dialog
+      v-model="dialogVisible"
+      :title="dialogTitle"
+      width="680"
+      @close="closeDialog()"
+    >
+      <el-form
+        ref="formRef"
+        :model="formData"
+        :rules="rules"
+        label-width="120px"
+      >
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="项目名称" prop="projectName">
+              <el-select v-model="formData.projectName" @change="projectChange">
+                <el-option
+                  v-for="item in projectOptions"
+                  :key="item.code"
+                  :label="item.label"
+                  :value="item.label"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="项目代码" prop="projectCode">
+              <el-input v-model="formData.projectCode" disabled />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="主版本" prop="majorVersion">
+              <el-input-number
+                v-model="formData.majorVersion"
+                :step="1"
+                step-strictly
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="次版本" prop="minorVersion">
+              <el-input-number
+                v-model="formData.minorVersion"
+                :step="1"
+                step-strictly
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="小版本" prop="minVersion">
+              <el-input-number
+                v-model="formData.minVersion"
+                :step="1"
+                step-strictly
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button v-throttle type="primary" @click="handleSubmit"
+            >确 定
+          </el-button>
+          <el-button @click="closeDialog()">取 消</el-button>
+        </div>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+<script lang="ts" setup>
+import type { FormInstance } from "element-plus";
+import {
+  addClientUpgradeVersion,
+  updateClientUpgradeVersion,
+} from "@/api/upgrade";
+
+let dialogVisible = ref(false);
+let dialogTitle = ref("");
+const formRef = ref<FormInstance>();
+const emit = defineEmits(["dialogChange"]);
+const formData = reactive({
+  projectName: "ERP-APP",
+  projectCode: "ERP-APP",
+  majorVersion: 1,
+  minorVersion: 1,
+  minVersion: 0,
+  id: 0,
+  idErpClient: 0,
+});
+const rules = reactive({
+  clientName: [{ required: true, message: "请输入客户名称", trigger: "blur" }],
+});
+
+const projectOptions = [
+  { label: "ERP-APP", code: "ERP-APP" },
+  { label: "ERP-PRINTCONFIG", code: "ERP-PRINTCONFIG" },
+];
+
+function handleSubmit() {
+  formRef.value.validate((valid: any) => {
+    if (valid) {
+      const itemId = formData.id;
+      if (itemId) {
+        //修改
+        const postData = JSON.stringify(formData);
+        const params = {
+          targetVersion: postData,
+        };
+        updateClientUpgradeVersion(params).then((response) => {
+          dialogVisible.value = false;
+          if (response.httpCode == 200) {
+            emit("dialogChange");
+            ElMessage.success("操作成功");
+          }
+        });
+      } else {
+        //增加
+        const postData = JSON.stringify(formData);
+        const params = {
+          targetVersion: postData,
+        };
+        addClientUpgradeVersion(params).then((response) => {
+          dialogVisible.value = false;
+          if (response.httpCode == 200) {
+            emit("dialogChange");
+            ElMessage.success("操作成功");
+          }
+        });
+      }
+    }
+  });
+}
+
+function getItemData(item) {
+  Object.assign(formData, { ...item });
+}
+
+/**  重置表单 */
+function resetForm(idErpClient) {
+  formRef.value.resetFields();
+  formData.id = 0;
+  formData.idErpClient = idErpClient;
+}
+
+/**关闭弹窗 */
+function closeDialog() {
+  dialogVisible.value = false;
+  formRef.value.resetFields();
+  formData.id = undefined;
+}
+
+const projectChange = (val) => {
+  const proj = projectOptions.find((v) => v.label === val);
+  formData.projectCode = proj.code;
+};
+
+defineExpose({
+  dialogVisible,
+  dialogTitle,
+  getItemData,
+  resetForm,
+});
+</script>
+<style lang="scss" scoped></style>

+ 121 - 0
src/views/baseInfo/erpClientList/compt/projectTargetVersion.vue

@@ -0,0 +1,121 @@
+<template>
+  <div class="app-container">
+    <div class="filter-container">
+      <el-button type="primary" @click="handleSearch">
+        <i-ep-search />
+        搜索
+      </el-button>
+      <el-button color="#11a983" @click="openDialog()">
+        <i-ep-plus />
+        增加
+      </el-button>
+    </div>
+    <div class="table-con">
+      <el-table
+        v-loading="loading"
+        :data="tableData"
+        :max-height="tableHeight"
+        border
+        highlight-current-row
+      >
+        <el-table-column label="操作" width="140">
+          <template #default="{ row }">
+            <el-button link type="primary" @click="openDialog(row)">
+              <i-ep-edit />
+              编辑
+            </el-button>
+            <el-button
+              link
+              type="danger"
+              @click="onDeleteTargetVersion(row.id)"
+            >
+              <i-ep-delete />
+              删除
+            </el-button>
+          </template>
+        </el-table-column>
+        <el-table-column label="#" type="index" width="50">
+          <template #default="scope">
+            <span>{{ scope.$index + 1 }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="项目名称" prop="projectName" width="150" />
+        <el-table-column label="项目代码" prop="projectCode" width="150" />
+        <el-table-column label="主版本" prop="majorVersion" width="100" />
+        <el-table-column label="次版本" prop="minorVersion" width="100" />
+        <el-table-column label="小版本" prop="minVersion" width="100" />
+      </el-table>
+    </div>
+    <edit-target-version
+      ref="editTargetVersionRef"
+      @dialogChange="dialogChange"
+    />
+  </div>
+</template>
+<script lang="ts" setup>
+import { useTable } from "@/hooks/useTable";
+import {
+  deleteClientUpgradeVersion,
+  queryClientUpgradeVersions,
+} from "@/api/upgrade";
+import EditTargetVersion from "@/views/baseInfo/erpClientList/compt/editTargetVersion.vue";
+
+const editTargetVersionRef = ref<any>();
+//增加编辑
+function openDialog(item?: any) {
+  editTargetVersionRef.value.dialogVisible = true;
+  if (item) {
+    editTargetVersionRef.value.dialogTitle = "编辑";
+    nextTick(() => {
+      editTargetVersionRef.value.getItemData(item);
+    });
+  } else {
+    nextTick(() => {
+      editTargetVersionRef.value.dialogTitle = "增加";
+      editTargetVersionRef.value.resetForm(queryForm.idErpClient);
+    });
+  }
+}
+
+//删除目标版本
+function onDeleteTargetVersion(id) {
+  const params = {
+    id: id,
+  };
+
+  deleteClientUpgradeVersion(params).then((response) => {
+    if (response.httpCode == 200) {
+      ElMessage.success("操作成功");
+      handleSearch();
+    }
+  });
+}
+
+function handleInitSearch(idErpClient) {
+  queryForm.idErpClient = idErpClient;
+  handleSearch();
+}
+
+//修改成功后传递事件
+function dialogChange() {
+  handleSearch();
+}
+
+const queryForm = reactive({
+  idErpClient: 0,
+});
+const {
+  tableData,
+  queryPage,
+  total,
+  loading,
+  getTableData,
+  tableHeight,
+  handleSearch, //搜索
+  refreshTableInfo, //刷新
+} = useTable(queryClientUpgradeVersions, queryForm);
+
+defineExpose({
+  handleInitSearch,
+});
+</script>

+ 52 - 22
src/views/baseInfo/erpClientList/index.vue

@@ -2,10 +2,10 @@
   <div class="app-container">
     <div class="filter-container">
       <el-input
-        @keyup.enter="handleSearch"
-        class="w200px mr5px"
         v-model="queryForm.keyWord"
+        class="w200px mr5px"
         placeholder="关键字搜索"
+        @keyup.enter="handleSearch"
       />
       <el-button type="primary" @click="handleSearch">
         <i-ep-search />
@@ -13,13 +13,13 @@
       </el-button>
       <div class="w100px ml10px" style="display: inline-block">
         <el-checkbox
-          style="position: absolute; top: 11px"
           v-model="disableLock"
-          label="已禁用"
           border
+          label="已禁用"
+          style="position: absolute; top: 11px"
         ></el-checkbox>
       </div>
-      <el-button @click="openDialog()" color="#11a983">
+      <el-button color="#11a983" @click="openDialog()">
         <i-ep-plus />
         增加
       </el-button>
@@ -29,57 +29,61 @@
     </div>
     <div class="table-con">
       <el-table
-        :max-height="tableHeight"
         v-loading="loading"
         :data="tableData"
-        highlight-current-row
+        :max-height="tableHeight"
         border
+        highlight-current-row
       >
         <el-table-column label="操作" width="140">
           <template #default="{ row }">
-            <el-button link @click="openDialog(row.id)" type="primary">
+            <el-button link type="primary" @click="openDialog(row.id)">
               <i-ep-edit />
               编辑
             </el-button>
             <el-button
               v-if="row.voidFlag == 0"
               link
-              @click="handleDisable(row.id, 1)"
               type="warning"
+              @click="handleDisable(row.id, 1)"
               >禁用</el-button
             >
             <el-button
               v-if="row.voidFlag == 1"
-              type="success"
               link
+              type="success"
               @click="handleDisable(row.id, 0)"
               >启用</el-button
             >
+            <el-button link type="warning" @click="setTargetVersion(row)">
+              <i-ep-edit />
+              设置版本
+            </el-button>
           </template>
         </el-table-column>
-        <el-table-column type="index" label="#" width="50">
+        <el-table-column label="#" type="index" width="50">
           <template #default="scope">
             <span>{{ scope.$index + 1 }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="clientName" width="150" label="客户名称" />
-        <el-table-column prop="clientCode" width="200" label="客户编码" />
-        <el-table-column prop="md5ParamDigest" width="280" label="MD5" />
-        <el-table-column prop="contactPhone" width="150" label="联系电话" />
-        <el-table-column prop="contactPerson" width="150" label="联系人" />
+        <el-table-column label="客户名称" prop="clientName" width="150" />
+        <el-table-column label="客户编码" prop="clientCode" width="200" />
+        <el-table-column label="MD5" prop="md5ParamDigest" width="280" />
+        <el-table-column label="联系电话" prop="contactPhone" width="150" />
+        <el-table-column label="联系人" prop="contactPerson" width="150" />
         <el-table-column
+          label="联系地址"
           prop="clientAddress"
           show-overflow-tooltip
           width="250"
-          label="联系地址"
         />
-        <el-table-column prop="status" label="状态">
+        <el-table-column label="状态" prop="status">
           <template #default="{ row }">
             <el-tag v-if="row.voidFlag == 0" type="success"> 正常 </el-tag>
             <el-tag v-else="row.voidFlag == 1" type="danger"> 停用 </el-tag>
           </template>
         </el-table-column>
-        <el-table-column prop="createTime" label="创建时间" width="155">
+        <el-table-column label="创建时间" prop="createTime" width="155">
           <template #default="{ row }">
             <span v-if="row.createTime">
               {{ $filters.getTime(row.createTime) }}
@@ -89,22 +93,40 @@
       </el-table>
       <pagination
         v-if="total > 0"
-        v-model:total="total"
-        v-model:page="queryPage.pageIndex"
         v-model:limit="queryPage.pageSize"
+        v-model:page="queryPage.pageIndex"
+        v-model:total="total"
         @pagination="getTableData"
       />
     </div>
+
+    <el-dialog
+      v-model="targetVersionVisible"
+      :lock-scroll="false"
+      :title="targetVersionTitle"
+      destroy-on-close
+      style="margin: 30px auto 0"
+      top="30px"
+      width="1400"
+      @close="targetVersionVisible = false"
+    >
+      <project-target-version ref="targetVersionRef" />
+    </el-dialog>
+
     <child-dialog ref="childDialog" @dialogChange="dialogChange"></child-dialog>
   </div>
 </template>
-<script setup lang="ts">
+<script lang="ts" setup>
 import { queryERPClientList, voidERPClient } from "@/api/baseInfo";
 import ChildDialog from "./compt/childDialog.vue";
 import { useTable } from "@/hooks/useTable";
+import ProjectTargetVersion from "@/views/baseInfo/erpClientList/compt/projectTargetVersion.vue";
 
 let disableLock = ref("");
 const childDialog = ref<any>();
+const targetVersionVisible = ref(false);
+const targetVersionTitle = ref("");
+const targetVersionRef = ref();
 
 //增加编辑
 function openDialog(item?: any) {
@@ -122,6 +144,14 @@ function openDialog(item?: any) {
   }
 }
 
+//设置更新版本
+function setTargetVersion(row) {
+  targetVersionVisible.value = true;
+  setTimeout(() => {
+    targetVersionRef.value.handleInitSearch(row.id);
+  }, 200);
+}
+
 //禁用删除
 function handleDisable(id, status) {
   ElMessageBox.confirm("确认操作?", "警告", {