pengwei
2025-03-24 f90fbbc76d23340e4568dd4dadbab5f7f02a030f
ÏîÄ¿´úÂë/client/src/views/tts/BasicInformation/Basicinformation.vue
@@ -39,21 +39,38 @@
            size="small"
          />
        </div>
        <!-- <div class="serch_box">
          <div class="serchb">全局搜索</div>
        <div class="serch_box">
          <div class="serchb">
            <el-select
              v-model="queryForm.selectType"
              placeholder="请选择"
              size="small"
              style="width: 100%; height: 100%; font-size: 0.15rem"
            >
              <el-option
                v-for="item in selectoptions"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              />
            </el-select>
          </div>
          <input
            v-model="queryForm.selectName"
            v-model="queryForm.selectInput"
            placeholder="请输入关键词搜索"
            style="border-left: 0.06rem solid #e2e2e2"
          />
        </div> -->
        </div>
        <el-button
          type="primary"
          size="small"
          style="margin-left: 0.98rem; height: 2rem"
          @click="handleQuery"
          >查询</el-button
        >
        <el-button size="small" style="height: 2rem">重置</el-button>
        <el-button size="small" style="height: 2rem" @click="resetQuery"
          >重置</el-button
        >
      </div>
      <div class="btns">
        <div style="display: flex; align-items: center">
@@ -70,7 +87,7 @@
              display: flex;
              align-items: center;
            "
            ><el-icon style="margin-right: 0.2rem"><Plus /></el-icon
            ><el-icon style="margin-right: 0.2rem"> <Plus /> </el-icon
            >新建</el-button
          >
          <!-- å·¥å…·åˆ—表新建 -->
@@ -86,10 +103,10 @@
              display: flex;
              align-items: center;
            "
            ><el-icon style="margin-right: 0.2rem"><Plus /></el-icon
            ><el-icon style="margin-right: 0.2rem"> <Plus /> </el-icon
            >新建</el-button
          >
          <el-button
          <!-- <el-button
            size="small"
            style="width: 5.5rem; height: 2rem; font-size: 0.88rem"
            >批量导入</el-button
@@ -97,8 +114,9 @@
          <el-button
            size="small"
            style="width: 5.5rem; height: 2rem; font-size: 0.88rem"
            @click="printExcel"
            >批量导出</el-button
          >
          > -->
          <el-button
            @click="deleteAll"
            size="small"
@@ -110,6 +128,7 @@
      <div style="margin-top: 1rem; height: 100%">
        <!-- ä¿¡æ¯åˆ—表 -->
        <el-table
          empty-text="暂无数据"
          v-if="isactive == 1"
          :data="tableData"
          style="width: 100%"
@@ -131,7 +150,7 @@
          <el-table-column prop="articleName" label="信息名称" align="center" />
          <el-table-column prop="articleType" label="规格型号" align="center" />
          <el-table-column prop="articleUnit" label="单位" align="center" />
          <el-table-column prop="category" label="所属分类" align="center" />
          <!-- <el-table-column prop="category" label="所属分类" align="center" /> -->
          <el-table-column prop="createDate" label="创建日期" align="center" />
          <el-table-column label="操作" align="center">
            <template #default="scope">
@@ -144,6 +163,7 @@
        <!-- å·¥å…·åˆ—表 -->
        <el-table
          empty-text="暂无数据"
          v-if="isactive == 2"
          :data="toolList"
          style="width: 100%"
@@ -169,7 +189,7 @@
            align="center"
          />
          <el-table-column prop="toolUnit" label="单位" align="center" />
          <el-table-column prop="" label="所属分类" align="center" />
          <!-- <el-table-column prop="" label="所属分类" align="center" /> -->
          <el-table-column prop="toolremark" label="备注" align="center" />
          <el-table-column prop="createtime" label="创建日期" align="center" />
          <el-table-column prop="address" label="操作" align="center">
@@ -213,6 +233,7 @@
      :before-close="handleClose"
      :show-close="false"
      :align-center="true"
      @close="resetForm(formRef)"
    >
      <template #title>
        <div
@@ -228,10 +249,17 @@
          >
        </div>
      </template>
      <el-form :model="forminfo" label-width="auto" label-position="top">
      <el-form
        :model="forminfo"
        label-width="auto"
        label-position="top"
        :rules="rules"
        ref="formRef"
        :hide-required-asterisk="true"
      >
        <el-row :gutter="20">
          <el-col :span="8">
            <el-form-item>
            <el-form-item prop="articleName">
              <template #label>
                <div style="display: flex; align-items: flex-end">
                  <span style="color: red; margin-right: 0.2rem">*</span>
@@ -249,7 +277,7 @@
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item>
            <el-form-item prop="articleType">
              <template #label>
                <div style="display: flex; align-items: flex-end">
                  <span style="color: red; margin-right: 0.2rem">*</span>
@@ -267,7 +295,7 @@
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item>
            <el-form-item prop="articleUnit">
              <template #label>
                <div style="display: flex; align-items: flex-end">
                  <span style="color: red; margin-right: 0.2rem">*</span>
@@ -286,37 +314,10 @@
          </el-col>
        </el-row>
        <el-row :gutter="20">
          <el-col :span="8">
            <el-form-item>
              <template #label>
                <div style="display: flex; align-items: flex-end">
                  <span style="color: red; margin-right: 0.2rem">*</span>
                  <span
                    style="font-size: 0.88rem; color: black; font-weight: bold"
                    >所属分类</span
                  >
                </div>
              </template>
              <el-input
                size="small"
                v-model="forminfo.category"
                placeholder="请输入"
              />
              <!-- <el-select v-model="value" placeholder="请选择" size="small">
                <el-option
                  v-for="item in options"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                />
              </el-select> -->
            </el-form-item>
          </el-col>
          <el-col :span="16">
            <el-form-item>
            <el-form-item prop="articleRemark">
              <template #label>
                <div style="display: flex; align-items: flex-end">
                  <span style="color: red; margin-right: 0.2rem">*</span>
                  <span
                    style="font-size: 0.88rem; color: black; font-weight: bold"
                    >备注</span
@@ -344,7 +345,7 @@
          <el-button
            size="small"
            type="primary"
            @click="CreateInformation"
            @click="CreateInformation(formRef)"
            style="height: 2rem; font-size: 0.88rem"
          >
            ä¿å­˜
@@ -361,6 +362,7 @@
      :before-close="handleClose"
      :show-close="false"
      :align-center="true"
      @close="resetForm(ruleFormRef)"
    >
      <template #title>
        <div
@@ -376,10 +378,17 @@
          >
        </div>
      </template>
      <el-form :model="formtool" label-width="auto" label-position="top">
      <el-form
        :model="formtool"
        label-width="auto"
        label-position="top"
        ref="ruleFormRef"
        :rules="toolRules"
        :hide-required-asterisk="true"
      >
        <el-row :gutter="20">
          <el-col :span="8">
            <el-form-item>
            <el-form-item prop="toolName">
              <template #label>
                <div style="display: flex; align-items: flex-end">
                  <span style="color: red; margin-right: 0.2rem">*</span>
@@ -397,7 +406,7 @@
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item>
            <el-form-item prop="specification">
              <template #label>
                <div style="display: flex; align-items: flex-end">
                  <span style="color: red; margin-right: 0.2rem">*</span>
@@ -415,7 +424,7 @@
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item>
            <el-form-item prop="toolUnit">
              <template #label>
                <div style="display: flex; align-items: flex-end">
                  <span style="color: red; margin-right: 0.2rem">*</span>
@@ -434,37 +443,10 @@
          </el-col>
        </el-row>
        <el-row :gutter="20">
          <el-col :span="8">
            <el-form-item>
              <template #label>
                <div style="display: flex; align-items: flex-end">
                  <span style="color: red; margin-right: 0.2rem">*</span>
                  <span
                    style="font-size: 0.88rem; color: black; font-weight: bold"
                    >所属分类</span
                  >
                </div>
              </template>
              <el-input
                size="small"
                v-model="formtool.category"
                placeholder="请输入"
              />
              <!-- <el-select v-model="value" placeholder="请选择" size="small">
                <el-option
                  v-for="item in options"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                />
              </el-select> -->
            </el-form-item>
          </el-col>
          <el-col :span="16">
            <el-form-item>
            <el-form-item prop="toolremark">
              <template #label>
                <div style="display: flex; align-items: flex-end">
                  <span style="color: red; margin-right: 0.2rem">*</span>
                  <span
                    style="font-size: 0.88rem; color: black; font-weight: bold"
                    >备注</span
@@ -492,7 +474,7 @@
          <el-button
            size="small"
            type="primary"
            @click="addToolApi"
            @click="addToolApi(ruleFormRef)"
            style="height: 2rem; font-size: 0.88rem"
          >
            ä¿å­˜
@@ -503,7 +485,7 @@
  </div>
</template>
<script setup>
import { ref, reactive, onMounted } from "vue";
import { ref, reactive, onMounted, toRef } from "vue";
import { ElMessage, ElMessageBox } from "element-plus";
import { formatTime } from "@/utils/index.js";
import {
@@ -515,46 +497,94 @@
  editToolData,
  deleteToolData,
  deleteBasicinformation,
  ExportApi,
  ExportTool,
} from "@/api/newapi/Basicinformation.js";
const queryForm = reactive({
// åˆå§‹åŒ–数据
const obj = {
  selectName: "",
  selectTime: [], // æ—¶é—´èŒƒå›´
});
  selectType: "", //选择的类型
  selectInput: "", //输入的数据
};
//搜索传的数据
const queryForm = toRef({ ...obj });
const tableData = ref([]);
const options = ref([]);
const props = { multiple: true };
const table = ref(false);
const toolList = ref([]);
const isactive = ref(1);
const dialogVisible = ref(false);
const dialogVisible1 = ref(false);
const selectoptions = ref([]);
const infoOpitions = ref([
  {
    value: "articleName",
    label: "信息名称",
  },
  {
    value: "articleType",
    label: "规格型号",
  },
]);
const toolsOpitions = ref([
  {
    value: "toolName",
    label: "工具名称",
  },
  {
    value: "specification",
    label: "规格型号",
  },
]);
const forminfo = ref({
  articleName: "",
  articleType: "",
  articleUnit: "",
  category: "",
  articleremark: "",
  createDate: formatTime(new Date()),
  createDate: formatTime(new Date()), //创建时间
  creater: JSON.parse(localStorage.getItem("user")).userName, //创建人
});
const isactive = ref(1);
const claimdialogVisible = ref(false);
const dialogVisible = ref(false);
const dialogVisible1 = ref(false);
const TorquedialogVisible = ref(false);
const toolList = ref([]);
const formtool = ref({
  toolName: "",
  specification: 0,
  toolUnit: "",
  toolremark: "",
  createtime: formatTime(new Date()),
  createDate: formatTime(new Date()), //创建时间
  creater: JSON.parse(localStorage.getItem("user")).userName, //创建人
  modifier: JSON.parse(localStorage.getItem("user")).userName, //修改人
  modifyDate: formatTime(new Date()), //修改时间
});
const toolRules = reactive({
  toolName: [{ required: true, message: "请输入工具名称", trigger: "blur" }],
  specification: [{ required: true, message: "请输入规格", trigger: "blur" }],
  toolUnit: [{ required: true, message: "请输入单位", trigger: "blur" }],
  toolremark: [{ required: true, message: "请输入备注", trigger: "blur" }],
});
const rules = reactive({
  articleName: [{ required: true, message: "请输入工具名称", trigger: "blur" }],
  articleType: [{ required: true, message: "请输入规格", trigger: "blur" }],
  articleUnit: [{ required: true, message: "请输入单位", trigger: "blur" }],
  articleremark: [{ required: true, message: "请输入备注", trigger: "blur" }],
});
const ruleFormRef = ref();
const formRef = ref();
//改变状态
selectoptions.value = infoOpitions.value;
const changeactive = (index) => {
  isactive.value = index;
  if (index == 1) {
    initData();
  if (isactive.value == 1) {
    selectoptions.value = infoOpitions.value;
  } else {
    getTool();
    selectoptions.value = toolsOpitions.value;
  }
  initData();
};
const infoType = ref("新建");
const Useradd = () => {
  infoType.value = "新建";
  dialogVisible.value = true;
@@ -567,90 +597,35 @@
};
//新建信息列表
const CreateInformation = () => {
  if (infoType.value == "新建") {
    addBasicinformation(forminfo.value).then((res) => {
      ElMessage({
        message: "新建成功",
        type: "success",
      });
      dialogVisible.value = false;
      initData();
    });
  } else {
    editBasicinformation(forminfo.value).then((res) => {
      ElMessage({
        message: "修改成功",
        type: "success",
      });
      dialogVisible.value = false;
      initData();
    });
  }
};
// æŸ¥çœ‹åŠ›çŸ©
const Findtorque = () => {
  TorquedialogVisible.value = true;
};
//分页请求参数
const pageQuery = ref({
  page: 1, //当前页面
  rows: 10, //每页显示条数
  order: "desc", //排序方式
  sort: "createDate", //排序字段
  wheres: "", //条件查询
});
//分页页面大小改变
const handleSizeChange = (val) => {
  pageQuery.value.rows = val;
  initData();
};
//分页页面改变
const handleCurrentChange = (val) => {
  pageQuery.value.page = val;
  initData();
};
const pageTotal = ref(0);
const initData = () => {
  // æŸ¥è¯¢æ¡ä»¶
  const startTime = formatTime(queryForm.selectTime[0]);
  const endTime = formatTime(queryForm.selectTime[1]);
  const filter = [
    {
      name: "grouptype",
      value: queryForm.selectType,
      displayType: "String",
    },
    {
      name: "pustatus",
      value: queryForm.selectName,
      displayType: "String",
    },
    { name: "dispatchtime", value: startTime, displayType: "ThanOrEqual" },
    { name: "dispatchtime", value: endTime, displayType: "LessOrEqual" },
  ];
  getBasicinformation({
    ...pageQuery.value,
    filter,
  }).then((res) => {
    tableData.value = res.rows;
    pageTotal.value = res.total;
const CreateInformation = async (formEl) => {
  if (!formEl) return;
  await formEl.validate((valid, fields) => {
    if (valid) {
      if (infoType.value == "新建") {
        addBasicinformation(forminfo.value).then((res) => {
          ElMessage({
            message: "新建成功",
            type: "success",
          });
          dialogVisible.value = false;
          initData();
        });
      } else {
        editBasicinformation(forminfo.value).then((res) => {
          ElMessage({
            message: "修改成功",
            type: "success",
          });
          dialogVisible.value = false;
          initData();
        });
      }
    } else {
      console.log("error submit!", fields);
    }
  });
};
//数据检索事件
const handleQuery = () => {
  pageQuery.value.page = 1;
  initData();
};
const resetQuery = () => {
  queryForm.value = { selectName: "全部状态", selectTime: [] };
  pageQuery.value.page = 1;
  initData();
};
const toolType = ref("新建");
const addTool = () => {
  toolType.value = "新建";
@@ -661,47 +636,53 @@
  formtool.value = data;
  toolType.value = "编辑";
  dialogVisible1.value = true;
  console.log(formtool.value);
};
//新建工具
const addToolApi = () => {
  if (toolType.value == "新建") {
    addToolData(formtool.value).then((res) => {
      ElMessage({
        message: "新建成功",
        type: "success",
      });
      dialogVisible1.value = false;
      getTool();
    });
  } else {
    editToolData(formtool.value).then((res) => {
      ElMessage({
        message: "修改成功",
        type: "success",
      });
      dialogVisible1.value = false;
      getTool();
    });
  }
const addToolApi = async (formEl) => {
  if (!formEl) return;
  await formEl.validate((valid, fields) => {
    if (valid) {
      if (toolType.value == "新建") {
        addToolData(formtool.value).then((res) => {
          ElMessage({
            message: "新建成功",
            type: "success",
          });
          dialogVisible1.value = false;
          initData();
        });
      } else {
        editToolData(formtool.value).then((res) => {
          ElMessage({
            message: "修改成功",
            type: "success",
          });
          dialogVisible1.value = false;
          initData();
        });
      }
    } else {
      console.log("error submit!", fields);
    }
  });
};
//获取工具表信息
const getTool = () => {
  const startTime = formatTime(queryForm.selectTime[0]);
  const endTime = formatTime(queryForm.selectTime[1]);
  const filter = [
    { name: "dispatchtime", value: startTime, displayType: "ThanOrEqual" },
    { name: "dispatchtime", value: endTime, displayType: "LessOrEqual" },
  ];
  getToolData({
    ...pageQuery.value,
    filter,
  }).then((res) => {
    toolList.value = res.rows;
    pageTotal.value = res.total;
  });
};
// const getTool = () => {
//   const startTime = formatTime(queryForm.value.selectTime[0]);
//   const endTime = formatTime(queryForm.value.selectTime[1]);
//   const filter = [
//     { name: "dispatchtime", value: startTime, displayType: "ThanOrEqual" },
//     { name: "dispatchtime", value: endTime, displayType: "LessOrEqual" },
//   ];
//   getToolData({
//     ...pageQuery.value,
//     filter,
//   }).then((res) => {
//     toolList.value = res.rows;
//     pageTotal.value = res.total;
//   });
// };
//批量删除
const ids = ref([]);
const InfoSelectionChange = (val) => {
@@ -725,9 +706,147 @@
  } else {
    deleteToolData(ids.value).then((res) => {
      ElMessage({ message: "删除成功", type: "success" });
      getTool();
      initData();
    });
  }
};
const printExcel = () => {
  // æŸ¥è¯¢æ¡ä»¶
  const startTime = formatTime(queryForm.value.selectTime[0]);
  const endTime = formatTime(queryForm.value.selectTime[1]);
  const filter = [
    {
      name: queryForm.value.selectType,
      value: queryForm.value.selectInput,
      displayType: "like",
    },
    {
      name: "pustatus",
      value: queryForm.value.selectName,
      displayType: "String",
    },
    { name: "createDate", value: startTime, displayType: "ThanOrEqual" },
    { name: "createDate", value: endTime, displayType: "LessOrEqual" },
  ];
  if (isactive.value == 1) {
    ExportApi({
      ...pageQuery.value,
      filter,
    });
  }
  if (isactive.value == 2) {
    ExportTool({
      ...pageQuery.value,
      filter,
    });
  }
};
//分页请求参数
const pageQuery = ref({
  page: 1, //当前页面
  rows: 10, //每页显示条数
  order: "desc", //排序方式
  sort: "", //排序字段
  wheres: "", //条件查询
});
//分页页面大小改变
const handleSizeChange = (val) => {
  pageQuery.value.rows = val;
  initData();
};
//分页页面改变
const handleCurrentChange = (val) => {
  pageQuery.value.page = val;
  initData();
};
const pageTotal = ref(0);
//初始化数据
const initData = () => {
  // æŸ¥è¯¢æ¡ä»¶
  const startTime = formatTime(queryForm.value.selectTime[0]);
  const endTime = formatTime(queryForm.value.selectTime[1]);
  const filter = [
    {
      name: "grouptype",
      value: queryForm.value.selectType,
      displayType: "String",
    },
    {
      name: queryForm.value.selectType,
      value: queryForm.value.selectInput,
      displayType: "like",
    },
    {
      name: "pustatus",
      value: queryForm.value.selectName,
      displayType: "String",
    },
    { name: "dispatchtime", value: startTime, displayType: "ThanOrEqual" },
    { name: "dispatchtime", value: endTime, displayType: "LessOrEqual" },
  ];
  if (isactive.value == 1) {
    getBasicinformation({
      ...pageQuery.value,
      filter,
    }).then((res) => {
      tableData.value = res.rows;
      pageTotal.value = res.total;
    });
  } else {
    getToolData({
      ...pageQuery.value,
      filter,
    }).then((res) => {
      toolList.value = res.rows;
      pageTotal.value = res.total;
    });
  }
};
//数据检索事件
const handleQuery = () => {
  pageQuery.value.page = 1;
  initData();
};
//重置方法
const resetQuery = () => {
  queryForm.value = Object.assign({}, obj);
  pageQuery.value.page = 1;
  initData();
};
//重置表单
const resetForm = (formEl) => {
  if (!formEl) return;
  formEl.resetFields();
  forminfo.value = Object.assign(
    {},
    {
      articleName: "",
      articleType: "",
      articleUnit: "",
      articleremark: "",
      createDate: formatTime(new Date()), //创建时间
      creater: JSON.parse(localStorage.getItem("user")).userName, //创建人
    }
  );
  formtool.value = Object.assign(
    {},
    {
      toolName: "",
      specification: 0,
      toolUnit: "",
      toolremark: "",
      createDate: formatTime(new Date()), //创建时间
      creater: JSON.parse(localStorage.getItem("user")).userName, //创建人
      modifier: JSON.parse(localStorage.getItem("user")).userName, //修改人
      modifyDate: formatTime(new Date()), //修改时间
    }
  );
};
onMounted(() => {
@@ -738,16 +857,19 @@
.Basicinformation {
  display: flex;
  background-color: #fff;
  .content {
    width: 100%;
    display: flex;
    flex-direction: column;
    .checkbox {
      width: 11rem;
      display: flex;
      justify-content: space-between;
      margin-top: 1rem;
      margin-left: 1.31rem;
      .item {
        width: 5rem;
        height: 1.88rem;
@@ -759,20 +881,24 @@
        line-height: 1.88rem;
        cursor: pointer;
      }
      .isactive {
        background-color: rgba(16, 16, 16, 1);
        color: rgba(255, 255, 255, 1);
      }
    }
    .serch {
      display: flex;
      margin-top: 1.31rem;
      align-items: center;
      .time_box {
        display: flex;
        align-items: center;
        text-align: center;
        margin-left: 0.98rem;
        .time {
          box-sizing: border-box;
          width: 6.88rem;
@@ -786,24 +912,26 @@
          justify-content: center;
        }
      }
      .serch_box {
        display: flex;
        align-items: center;
        text-align: center;
        margin-left: 0.98rem;
        border-radius: 0.38rem;
        .serchb {
          box-sizing: border-box;
          width: 6.88rem;
          height: 2rem;
          text-align: center;
          border: 0.06rem solid rgba(222, 222, 222, 1);
          border-radius: 0.25rem 0 0 0.25rem;
          font-size: 0.75rem;
          display: flex;
          align-items: center;
          justify-content: center;
        }
        input {
          box-sizing: border-box;
          outline: none;
@@ -816,6 +944,7 @@
        }
      }
    }
    .btns {
      display: flex;
      justify-content: space-between;
@@ -826,17 +955,20 @@
      box-sizing: border-box;
    }
  }
  .my-header {
    height: 3.84rem;
    display: flex;
    justify-content: space-between;
    border-bottom: 0.06rem solid rgba(233, 233, 233, 1);
  }
  .avatar-uploader .avatar {
    width: 7rem;
    height: 7rem;
    display: block;
  }
  :deep(.avatar-uploader .el-upload) {
    width: 7rem;
    height: 7rem;
@@ -847,10 +979,12 @@
    overflow: hidden;
    transition: var(--el-transition-duration-fast);
  }
  :deep(.el-upload-list__item) {
    width: 7rem;
    height: 7rem;
  }
  .avatar-uploader .el-upload:hover {
    border-color: var(--el-color-primary);
  }
@@ -868,6 +1002,7 @@
.confirmButtonClass {
  margin-right: 10px;
}
.el-message-box .el-message-box__btns {
  flex-direction: row-reverse !important;
  justify-content: normal !important;