luobisheng
2022-11-29 4641a877cd6a94e4d35dca7f7f14bc1443e2d2ad
src/views/operate/writManager/writ/index.vue
@@ -3,30 +3,21 @@
    <header>
      <div class="header-content">
        <div class="search">
          <span style="padding-right: 20px">筛选条件:</span>
          <el-select
            v-model="context"
            placeholder="筛选条件"
            @change="handleStateChange"
          >
            <el-option
              v-for="item in options"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
          <span>筛选条件:</span>
          <el-input placeholder="请输入内容" v-model="context"></el-input>
          <div class="findBtn">
            <el-button type="primary" @click="setTableData">查询</el-button>
          </div>
        </div>
      </div>
    </header>
    <main>
      <div class="main-content">
        <div class="main-title">
        <!-- <div class="main-title">
          <el-button class="el-icon-plus" type="primary" @click="handleAdd"
            >添加</el-button
          >
        </div>
        </div> -->
        <!-- 数据展示 -->
        <el-table
          ref="multipleTable"
@@ -42,33 +33,56 @@
          style="width: 100%"
        >
          <el-table-column type="selection" min-width="5"> </el-table-column>
          <el-table-column prop="name" label="单兵名称" min-width="10">
          <el-table-column prop="writCode" label="文书编号" min-width="100">
          </el-table-column>
          <el-table-column prop="code" label="单兵编号" min-width="10">
          <el-table-column prop="writTypeName" label="文书种类" min-width="180">
          </el-table-column>
          <el-table-column prop="user" label="使用人员" min-width="10">
          <el-table-column prop="categoryName" label="违法类型" min-width="300">
          </el-table-column>
          <el-table-column prop="phone" label="联系方式" min-width="10">
          <el-table-column prop="eventCode" label="事件编号" width="160">
          </el-table-column>
          <el-table-column prop="pdepartName" label="所属部门" min-width="10">
          <el-table-column prop="sendTime" label="文书发放时间" min-width="120">
          </el-table-column>
          <el-table-column prop="departName" label="所属大队" min-width="10">
          <el-table-column prop="limitTime" label="文书限定时间" min-width="120">
          </el-table-column>
          <el-table-column
            prop="sendContent"
            label="文书发放内容"
            min-width="110"
          >
          </el-table-column>
          <el-table-column
            prop="rectifyTime"
            label="实际整改时间"
            min-width="120"
          >
          </el-table-column>
          <el-table-column
            prop="rectifySituation"
            label="整改情况"
            min-width="110"
          >
          </el-table-column>
          <el-table-column
            prop="state"
            :formatter="formatSate"
            label="状态"
            min-width="5"
            width="60"
          >
          </el-table-column>
          <el-table-column prop="operation" label="操作" min-width="20">
          <el-table-column prop="operation" label="操作" min-width="150">
            <template slot-scope="scope">
              <div class="operation">
                <span @click="handleEdit(scope.row)">编辑</span>
                <span v-if="!scope.row.value" @click="handleEdit(scope.row)"
                  >下发文书</span
                >
                <span v-if="scope.row.value" @click="handleView(scope.row)"
                  >查看</span
                >
                <span class="line">|</span>
                <span @click="handleDelete(scope.row)">删除</span>
                <span @click="handleDelete(scope.row)">删除文书</span>
              </div>
            </template>
          </el-table-column>
@@ -94,15 +108,19 @@
      </div>
    </main>
    <footer>
      <!-- 添加音柱 -->
      <!-- 下发文书 -->
      <el-dialog
        title="添加音柱"
        title="下发文书"
        :visible.sync="dialogCreate"
        v-if="dialogCreate"
        width="60%"
        width="80%"
        :before-close="handleClose"
      >
        <MyForm :info="handheldTerminal" @closeDialog="handleCallBack"></MyForm>
        <component
          :is="componentName"
          :writ="writ"
          @closeDialog="handleCallBack"
        ></component>
      </el-dialog>
    </footer>
  </div>
@@ -111,13 +129,13 @@
import { createNamespacedHelpers } from "vuex";
const { mapActions } = createNamespacedHelpers("writ");
import InquestRecord from "../components/inquest_record/view.vue";
import Notification from "../components/instruct_notification/view.vue";
import InquestRecordEdit from "../components/inquest_record/edit.vue";
import NotificationEdit from "../components/instruct_notification/edit.vue";
export default {
  components: {
    InquestRecord,
    Notification,
    InquestRecordEdit,
    NotificationEdit,
  },
  data() {
    return {
@@ -142,33 +160,39 @@
      pageSize: 10,
      currentPage: 1,
      renderFlag: false,
      handheldTerminal: {},
      writ: {},
      componentName: "",
    };
  },
  created() {
    this.setTableData();
  },
  methods: {
    ...mapActions(["getHandheldTerminalList", "deleteHandheldTerminal"]),
    handleAdd() {
      this.handheldTerminal = {
        id: 0,
        name: "",
        code: "",
        user: "",
        phone: "",
        departId: 0,
        departName: "",
      };
    ...mapActions(["getWritList", "updateWrit", "deleteWrit"]),
    handleEdit(row) {
      this.writ = row;
      this.setComponent(row);
      this.dialogCreate = true;
    },
    handleEdit(row) {
      this.handheldTerminal = row;
    handleView(row) {
      this.writ = row;
      this.setComponent(row);
      this.dialogCreate = true;
    },
    setComponent(row, isEdit) {
      switch (row.templateCode) {
        case "inquest_record":
          this.componentName = InquestRecordEdit;
          break;
        case "instruct_to_correct_notification":
          this.componentName = NotificationEdit;
          break;
      }
    },
    handleDelete(row) {
      this.$confirm("确认删除?").then((_) => {
        this.deleteHandheldTerminal(row.id).then((res) => {
        this.deleteWrit(row.id).then((res) => {
          this.$message({
            type: "success",
            message: "删除成功!",
@@ -184,7 +208,7 @@
      this.setTableData();
    },
    formatSate(row, column) {
      return row.state == 1 ? "在线" : "离线";
      return row.value ? "已下发" : "未下发";
    },
    // 设置表格斑马纹
@@ -206,10 +230,10 @@
    // 设置tableData
    setTableData() {
      const { currentPage, pageSize, context } = this;
      this.getHandheldTerminalList({
      this.getWritList({
        currentPage,
        pageSize,
        state: context,
        keyword: context,
      }).then((res) => {
        this.list = res.records;
        this.totalNum = res.total;
@@ -379,5 +403,49 @@
      }
    }
  }
  // 设置dialog样式
  ::v-deep .el-dialog__body {
    background-color: #fff;
    color: #000;
  }
  ::v-deep .el-dialog__header {
    background-color: #06122c !important;
    color: #fff;
  }
}
.headerContent {
  padding: 0 40px;
  display: flex;
  line-height: 100px;
  justify-content: space-between;
  align-items: center;
  .search {
    display: flex;
    justify-content: flex-start;
    span {
      flex: 1;
    }
    .el-input {
      flex: 2;
      color: #1d3f57;
    }
  }
}
.findBtn {
  line-height: 100px;
  margin-left: 15px;
  display: flex;
  align-items: center;
  margin-top: -2px;
  .el-button {
    padding: 12px 25px;
    border-radius: 20px;
  }
}
</style>