唐耀东
2022-05-12 2546d2a6251176b0214c2d23ac93ccde5dd008f5
提交代码
10个文件已修改
264 ■■■■ 已修改文件
src/api/oa/ipc.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/components/building/index.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/components/constructionBatch/index.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/components/manufacturer/index.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/components/nvr/index.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/components/nvr/list.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/components/organization/index.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/construction/ipc/index.vue 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/construction/nvr/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vue.config.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/oa/ipc.js
@@ -42,3 +42,10 @@
    method: 'delete'
  })
}
// 复制上一条ipc
export function getCopyIpc() {
  return request({
    url: '/oa/ipc/copy',
    method: 'get'
  })
}
src/views/components/building/index.vue
@@ -44,6 +44,17 @@
      name: ''
    }
  },
  watch: {
    'value': function (v) {
      if (v) {
        getBuilding(v).then(response => {
          this.name = response.data.name;
        });
      }else {
        this.name = '';
      }
    }
  },
  created() {
    if (this.value) {
      getBuilding(this.value).then(response => {
src/views/components/constructionBatch/index.vue
@@ -42,6 +42,17 @@
      name: ''
    }
  },
  watch: {
    'value': function (v) {
      if (v) {
        getConstructionBatch(v).then(response => {
          this.name = response.data.batch;
        });
      }else {
        this.name = '';
      }
    }
  },
  created() {
    if (this.value) {
      getConstructionBatch(this.value).then(response => {
src/views/components/manufacturer/index.vue
@@ -40,6 +40,17 @@
      name: ''
    }
  },
  watch: {
    'value': function (v) {
      if (v) {
        getManufacturer(v).then(response => {
          this.name = response.data.name;
        });
      }else {
        this.name = '';
      }
    }
  },
  created() {
    if (this.value) {
      getManufacturer(this.value).then(response => {
src/views/components/nvr/index.vue
@@ -45,6 +45,17 @@
      name: ''
    }
  },
  watch: {
    'value': function (v) {
      if (v) {
        getNvr(v).then(response => {
          this.name = response.data.deploymentName;
        });
      }else {
        this.name = '';
      }
    }
  },
  created() {
    if (this.value) {
      getNvr(this.value).then(response => {
src/views/components/nvr/list.vue
@@ -25,15 +25,15 @@
        </template>
      </el-table-column>
      <el-table-column label="部署名称" align="center" prop="deploymentName"/>
      <el-table-column label="通道(路)" align="center" prop="passageway"/>
      <el-table-column label="通道(路)" align="center" prop="passageway_dictText"/>
      <el-table-column label="LAN1" align="center" prop="lanOne"/>
      <el-table-column label="IP" align="center" prop="ipOne"/>
      <el-table-column label="LAN2" align="center" prop="lanTwo"/>
      <el-table-column label="IP" align="center" prop="ipTwo"/>
      <el-table-column label="登录账户" align="center" prop="loginAccount"/>
      <el-table-column label="硬盘" align="center" prop="hardDisk"/>
      <el-table-column label="安装位置" align="center" prop="buildingId"/>
      <el-table-column label="所属单位" align="center" prop="organizationId"/>
      <el-table-column label="安装位置" align="center" prop="buildingId_dictText"/>
      <el-table-column label="所属单位" align="center" prop="organizationId_dictText"/>
      <!--      <el-table-column label="施工批次" align="center" prop="constructionBatchId" />-->
      <!--      <el-table-column label="序列号" align="center" prop="serialNumber" />-->
      <!--      <el-table-column label="型号" align="center" prop="model" />-->
src/views/components/organization/index.vue
@@ -44,6 +44,17 @@
      name: ''
    }
  },
  watch: {
    'value': function (v) {
      if (v) {
        getOrganization(v).then(response => {
          this.name = response.data.name;
        });
      }else {
        this.name = '';
      }
    }
  },
  created() {
    if (this.value) {
      getOrganization(this.value).then(response => {
src/views/construction/ipc/index.vue
@@ -15,9 +15,9 @@
      </el-form-item>
      <el-form-item label="型号" prop="model">
        <el-input
          v-model="queryParams.model"
          placeholder="请输入型号"
          @keyup.enter.native="handleQuery"
            v-model="queryParams.model"
            placeholder="请输入型号"
            @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item>
@@ -29,98 +29,104 @@
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-plus"
          size="mini"
          @click="handleAdd"
          v-hasPermi="['oa:ipc:add']"
        >新增</el-button>
            type="primary"
            plain
            icon="el-icon-plus"
            size="mini"
            @click="handleAdd"
            v-hasPermi="['oa:ipc:add']"
        >新增
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="success"
          plain
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="handleUpdate"
          v-hasPermi="['oa:ipc:edit']"
        >修改</el-button>
            type="success"
            plain
            icon="el-icon-edit"
            size="mini"
            :disabled="single"
            @click="handleUpdate"
            v-hasPermi="['oa:ipc:edit']"
        >修改
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="danger"
          plain
          icon="el-icon-delete"
          size="mini"
          :disabled="multiple"
          @click="handleDelete"
          v-hasPermi="['oa:ipc:remove']"
        >删除</el-button>
            type="danger"
            plain
            icon="el-icon-delete"
            size="mini"
            :disabled="multiple"
            @click="handleDelete"
            v-hasPermi="['oa:ipc:remove']"
        >删除
        </el-button>
      </el-col>
    </el-row>
    <el-table v-loading="loading" :data="ipcList" @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column type="selection" width="55" align="center"/>
      <el-table-column label="序号" align="center" width="50">
        <template slot-scope="scope">
          <span>{{ scope.$index + (queryParams.pageNum - 1) * queryParams.pageSize + 1 }} </span>
        </template>
      </el-table-column>
      <el-table-column label="MAC" align="center" prop="mac" />
      <el-table-column label="IP" align="center" prop="ip" />
      <el-table-column label="端口" align="center" prop="port" />
      <el-table-column label="登录账户" align="center" prop="loginAccount" />
      <el-table-column label="NVR" align="center" prop="nvrId_dictText" />
      <el-table-column label="通道" align="center" prop="passageway_dictText" />
      <el-table-column label="安装位置" align="center" prop="buildingId_dictText" />
      <el-table-column label="所属单位" align="center" prop="organizationId_dictText" />
      <el-table-column label="施工批次" align="center" prop="constructionBatchId_dictText" />
<!--      <el-table-column label="序列号" align="center" prop="serialNumber" />-->
<!--      <el-table-column label="型号" align="center" prop="model" />-->
<!--      <el-table-column label="生产厂商" align="center" prop="manufacturerId_dictText" />-->
      <el-table-column label="MAC" align="center" prop="mac"/>
      <el-table-column label="IP" align="center" prop="ip"/>
      <el-table-column label="端口" align="center" prop="port"/>
      <el-table-column label="登录账户" align="center" prop="loginAccount"/>
      <el-table-column label="NVR" align="center" prop="nvrId_dictText"/>
      <el-table-column label="通道" align="center" prop="passageway_dictText"/>
      <el-table-column label="安装位置" align="center" prop="buildingId_dictText"/>
      <el-table-column label="所属单位" align="center" prop="organizationId_dictText"/>
      <el-table-column label="施工批次" align="center" prop="constructionBatchId_dictText"/>
      <!--      <el-table-column label="序列号" align="center" prop="serialNumber" />-->
      <!--      <el-table-column label="型号" align="center" prop="model" />-->
      <!--      <el-table-column label="生产厂商" align="center" prop="manufacturerId_dictText" />-->
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="handleUpdate(scope.row)"
            v-hasPermi="['oa:ipc:edit']"
          >修改</el-button>
              size="mini"
              type="text"
              icon="el-icon-edit"
              @click="handleUpdate(scope.row)"
              v-hasPermi="['oa:ipc:edit']"
          >修改
          </el-button>
          <el-button
            size="mini"
            type="text"
            class="del-btn"
            icon="el-icon-delete"
            @click="handleDelete(scope.row)"
            v-hasPermi="['oa:ipc:remove']"
          >删除</el-button>
              size="mini"
              type="text"
              class="del-btn"
              icon="el-icon-delete"
              @click="handleDelete(scope.row)"
              v-hasPermi="['oa:ipc:remove']"
          >删除
          </el-button>
        </template>
      </el-table-column>
    </el-table>
    <pagination
      v-show="total>0"
      :total="total"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
        v-show="total>0"
        :total="total"
        :page.sync="queryParams.pageNum"
        :limit.sync="queryParams.pageSize"
        @pagination="getList"
    />
    <!-- 添加或修改ipc设备对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="700px" :append-to-body="true" :close-on-click-modal="false" :destroy-on-close="true">
    <el-dialog :title="title" :visible.sync="open" width="700px" :append-to-body="true" :close-on-click-modal="false"
               :destroy-on-close="true">
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-row>
          <el-col :span="9">
            <el-form-item label="MAC" prop="mac">
              <el-input v-model="form.mac" placeholder="请输入MAC" />
              <el-input v-model="form.mac" placeholder="请输入MAC"/>
            </el-form-item>
          </el-col>
          <el-col :span="9">
            <el-form-item label="IP" prop="ip">
              <el-input v-model="form.ip" placeholder="请输入IP" />
              <el-input v-model="form.ip" placeholder="请输入IP"/>
            </el-form-item>
          </el-col>
          <el-col :span="6">
@@ -135,7 +141,7 @@
        <el-row>
          <el-col :span="12">
            <el-form-item label="nvr" prop="nvrId">
              <nvr v-if="open" v-model="form.nvrId"  :schoolId="schoolId"></nvr>
              <nvr v-if="open" v-model="form.nvrId" :schoolId="schoolId"></nvr>
            </el-form-item>
          </el-col>
          <el-col :span="12">
@@ -177,6 +183,7 @@
        </el-row>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button :loading="buttonLoading" type="primary" @click="copy">复制上一条信息</el-button>
        <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
        <el-button @click="cancel">取 消</el-button>
      </div>
@@ -185,7 +192,7 @@
</template>
<script>
import { listIpc, getIpc, delIpc, addIpc, updateIpc } from "@/api/oa/ipc";
import {listIpc, getIpc, delIpc, addIpc, updateIpc, getCopyIpc} from "@/api/oa/ipc";
import building from "../../components/building";
import organization from "../../components/organization";
import constructionBatch from "../../components/constructionBatch";
@@ -245,10 +252,10 @@
      // 表单校验
      rules: {
        id: [
          { required: true, message: "不能为空", trigger: "blur" }
          {required: true, message: "不能为空", trigger: "blur"}
        ],
        mac: [
          { required: true, message: "mac不能为空", trigger: "blur" },
          {required: true, message: "mac不能为空", trigger: "blur"},
          {
            pattern: /^[A-F0-9]{2}(-[A-F0-9]{2}){5}$|^[A-F0-9]{2}(:[A-F0-9]{2}){5}$|^[A-F0-9]{12}$|^[A-F0-9]{4}(\.[A-F0-9]{4}){2}$/,
            message: "请输入正确的MAC",
@@ -256,7 +263,7 @@
          }
        ],
        ip: [
          { required: true, message: "IP不能为空", trigger: "blur" },
          {required: true, message: "IP不能为空", trigger: "blur"},
          {
            pattern: /^(\d|[1-9]\d|1\d{2}|2[0-5][0-5])\.(\d|[1-9]\d|1\d{2}|2[0-5][0-5])\.(\d|[1-9]\d|1\d{2}|2[0-5][0-5])\.(\d|[1-9]\d|1\d{2}|2[0-5][0-5])$/,
            message: "请输入正确的ip地址",
@@ -264,26 +271,39 @@
          }
        ],
        port: [
          { required: true, message: "端口不能为空", trigger: "blur" }
          {required: true, message: "端口不能为空", trigger: "blur"}
        ],
        loginAccount: [
          { required: true, message: "登录账户不能为空", trigger: "blur" }
          {required: true, message: "登录账户不能为空", trigger: "blur"}
        ],
        buildingId: [
          { required: true, message: "安装位置不能为空", trigger: "blur" }
          {required: true, message: "安装位置不能为空", trigger: "blur"}
        ],
        organizationId: [
          { required: true, message: "所属单位不能为空", trigger: "blur" }
          {required: true, message: "所属单位不能为空", trigger: "blur"}
        ],
        constructionBatchId: [
          { required: true, message: "施工批次不能为空", trigger: "blur" }
          {required: true, message: "施工批次不能为空", trigger: "blur"}
        ],
        passageway: []
      }
    };
  },
  computed: {
    getNvrId() {
      return this.form.nvrId
    }
  },
  watch: {
    'schoolId': function () {
      this.getList()
    },
    getNvrId: function (v) {
      if (v) {
        this.rules.passageway = [{required: true, message: "通道不能为空", trigger: "blur"}]
      } else {
        this.rules.passageway = []
      }
    }
  },
  created() {
@@ -341,7 +361,7 @@
    // 多选框选中数据
    handleSelectionChange(selection) {
      this.ids = selection.map(item => item.id)
      this.single = selection.length!==1
      this.single = selection.length !== 1
      this.multiple = !selection.length
    },
    /** 新增按钮操作 */
@@ -388,6 +408,33 @@
        }
      });
    },
    copy() {
      this.buttonLoading = true;
      getCopyIpc().then(res => {
        const obj = res.data;
        // 编辑
        if (this.form.id) {
          obj.id = this.form.id;
        }
        // 新增
        else {
          obj.id = undefined;
        }
        this.form = this.shallowCopy(obj);
        this.$modal.msgSuccess("修改成功");
      }).finally(() => {
        this.buttonLoading = false;
      });
    },
    shallowCopy(src) {
      var dst = {};
      for (var prop in src) {
        if (src.hasOwnProperty(prop)) {
          dst[prop] = src[prop];
        }
      }
      return dst;
    },
    /** 删除按钮操作 */
    handleDelete(row) {
      const ids = row.id || this.ids;
src/views/construction/nvr/index.vue
@@ -81,15 +81,15 @@
        </template>
      </el-table-column>
      <el-table-column label="部署名称" align="center" prop="deploymentName"/>
      <el-table-column label="通道(路)" align="center" prop="passageway"/>
      <el-table-column label="通道(路)" align="center" prop="passageway_dictText"/>
      <el-table-column label="LAN1" align="center" prop="lanOne"/>
      <el-table-column label="IP" align="center" prop="ipOne"/>
      <el-table-column label="LAN2" align="center" prop="lanTwo"/>
      <el-table-column label="IP" align="center" prop="ipTwo"/>
      <el-table-column label="登录账户" align="center" prop="loginAccount"/>
      <el-table-column label="硬盘" align="center" prop="hardDisk"/>
      <el-table-column label="安装位置" align="center" prop="buildingId"/>
      <el-table-column label="所属单位" align="center" prop="organizationId"/>
      <el-table-column label="安装位置" align="center" prop="buildingId_dictText"/>
      <el-table-column label="所属单位" align="center" prop="organizationId_dictText"/>
      <!--      <el-table-column label="施工批次" align="center" prop="constructionBatchId" />-->
      <!--      <el-table-column label="序列号" align="center" prop="serialNumber" />-->
      <!--      <el-table-column label="型号" align="center" prop="model" />-->
vue.config.js
@@ -33,6 +33,7 @@
    proxy: {
      // detail: https://cli.vuejs.org/config/#devserver-proxy
      [process.env.VUE_APP_BASE_API]: {
        // target: `http://101.35.174.42:8082`,
        target: `http://localhost:8080`,
        changeOrigin: true,
        pathRewrite: {