艺术家
2025-06-11 fa837d5f98b6d66185d5fb171948d90bd5acd793
代码提交
已修改4个文件
341 ■■■■■ 文件已修改
项目代码/伸缩杆/client/src/api/user.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/伸缩杆/client/src/views/tts/DataLogging/Datalogging.vue 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/伸缩杆/client/src/views/tts/Enteroverhaul/Enteroverhaul.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/伸缩杆/client/src/views/tts/UserManagement/Usermanagement.vue 306 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ÏîÄ¿´úÂë/ÉìËõ¸Ë/client/src/api/user.js
@@ -71,3 +71,11 @@
export const EditUserUnit = (data) => http.post('/api/UnitCategory/UpdateData', data)
//删除用户单位
export const DeleteUserUnit = (data) => http.post('/api/UnitCategory/Del', data)
//获取IP数据
export const GetIPData = (data) => http.post('/api/IPaddress/GetPageData', data)
//添加IP
export const AddIP = (data) => http.post('/api/IPaddress/AddData', data)
//编辑IP
export const EditIP = (data) => http.post('/api/IPaddress/UpdateData', data)
//删除IP
export const DeleteIP = (data) => http.post('/api/IPaddress/Del', data)
ÏîÄ¿´úÂë/ÉìËõ¸Ë/client/src/views/tts/DataLogging/Datalogging.vue
@@ -143,20 +143,18 @@
          "
          @selection-change="DeleteMaintenance"
        >
          <!-- ï¼šå§“名,单位,班组,角色,上线检修道,上线时间,下线检修道,下线时间; -->
          <el-table-column type="selection" align="center" />
          <el-table-column prop="operatorName" label="姓名" align="center" />
          <!-- <el-table-column prop="teamName" label="组别" align="center" /> -->
          <el-table-column prop="unit" label="单位" align="center" />
          <el-table-column prop="teamName" label="班组" align="center" />
          <el-table-column prop="roleName" label="角色" align="center" />
          <el-table-column prop="" label="组员类型" align="center">
            <template #default="scope">
              <span v-if="scope.row.isLeader == 0">组员</span>
              <span v-else-if="scope.row.isLeader == 1">组长</span>
            </template>
          </el-table-column>
          <el-table-column prop="dept_Id" label="检修道" align="center">
            <template #default="scope">
              <div>{{ scope.row.dept_Id }}</div>
            </template></el-table-column
          >
          <el-table-column prop="headImageUrl" label="人脸" align="center">
            <template #default="scope">
              <el-image
@@ -169,12 +167,21 @@
            </template>
          </el-table-column>
          <el-table-column
            prop="maintenanceStatus"
            label="检修状态"
            align="center"
          >
            <template #default="scope">
              <span v-if="scope.row.maintenanceStatus == 0"> æœªä¸Šçº¿ </span>
              <span v-else-if="scope.row.maintenanceStatus == 1"> å·²ä¸Šçº¿ </span>
            </template>
          </el-table-column>
          <el-table-column
            prop="distributionTime"
            label="分配时间"
            align="center"
          />
          <!-- <el-table-column prop="Creater" label="分配检修员" align="center">
          </el-table-column> -->
          <el-table-column prop="endTime" label="下线时间" align="center" />
          <el-table-column
            prop="ipAddress"
            label="设备IP"
ÏîÄ¿´úÂë/ÉìËõ¸Ë/client/src/views/tts/Enteroverhaul/Enteroverhaul.vue
@@ -100,8 +100,8 @@
          min-width="1%"
        />
        <el-table-column
          prop="dept_Id"
          label="检修道"
          prop="ipAddress"
          label="轨道站"
          align="center"
          min-width="1%"
        />
ÏîÄ¿´úÂë/ÉìËõ¸Ë/client/src/views/tts/UserManagement/Usermanagement.vue
@@ -26,6 +26,12 @@
        >
          ç”¨æˆ·å•位
        </div>
        <div
          :class="['item', isactive == 5 ? 'isactive' : '']"
          @click="changeactive(5)"
        >
          ç”¨æˆ·IP
        </div>
      </div>
      <div class="serch">
        <div class="time_box">
@@ -150,6 +156,23 @@
            type="primary"
            size="small"
            @click="AddUnit"
            style="
              width: 5.5rem;
              height: 2rem;
              font-size: 0.88rem;
              display: flex;
              align-items: center;
            "
            class="text_btn"
            ><el-icon style="margin-right: 0.2rem"> <Plus /> </el-icon
            >新建</el-button
          >
          <!-- ç”¨æˆ·IP新建 -->
          <el-button
            v-if="isactive == 5"
            type="primary"
            size="small"
            @click="Addip"
            style="
              width: 5.5rem;
              height: 2rem;
@@ -557,6 +580,63 @@
                  cursor: 'pointer',
                }"
                @click="EditUnit(scope.row)"
                >编辑</span
              >
            </template></el-table-column
          >
        </el-table>
        <!-- ç”¨æˆ·IP -->
        <el-table
          empty-text="暂无数据"
          :height="isMin ? '950' : '450'"
          v-if="isactive == 5"
          :data="ipData"
          style="width: 100%"
          :header-cell-style="
            isMin
              ? {
                  background: 'rgba(250,250,250,1)',
                  color: '#101010',
                  fontSize: '1.5rem',
                  height: '3rem',
                  border: 'none',
                }
              : {
                  background: 'rgba(250,250,250,1)',
                  color: '#101010',
                  fontSize: '0.88rem',
                  height: '3rem',
                  border: 'none',
                }
          "
          :row-style="
            isMin
              ? {
                  color: '#101010',
                  fontSize: '1.88rem',
                  height: '3rem',
                }
              : {
                  color: '#101010',
                  fontSize: '0.88rem',
                  height: '3rem',
                }
          "
          @selection-change="IpSelectionChange"
        >
          <el-table-column type="selection" align="center" />
          <el-table-column prop="iPaddress" label="ip地址" align="center" />
          <el-table-column prop="addressname" label="检修道" align="center" />
          <el-table-column label="操作" align="center">
            <template #default="scope">
              <span
                :style="{
                  color: 'blue',
                  fontSize: isMin ? '1.88rem' : '0.88rem',
                  cursor: 'pointer',
                }"
                @click="Editip(scope.row)"
                >编辑</span
              >
            </template></el-table-column
@@ -1271,6 +1351,120 @@
      </template>
    </el-dialog>
    <!-- ç”¨æˆ·ip新建/编辑 -->
    <el-dialog
      v-model="dialogipVisible"
      title=""
      width="40%"
      :before-close="handleClose"
      :show-close="false"
      :align-center="true"
      @close="resetForm4(formipRef)"
    >
      <template #title>
        <div
          style="
            height: 3.63rem;
            display: flex;
            border-bottom: 1px solid #e6e6e6;
          "
        >
          <span
            :style="{
              color: 'rgb(16, 16, 16)',
              fontSize: isMin ? '2rem' : '1rem',
              fontWeight: 'bold',
            }"
            >用户ip</span
          >
        </div>
      </template>
      <el-form
        :model="formip"
        label-width="auto"
        label-position="top"
        ref="formipRef"
        :rules="ipRules"
        :hide-required-asterisk="true"
      >
        <el-form-item prop="iPaddress">
          <template #label>
            <div style="display: flex; align-items: flex-end">
              <span
                :style="{
                  color: 'red',
                  marginRight: '0.2rem',
                  fontSize: '2rem',
                }"
                >*</span
              >
              <span
                :style="{
                  fontSize: isMin ? '2rem' : '0.88rem',
                  color: 'black',
                  fontWeight: bold,
                }"
                >ip地址</span
              >
            </div>
          </template>
          <el-input
            style="height: 2rem"
            size="small"
            v-model="formip.iPaddress"
            placeholder="请输入"
          />
        </el-form-item>
        <el-form-item prop="addressname">
          <template #label>
            <div style="display: flex; align-items: flex-end">
              <span
                :style="{
                  color: 'red',
                  marginRight: '0.2rem',
                  fontSize: '2rem',
                }"
                >*</span
              >
              <span
                :style="{
                  fontSize: isMin ? '2rem' : '0.88rem',
                  color: 'black',
                  fontWeight: bold,
                }"
                >检修道</span
              >
            </div>
          </template>
          <el-input
            style="height: 2rem"
            size="small"
            v-model="formip.addressname"
            placeholder="请输入"
          />
        </el-form-item>
      </el-form>
      <template #footer>
        <div class="dialog-footer" style="text-align: center">
          <el-button
            size="small"
            @click="dialogipVisible = false"
            style="height: 2rem; font-size: 0.88rem"
            >取消</el-button
          >
          <el-button
            size="small"
            type="primary"
            @click="saveIp(formipRef)"
            style="height: 2rem; font-size: 0.88rem"
          >
            ä¿å­˜
          </el-button>
        </div>
      </template>
    </el-dialog>
    <el-dialog v-model="imgdialogVisible" width="35%" top="3vh">
      <div
        style="
@@ -1352,6 +1546,10 @@
  AddUserUnit,
  EditUserUnit,
  DeleteUserUnit,
  GetIPData,
  AddIP,
  EditIP,
  DeleteIP,
} from "@/api/user";
import { useRouter } from "vue-router";
import { formatTime } from "@/utils/index.js";
@@ -1681,6 +1879,19 @@
    unitName: "",
  };
};
const resetForm4 = (formEl) => {
  if (!formEl) return;
  formEl.resetFields();
  formip.value = {
    creater: "",
    createDate: "",
    modifier: "",
    modifyDate: "",
    id: 0,
    iPaddress: "",
    addressname: "",
  };
};
const handlePictureCardPreview = (uploadFile) => {
  dialogImageUrl.value = uploadFile.url;
@@ -1879,6 +2090,19 @@
    trigger: "blur",
  },
});
const ipRules = reactive({
  iPaddress: {
    required: true,
    message: "请输入IP地址",
    trigger: "blur",
  },
  addressname: {
    required: true,
    message: "请输入检修道",
    trigger: "blur",
  },
});
const formRole = ref({
  roleName: "",
  description: "",
@@ -2044,6 +2268,10 @@
  Unittype.value = "新建";
  UnitdialogVisible.value = true;
};
const Addip = () => {
  ipType.value = "新建";
  dialogipVisible.value = true;
};
//获取用户单位
const getUnit = () => {
  const startTime = formatTime(queryForm.value.selectTime[0]);
@@ -2100,6 +2328,8 @@
  } else if (isactive.value == 4) {
    selectoptions.value = unitOptions;
    getUnit();
  } else if ((isactive.value = 5)) {
    getIpData();
  }
};
@@ -2119,6 +2349,10 @@
  ids.value = val.map((item) => item.id);
};
const UnitSelectionChange = (val) => {
  ids.value = [];
  ids.value = val.map((item) => item.id);
};
const IpSelectionChange = (val) => {
  ids.value = [];
  ids.value = val.map((item) => item.id);
};
@@ -2150,6 +2384,11 @@
    DeleteUserUnit(ids.value).then((res) => {
      ElMessage({ message: "删除成功", type: "success" });
      getUnit();
    });
  } else if (isactive.value == 5) {
    DeleteIP(ids.value).then((res) => {
      ElMessage({ message: "删除成功", type: "success" });
      getIpData();
    });
  }
};
@@ -2241,11 +2480,74 @@
      ElMessage.error("数据提交失败");
      onloading.value.close();
      registerdialogVisible.value = false;
      // hideLoading();
    }
  };
  xmlResquest.send(JSON.stringify({ Base64Image: imgbase64.value }));
}
const ipData = ref([]);
const dialogipVisible = ref(false);
const ipType = ref("新建");
const formip = ref({
  creater: "",
  createDate: "",
  modifier: "",
  modifyDate: "",
  id: 0,
  iPaddress: "",
  addressname: "",
});
const formipRef = ref(null);
//获取ip数据
const getIpData = () => {
  // æŸ¥è¯¢æ¡ä»¶
  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: "createDate", value: startTime, displayType: "ThanOrEqual" },
    { name: "createDate", value: endTime, displayType: "LessOrEqual" },
  ];
  GetIPData({
    ...pageQuery.value,
    filter,
  }).then((res) => {
    ipData.value = res.rows;
    pageTotal.value = res.total;
  });
};
const Editip = (val) => {
  ipType.value = "修改";
  let obj = Object.assign({}, val);
  formip.value = obj;
  dialogipVisible.value = true;
};
//保存ip
const saveIp = async (formEl) => {
  if (!formEl) return;
  await formEl.validate((valid, fields) => {
    if (valid) {
      if (ipType.value == "修改") {
        EditIP(formip.value).then((res) => {
          ElMessage({ message: "修改成功", type: "success" });
          dialogipVisible.value = false;
          getIpData();
        });
      } else {
        AddIP(formip.value).then((res) => {
          ElMessage({ message: "添加成功", type: "success" });
          dialogipVisible.value = false;
          getIpData();
        });
      }
    } else {
      console.log("error submit!", fields);
    }
  });
};
onMounted(() => {
  if (window.innerWidth <= 1080) {
@@ -2413,7 +2715,7 @@
      flex-direction: column;
      .checkbox {
        width: 35rem;
        width: 45rem;
        display: flex;
        justify-content: space-between;
        margin-top: 1rem;