xiangpei
2025-06-06 31d78dd4e988cfce8f0a16678f2041849cc0dce3
src/views/codingRuler/index.vue
@@ -1,5 +1,6 @@
<template>
  <div class="app-container">
    <div v-loading="loading">
    <div class="slot">
      <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="75px">
        <el-form-item label="项目码类型" prop="projectCodeType">
@@ -38,181 +39,180 @@
        </div>
      </div>
    </div>
      <el-table
        :data="tableData"
        row-key="id"
        border
        @selection-change="handleSelectionChange">
        <el-table-column
          type="selection"
          width="55">
        </el-table-column>
        <el-table-column
          prop="projectCodeType"
          label="项目码类型"
        >
          <template slot-scope="scope">
            <dict-tag :options="dict.type.coding_type" :value="scope.row.projectCodeType"/>
          </template>
        </el-table-column>
        <el-table-column
          prop="intervalType"
          label="区间类型"
        >
          <template slot-scope="scope">
            <dict-tag :options="dict.type.interval_type" :value="scope.row.intervalType"/>
          </template>
        </el-table-column>
        <el-table-column
          prop="leftSymbol"
          label="左符号"
        >
          <template slot-scope="scope">
            <dict-tag :options="dict.type.sys_coding_operator" :value="scope.row.leftSymbol"/>
          </template>
        </el-table-column>
        <el-table-column
          prop="leftValue"
          label="左值"
        >
        </el-table-column>
        <el-table-column
          prop="rightSymbol"
          label="右符号"
        >
          <template slot-scope="scope">
            <dict-tag :options="dict.type.sys_coding_operator" :value="scope.row.rightSymbol"/>
          </template>
        </el-table-column>
        <el-table-column
          prop="rightValue"
          label="右值"
        >
        </el-table-column>
        <el-table-column
          prop="status"
          label="状态"
        >
          <template slot-scope="scope">
              <el-tag :type="scope.row.status === 0 ? 'info' : 'success'">
                {{scope.row.status === 0 ? "未启用" : "启用"}}
              </el-tag>
          </template>
        </el-table-column>
        <el-table-column
          label="操作"  min-width="100">
          <template slot-scope="scope">
            <el-button v-if="editShow" size="medium" type="text"
                       @click="changeStatus(scope.row)">
              {{scope.row.status === 0 ? "启用" : "停用"}}
            </el-button>
    <el-table
      :data="tableData"
      row-key="id"
      border
      @selection-change="handleSelectionChange">
      <el-table-column
        type="selection"
        width="55">
      </el-table-column>
      <el-table-column
            <el-button v-if="editShow" size="medium" type="text"
                       @click="editCodingRuler(scope.row)"
                       :disabled="scope.row.status === 1"
            >编辑</el-button>
        prop="projectCodeType"
        label="项目码类型"
      >
        <template slot-scope="scope">
          <dict-tag :options="dict.type.coding_type" :value="scope.row.projectCodeType"/>
        </template>
      </el-table-column>
      <el-table-column
        prop="intervalType"
        label="区间类型"
      >
        <template slot-scope="scope">
          <dict-tag :options="dict.type.interval_type" :value="scope.row.intervalType"/>
        </template>
      </el-table-column>
      <el-table-column
        prop="leftSymbol"
        label="左符号"
      >
        <template slot-scope="scope">
          <dict-tag :options="dict.type.sys_coding_operator" :value="scope.row.leftSymbol"/>
        </template>
      </el-table-column>
      <el-table-column
        prop="leftValue"
        label="左值"
      >
      </el-table-column>
      <el-table-column
        prop="rightSymbol"
        label="右符号"
      >
        <template slot-scope="scope">
          <dict-tag :options="dict.type.sys_coding_operator" :value="scope.row.rightSymbol"/>
        </template>
      </el-table-column>
      <el-table-column
        prop="rightValue"
        label="右值"
      >
      </el-table-column>
      <el-table-column
        prop="status"
        label="状态"
      >
        <template slot-scope="scope">
            <el-tag :type="scope.row.status === 0 ? 'info' : 'success'">
              {{scope.row.status === 0 ? "未启用" : "启用"}}
            </el-tag>
        </template>
      </el-table-column>
      <el-table-column
        label="操作"  min-width="100">
        <template slot-scope="scope">
          <el-button v-if="editShow" size="medium" type="text"  @click="changeStatus(scope.row)">
            {{scope.row.status === 0 ? "启用" : "停用"}}
          </el-button>
            <el-button v-if="delShow" size="medium"
                       type="text"
                       @click="deleteCodingRuler(scope.row)"
                       :disabled="scope.row.status === 1"
            >删除</el-button>
          </template>
        </el-table-column>
      </el-table>
      <pagination
        v-show="total>0"
        :total="total"
        :page.sync="queryParams.currentPage"
        :limit.sync="queryParams.pageSize"
        @pagination="getList"
      />
      <el-dialog width="45%" :title="dialogTitle" @close="closeDialog" :visible.sync="open" :show-close="true"  :close-on-click-modal="true"  :destroy-on-close="true">
            <el-form :model="codingRulerForm" :rules="rules" ref="codingRulerForm">
              <el-form-item label="项目码类型" :label-width="formLabelWidth" prop="projectCodeType">
                <el-select v-model="codingRulerForm.projectCodeType" placeholder="项目码类型" @change="changeOption($event)">
                  <el-option
                    v-for="dict in dict.type.coding_type"
                    :key="dict.value"
                    :value="dict.value"
                    :label="dict.label"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="区间类型" :label-width="formLabelWidth" prop="intervalType">
                <el-select v-model="codingRulerForm.intervalType" placeholder="区间类型" @change="changeOption($event)">
                  <el-option
                    v-for="dict in dict.type.interval_type"
                    :key="dict.value"
                    :value="dict.value"
                    :label="dict.label"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-row>
                <el-col :span="12">
                  <el-form-item label="左符号" :label-width="formLabelWidth" prop="leftSymbol" >
                    <el-select v-model="codingRulerForm.leftSymbol" placeholder="选择符号" @change="changeOption($event)">
                      <el-option
                        v-for="dict in leftOption"
                        :key="dict.value"
                        :value="dict.value"
                        :label="dict.label.replace('大于', '>')
                    .replace('小于', '<')
                    .replace('大等于', '>=')
                    .replace('等于', '=')
                    .replace('小于等于', '<=')"
                      >
                      </el-option>
                    </el-select>
          <el-button v-if="editShow" size="medium" type="text" icon="el-icon-edit" @click="editCodingRuler(scope.row)"
                     :disabled="scope.row.status === 1"
          >编辑</el-button>
                  </el-form-item>
                </el-col>
                <el-col :span="12">
                  <el-form-item label="左值" :label-width="formLabelWidth" prop="leftValue">
                    <el-input v-model="codingRulerForm.leftValue" autocomplete="off" type="number" :min="0"></el-input>
                  </el-form-item>
                </el-col>
              </el-row>
            </el-form>
            <el-form :model="singleForm" :rules="rules2" ref="singleForm" v-show="isSingleInterval">
              <el-row>
                <el-col :span="12">
                  <el-form-item label="右符号" :label-width="formLabelWidth" prop="rightSymbol"  >
                    <el-select v-model="singleForm.rightSymbol" placeholder="选择符号" @change="changeOption($event)">
                      <el-option
                        v-for="dict in rightOption"
                        :key="dict.value"
                        :value="dict.value"
                        :label="dict.label.replace('大于', '>')
                    .replace('小于', '<')
                    .replace('大等于', '>=')
                    .replace('等于', '=')
                    .replace('小于等于', '<=')"
                      >
                      </el-option>
                    </el-select>
                  </el-form-item>
                </el-col>
                <el-col :span="12">
                  <el-form-item label="右值" :label-width="formLabelWidth" prop="rightValue">
                    <el-input v-model="singleForm.rightValue" autocomplete="off" type="number" :min="0"></el-input>
                  </el-form-item>
                </el-col>
              </el-row>
          <el-button v-if="delShow" size="medium"
                     type="text"
                     icon="el-icon-delete" @click="deleteCodingRuler(scope.row)"
                     :disabled="scope.row.status === 1"
          >删除</el-button>
        </template>
      </el-table-column>
    </el-table>
            </el-form>
    <pagination
      v-show="total>0"
      :total="total"
      :page.sync="queryParams.currentPage"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    />
        <el-dialog width="45%" :title="dialogTitle" @close="closeDialog" :visible.sync="open" :show-close="true"  :close-on-click-modal="true"  :destroy-on-close="true">
          <el-form :model="codingRulerForm" :rules="rules" ref="codingRulerForm">
            <el-form-item label="项目码类型" :label-width="formLabelWidth" prop="projectCodeType">
              <el-select v-model="codingRulerForm.projectCodeType" placeholder="项目码类型" @change="changeOption($event)">
                <el-option
                  v-for="dict in dict.type.coding_type"
                  :key="dict.value"
                  :value="dict.value"
                  :label="dict.label"
                >
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="区间类型" :label-width="formLabelWidth" prop="intervalType">
              <el-select v-model="codingRulerForm.intervalType" placeholder="区间类型" @change="changeOption($event)">
                <el-option
                  v-for="dict in dict.type.interval_type"
                  :key="dict.value"
                  :value="dict.value"
                  :label="dict.label"
                >
                </el-option>
              </el-select>
            </el-form-item>
            <el-row>
              <el-col :span="12">
                <el-form-item label="左符号" :label-width="formLabelWidth" prop="leftSymbol" >
                  <el-select v-model="codingRulerForm.leftSymbol" placeholder="选择符号" @change="changeOption($event)">
                    <el-option
                      v-for="dict in leftOption"
                      :key="dict.value"
                      :value="dict.value"
                      :label="dict.label.replace('大于', '>')
                  .replace('小于', '<')
                  .replace('大等于', '>=')
                  .replace('等于', '=')
                  .replace('小于等于', '<=')"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="左值" :label-width="formLabelWidth" prop="leftValue">
                  <el-input v-model="codingRulerForm.leftValue" autocomplete="off" type="number" :min="0"></el-input>
                </el-form-item>
              </el-col>
            </el-row>
          </el-form>
          <el-form :model="singleForm" :rules="rules2" ref="singleForm" v-show="isSingleInterval">
            <el-row>
              <el-col :span="12">
                <el-form-item label="右符号" :label-width="formLabelWidth" prop="rightSymbol"  >
                  <el-select v-model="singleForm.rightSymbol" placeholder="选择符号" @change="changeOption($event)">
                    <el-option
                      v-for="dict in rightOption"
                      :key="dict.value"
                      :value="dict.value"
                      :label="dict.label.replace('大于', '>')
                  .replace('小于', '<')
                  .replace('大等于', '>=')
                  .replace('等于', '=')
                  .replace('小于等于', '<=')"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="右值" :label-width="formLabelWidth" prop="rightValue">
                  <el-input v-model="singleForm.rightValue" autocomplete="off" type="number" :min="0"></el-input>
                </el-form-item>
              </el-col>
            </el-row>
          </el-form>
          <div slot="footer" class="dialog-footer">
            <el-button @click="closeDialog">取 消</el-button>
            <el-button type="primary" @click="addOrEditCodingRuler">确 定</el-button>
          </div>
        </el-dialog>
            <div slot="footer" class="dialog-footer">
              <el-button @click="closeDialog">取 消</el-button>
              <el-button type="primary" @click="addOrEditCodingRuler">确 定</el-button>
            </div>
          </el-dialog>
    </div>
  </div>
</template>
@@ -279,10 +279,7 @@
      open: false,
      // 选中数组
      ids: [],
      // //左符号
      // leftOption:[],
      // //右符号
      // rightOption:[],
      loading:false,
    }
  },
  computed:{
@@ -330,9 +327,11 @@
    },
    // 获取表格数据
    getList(){
      this.loading = true;
      getCodingRulers(this.queryParams).then(res =>{
        this.tableData = res.data;
        this.total = res.total;
        this.loading = false;
      })
    },