Browse Source

后台UI修改

xiaoshushu 3 years ago
parent
commit
3918582263

+ 3 - 2
smart-system/src/main/resources/mapper/management/ContentMapper.xml

@@ -32,17 +32,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </sql>
 
     <sql id="selectListContentVo">
-        select content_id, service_info, title, author, show_pictures, brief_content,create_time, create_at, audit_flag, audit_at, audit_time, audit_msg, release_flag, release_time, release_at, end_audit_at, end_audit_time, end_audit_msg,browse_num from t_content
+        select content_id, service_info, title, author, show_pictures,create_time, create_at, audit_flag, audit_at, audit_time, audit_msg, release_flag, release_time, release_at, end_audit_at, end_audit_time, end_audit_msg,browse_num from t_content
     </sql>
 
     <select id="selectContentList" parameterType="Content" resultMap="ContentResult">
         <include refid="selectListContentVo"/>
         <where>
+            <if test="title != null  and title != ''">and title like concat('%', #{title}, '%')</if>
+            <if test="serviceInfo != null  and serviceInfo != ''"> and service_info = #{serviceInfo}</if>
             <if test="serviceInfo != null  and serviceInfo != ''"> and service_info = #{serviceInfo}</if>
             <if test="auditFlag != null  and auditFlag != ''"> and audit_flag = #{auditFlag}</if>
             <if test="releaseFlag != null  and releaseFlag != ''"> and release_flag = #{releaseFlag}</if>
         </where>
-        order by audit_flag,release_flag desc ,release_time desc
     </select>
 
     <select id="selectContentByContentId" parameterType="Long" resultMap="ContentResult">

+ 1 - 1
smart-ui-pc/css/style.css

@@ -34,7 +34,7 @@ body {
 	float: left;
 	background-image: url(../img/u11.svg);
 	background-size: 100% 100%;
-	min-height: 350px;
+	height: 385px;
 	margin: 25px 10px 0px 25px;
 	padding: 20px;
 	overflow: hidden;

BIN
smart-ui-pc/img/6月24日防火监督岗位大练兵每日一考(消防站人员)成绩.xlsx


+ 201 - 427
smart-ui/src/views/management/content/index.vue

@@ -1,437 +1,184 @@
 <template>
   <div class="app-container">
-    <el-form
-      :model="queryParams"
-      ref="queryForm"
-      :inline="true"
-      v-show="showSearch"
-      label-width="68px"
-    >
-      <!-- <el-form-item label="信息类型" prop="serviceInfo">
-        <el-select
-          v-model="queryParams.serviceInfo"
-          placeholder="请选择信息类型"
-          clearable
-          size="small"
-        >
-          <el-option
-            v-for="dict in serviceInfoOptions"
-            :key="dict.dictValue"
-            :label="dict.dictLabel"
-            :value="dict.dictValue"
-          />
-        </el-select>
-      </el-form-item> -->
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="72px">
+      <el-form-item label="标题" prop="title"><el-input v-model="queryParams.title" placeholder="请输入标题" clearable @keyup.enter.native="search" /></el-form-item>
       <el-form-item label="审核状态" prop="auditFlag">
-        <el-select
-          v-model="queryParams.auditFlag"
-          placeholder="请选择审核状态"
-          clearable
-          size="small"
-        >
-          <el-option
-            v-for="dict in auditFlagOptions"
-            :key="dict.dictValue"
-            :label="dict.dictLabel"
-            :value="dict.dictValue"
-          />
+        <el-select v-model="queryParams.auditFlag" placeholder="请选择审核状态" clearable>
+          <el-option v-for="dict in auditFlagOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
         </el-select>
       </el-form-item>
       <el-form-item label="发布标志" prop="releaseFlag">
-        <el-select
-          v-model="queryParams.releaseFlag"
-          placeholder="请选择发布标志"
-          clearable
-          size="small"
-        >
-          <el-option
-            v-for="dict in releaseFlagOptions"
-            :key="dict.dictValue"
-            :label="dict.dictLabel"
-            :value="dict.dictValue"
-          />
+        <el-select v-model="queryParams.releaseFlag" placeholder="请选择发布标志" clearable>
+          <el-option v-for="dict in releaseFlagOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
         </el-select>
       </el-form-item>
       <el-form-item>
-        <el-button
-          type="primary"
-          icon="el-icon-search"
-          size="mini"
-          @click="handleQuery"
-          >搜索</el-button
-        >
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
-          >重置</el-button
-        >
+        <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
       </el-form-item>
     </el-form>
 
     <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5"><el-button type="primary" icon="el-icon-plus" @click="handleAdd" v-hasPermi="['management:content:add']">新增</el-button></el-col>
+      <el-col :span="1.5"><el-button type="success" icon="el-icon-edit" :disabled="single" @click="handleUpdate" v-hasPermi="['management:content:edit']">修改</el-button></el-col>
+      <el-col :span="1.5"><el-button type="info" icon="el-icon-s-platform" :disabled="single" @click="handleView">查看</el-button></el-col>
       <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['management:content: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="['management:content: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="['management:content:remove']"
-          >删除</el-button
-        >
+        <el-button type="danger" icon="el-icon-delete" :disabled="multiple" @click="handleDelete" v-hasPermi="['management:content:remove']">删除</el-button>
       </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          :loading="exportLoading"
-          @click="handleExport"
-          v-hasPermi="['management:content:export']"
-          >导出</el-button
-        >
-      </el-col>
-      <right-toolbar
-        :showSearch.sync="showSearch"
-        @queryTable="getList"
-      ></right-toolbar>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
-    <el-table
-      v-loading="loading"
-      :data="contentList"
-      @selection-change="handleSelectionChange"
-    >
+    <el-table v-loading="loading" border :data="contentList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <!-- <el-table-column label="内容管理id" align="center" prop="contentId" /> -->
-      <el-table-column
-        label="信息类型"
-        align="center"
-        prop="serviceInfo"
-         width="80"
-        :formatter="serviceInfoFormat"
-      />
-      <el-table-column label="标题" align="center" prop="title"/>
-      <el-table-column label="作者" align="center" prop="author"  width="80"/>
-      <el-table-column label="展示图片" align="center" prop="showPictures"  width="80">
-          <template slot-scope="scope">
-          <img
-            v-if="scope.row.showPictures"
-            :src="baseUrl + scope.row.showPictures"
-            style="width: 30px; height: 30px"
-          />
-          <span v-else>-</span>
+      <el-table-column label="封面" align="center" prop="showPictures" width="140" v-if="serviceInfo == 2 || serviceInfo == 3">
+        <template slot-scope="scope">
+          <el-image class="lsw_square" :fit="'contain'" :src="baseUrl + scope.row.showPictures" :preview-src-list="[baseUrl + scope.row.showPictures]"></el-image>
         </template>
       </el-table-column>
-      <el-table-column
-        label="审核状态"
-        align="center"
-        prop="auditFlag"
-         width="80"
-        :formatter="auditFlagFormat"
-      />
-      <!-- <el-table-column label="初审人" align="center" prop="auditAt" /> -->
-      <el-table-column
-        label="初审时间"
-        align="center"
-        prop="auditTime"
-        width="180"
-      >
+      <el-table-column label="标题" align="left" prop="title" />
+      <el-table-column label="作者" align="center" prop="author" width="190" />
+      <el-table-column label="审核状态" align="center" prop="auditFlag" width="110">
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.auditTime, "{y}-{m}-{d}") }}</span>
+          <el-tag type="danger" effect="dark" v-if="scope.row.auditFlag == 0">未审核</el-tag>
+          <el-tag effect="dark" v-if="scope.row.auditFlag == 1">初审</el-tag>
+          <el-tag type="success" effect="dark" v-if="scope.row.auditFlag == 2">终审</el-tag>
+          <el-tag type="danger" effect="dark" v-if="scope.row.auditFlag == 3">不通过</el-tag>
         </template>
       </el-table-column>
-      <el-table-column
-        label="终审时间"
-        align="center"
-        prop="endAuditTime"
-        width="180"
-      >
+      <el-table-column label="初审时间" align="center" prop="auditTime" width="180">
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.endAuditTime, "{y}-{m}-{d}") }}</span>
+          <span>{{ parseTime(scope.row.auditTime, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <!-- <el-table-column label="初审核信息" align="center" prop="auditMsg" /> -->
-      <!-- <el-table-column label="终审人" align="center" prop="endAuditAt" /> -->
-      <el-table-column
-        label="发布标志"
-        align="center"
-        prop="releaseFlag"
-         width="80"
-        :formatter="releaseFlagFormat"
-      />
-      <el-table-column
-        label="点击量"
-        align="center"
-        prop="browseNum"
-        width="80"
-      />
-      <!-- <el-table-column label="发布人" align="center" prop="releaseAt" /> -->
-      <!-- <el-table-column label="发布人" align="center" prop="releaseAt" /> -->
-      <!-- <el-table-column label="终核信息" align="center" prop="endAuditMsg" /> -->
-      <el-table-column
-        label="操作"
-        align="center"
-        class-name="small-padding fixed-width"
-         width="180"
-      >
+      <el-table-column label="终审时间" align="center" prop="endAuditTime" width="180">
         <template slot-scope="scope">
-          <el-button
-            v-if="scope.row.auditFlag == '0'"
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleAudit(scope.row, 1)"
-            v-hasPermi="['management:content:audit']"
-            >初审</el-button
-          >
-          <el-button
-            v-if="scope.row.auditFlag == '1'"
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleAudit(scope.row, 2)"
-            v-hasPermi="['management:content:endAudit']"
-            >终审</el-button
-          >
+          <span>{{ parseTime(scope.row.endAuditTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="发布标志" align="center" prop="releaseFlag" width="100">
+        <template slot-scope="scope">
+          <el-tag type="danger" effect="dark" v-if="scope.row.releaseFlag == 0">未发布</el-tag>
+          <el-tag effect="dark" v-if="scope.row.releaseFlag == 1">已发布</el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column label="点击量" align="center" prop="browseNum" width="80" v-if="serviceInfo == 2 || serviceInfo == 3" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="240">
+        <template slot-scope="scope">
+          <el-button v-if="scope.row.auditFlag == '0'||scope.row.auditFlag == '3'" type="text" icon="el-icon-edit" @click="handleAudit(scope.row, 1)" v-hasPermi="['management:content:audit']">初审</el-button>
+          <el-button v-if="scope.row.auditFlag == '1'" type="text" icon="el-icon-edit" @click="handleAudit(scope.row, 2)" v-hasPermi="['management:content:endAudit']">
+            终审
+          </el-button>
           <el-button
             v-if="scope.row.auditFlag == '2' && scope.row.releaseFlag == '0'"
-            size="mini"
             type="text"
             icon="el-icon-edit"
             @click="handleAudit(scope.row, 2)"
             v-hasPermi="['management:content:endAudit']"
-            >取消终审</el-button
           >
+            取消终审
+          </el-button>
           <el-button
             v-if="scope.row.auditFlag == '2' && scope.row.releaseFlag == '0'"
-            size="mini"
             type="text"
             icon="el-icon-position"
             @click="handleSend(scope.row, 1)"
             v-hasPermi="['management:content:release']"
-            >发布</el-button
           >
+            发布
+          </el-button>
           <el-button
             v-if="scope.row.auditFlag == '2' && scope.row.releaseFlag == '1'"
-            size="mini"
             type="text"
             icon="el-icon-position"
             @click="handleSend(scope.row, 0)"
             v-hasPermi="['management:content:release']"
-            >取消发布</el-button
-          >
-          <el-button
-            v-if="scope.row.auditFlag == '0'"
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['management:content:edit']"
-            >修改</el-button
           >
+            取消发布
+          </el-button>
           <el-button
-            v-if="scope.row.auditFlag == '1' || scope.row.auditFlag == '2'"
-            size="mini"
+            v-if="scope.row.auditFlag == 0"
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
-            v-hasPermi="[
-              'management:content:audit',
-              'management:content:endAudit',
-            ]"
-            >修改</el-button
-          >
-          <el-button
-            v-if="scope.row.auditFlag == '0'"
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['management:content:remove']"
-            >删除</el-button
+            v-hasPermi="['management:content:audit', 'management:content:endAudit']"
           >
+            修改
+          </el-button>
+          <el-button v-if="scope.row.auditFlag == '0'" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['management:content: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"
-    />
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
 
     <!-- 添加或修改内容管理对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="80%" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="75%" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="信息类型" prop="serviceInfo">
           <el-select v-model="form.serviceInfo" disabled placeholder="请选择信息类型">
-            <el-option
-              v-for="dict in serviceInfoOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
+            <el-option v-for="dict in serviceInfoOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="标题" prop="title">
-          <el-input v-model="form.title" placeholder="请输入标题" />
-        </el-form-item>
-        <el-form-item label="作者" prop="author">
-          <el-input v-model="form.author" placeholder="请输入作者" />
-        </el-form-item>
-        <el-form-item label="点击量" prop="browseNum">
-          <el-input-number v-model="form.browseNum" :min="0" :step="10" placeholder="请输入点击量" />
-        </el-form-item>
-        <el-form-item label="展示图片">
-          <imageUpload v-model="form.showPictures" />
-        </el-form-item>
-        <el-form-item label="简介">
-          <editor v-model="form.briefContent" :min-height="192" />
-        </el-form-item>
-        <el-form-item label="详情">
-          <editor v-model="form.content" :min-height="192" />
+        <el-form-item label="标题" prop="title"><el-input v-model="form.title" placeholder="请输入标题" /></el-form-item>
+        <el-form-item label="作者" prop="author"><el-input v-model="form.author" placeholder="请输入作者" /></el-form-item>
+        <el-form-item label="点击量" prop="browseNum" v-if="serviceInfo == 2 || serviceInfo == 3">
+          <el-input-number v-model="form.browseNum" :min="1" :step="10" placeholder="请输入点击量" />
         </el-form-item>
+        <el-form-item label="展示图片" v-if="serviceInfo == 2 || serviceInfo == 3"><imageUpload v-model="form.showPictures" /></el-form-item>
+        <el-form-item label="详情" prop="content"><editor v-model="form.content" :min-height="200" /></el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer" class="dialog-footer" v-if="form.auditFlag == null || form.auditFlag == 0">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
     <!-- 审核 -->
-    <el-dialog
-      :title="auditTitle"
-      :visible.sync="auditOpen"
-      width="50%"
-      append-to-body
-    >
+    <el-dialog :title="auditTitle" :visible.sync="auditOpen" :close-on-click-modal="false" width="50%" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="信息类型" prop="serviceInfo">
-          <el-select
-            v-model="form.serviceInfo"
-            disabled
-            placeholder="请选择信息类型"
-          >
-            <el-option
-              v-for="dict in serviceInfoOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
+          <el-select v-model="form.serviceInfo" disabled placeholder="请选择信息类型">
+            <el-option v-for="dict in serviceInfoOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="标题" prop="title">
-          <el-input v-model="form.title" disabled placeholder="请输入标题" />
-        </el-form-item>
-        <el-form-item label="作者" prop="author">
-          <el-input v-model="form.author" disabled placeholder="请输入作者" />
-        </el-form-item>
+        <el-form-item label="标题" prop="title"><el-input v-model="form.title" disabled placeholder="请输入标题" /></el-form-item>
+        <el-form-item label="作者" prop="author"><el-input v-model="form.author" disabled placeholder="请输入作者" /></el-form-item>
         <el-form-item label="审核状态" prop="auditFlag">
-          <!-- <el-input v-model="form.auditFlag" placeholder="请输入作者" /> -->
           <el-radio-group v-model="form.auditFlag" disabled>
-            <el-radio
-              v-for="dict in auditFlagOptions"
-              :key="dict.dictValue"
-              :label="dict.dictValue"
-              >{{ dict.dictLabel }}</el-radio
-            >
+            <el-radio v-for="dict in auditFlagOptions" :key="dict.dictValue" :label="dict.dictValue">{{ dict.dictLabel }}</el-radio>
           </el-radio-group>
         </el-form-item>
         <template v-if="flag == 1">
-          <el-form-item label="初审信息" prop="auditMsg">
-            <el-input v-model="form.auditMsg" placeholder="初审信息" />
-          </el-form-item>
-          <el-form-item label="初审时间" prop="auditTime">
-            <el-input
-              v-model="form.auditTime"
-              disabled
-              placeholder="初审时间"
-            />
-          </el-form-item>
+          <el-form-item label="初审信息" prop="auditMsg"><el-input v-model="form.auditMsg" placeholder="初审信息" /></el-form-item>
+          <el-form-item label="初审时间" prop="auditTime"><el-input v-model="form.auditTime" disabled placeholder="初审时间" /></el-form-item>
         </template>
         <template v-if="flag == 2">
-          <el-form-item label="终审信息" prop="endAuditMsg">
-            <el-input v-model="form.endAuditMsg" placeholder="终审信息" />
-          </el-form-item>
-          <el-form-item label="终审时间" prop="endAuditTime">
-            <el-input
-              v-model="form.endAuditTime"
-              disabled
-              placeholder="终审时间"
-            />
-          </el-form-item>
+          <el-form-item label="终审信息" prop="endAuditMsg"><el-input v-model="form.endAuditMsg" placeholder="终审信息" /></el-form-item>
+          <el-form-item label="终审时间" prop="endAuditTime"><el-input v-model="form.endAuditTime" disabled placeholder="终审时间" /></el-form-item>
         </template>
         <template v-if="flag == 3">
           <el-form-item label="发布状态" prop="releaseFlag">
             <!-- <el-input v-model="form.auditMsg" placeholder="发布状态" /> -->
             <el-radio-group v-model="form.releaseFlag" disabled>
-              <el-radio
-                v-for="dict in releaseFlagOptions"
-                :key="dict.dictValue"
-                :label="dict.dictValue"
-                >{{ dict.dictLabel }}</el-radio
-              >
+              <el-radio v-for="dict in releaseFlagOptions" :key="dict.dictValue" :label="dict.dictValue">{{ dict.dictLabel }}</el-radio>
             </el-radio-group>
           </el-form-item>
-          <el-form-item label="发布时间" prop="releaseTime">
-            <el-input v-model="form.releaseTime" placeholder="发布时间" />
-          </el-form-item>
+          <el-form-item label="发布时间" prop="releaseTime"><el-input v-model="form.releaseTime" placeholder="发布时间" /></el-form-item>
         </template>
-        <!-- <el-form-item label="展示图片">
-          <imageUpload v-model="form.showPictures"/>
-        </el-form-item> -->
       </el-form>
       <div slot="footer" class="dialog-footer">
         <template v-if="flag == 1">
           <el-button type="primary" @click="updateAudit(1)">初审通过</el-button>
-          <!-- <el-button type="warning" @click="updateAudit(0)"
-            >初审不通过</el-button
-          > -->
+          <el-button type="danger" @click="updateAudit(3)">初审不通过</el-button>
         </template>
         <template v-if="flag == 2">
           <el-button type="primary" @click="updateAudit(2)">终审通过</el-button>
-          <el-button type="warning" @click="updateAudit(0)"
-            >终审不通过</el-button
-          >
+          <el-button type="danger" @click="updateAudit(3)">终审不通过</el-button>
         </template>
         <template v-if="flag == 3">
-          <el-button
-            v-if="form.releaseFlag == 0"
-            type="primary"
-            @click="updateRelease(1)"
-            >发布</el-button
-          >
-          <el-button
-            v-if="form.releaseFlag == 1"
-            type="warning"
-            @click="updateRelease(0)"
-            >取消发布</el-button
-          >
+          <el-button v-if="form.releaseFlag == 0" type="primary" @click="updateRelease(1)">发布</el-button>
+          <el-button v-if="form.releaseFlag == 1" type="warning" @click="updateRelease(0)">取消发布</el-button>
         </template>
         <el-button @click="cancel">取 消</el-button>
       </div>
@@ -440,11 +187,11 @@
 </template>
 
 <script>
-import { listContent, getContent, delContent, addContent, updateContent, exportContent, auditContent, endAuditContent, releaseContent } from "@/api/management/content";
+import { listContent, getContent, delContent, addContent, updateContent, exportContent, auditContent, endAuditContent, releaseContent } from '@/api/management/content';
 
 export default {
-  name: "Content",
-  data () {
+  name: 'Content',
+  data() {
     return {
       // 遮罩层
       loading: true,
@@ -463,11 +210,11 @@ export default {
       // 内容管理表格数据
       contentList: [],
       // 弹出层标题
-      title: "",
+      title: '',
       // 是否显示弹出层
       open: false,
       //默认信息类型
-      serviceInfo:0,
+      serviceInfo: 0,
       // 信息类型字典
       serviceInfoOptions: [],
       // 审核状态字典
@@ -476,41 +223,48 @@ export default {
       releaseFlagOptions: [],
       // 查询参数
       queryParams: {
+        title: null,
         pageNum: 1,
         pageSize: 10,
         serviceInfo: null,
         auditFlag: null,
         releaseFlag: null,
+        orderByColumn: 'createTime', //排序字段
+        isAsc: 'desc' //排序方式
       },
       flag: 0,
       // 表单参数
       form: {},
       // 表单校验
       rules: {
+        title: [{ required: true, message: '标题不能为空' }, { min: 2, max: 30, message: '用户名称长度必须介于 2 和 30 之间' }],
+        author: [{ required: true, message: '作者不能为空' }],
+        browseNum: [{ required: true, message: '点击量不能为空' }],
+        content: [{ required: true, message: '详情不能为空' }]
       },
       auditTitle: '',
       auditOpen: false,
-      baseUrl: process.env.VUE_APP_BASE_API,
+      baseUrl: process.env.VUE_APP_BASE_API
     };
   },
-  created () {
-    var query=this.$route.query;
+  created() {
+    var query = this.$route.query;
     this.queryParams.serviceInfo = query.serviceInfo;
     this.serviceInfo = query.serviceInfo;
     this.getList();
-    this.getDicts("service_info").then(response => {
+    this.getDicts('service_info').then(response => {
       this.serviceInfoOptions = response.data;
     });
-    this.getDicts("more_audit_flag").then(response => {
+    this.getDicts('more_audit_flag').then(response => {
       this.auditFlagOptions = response.data;
     });
-    this.getDicts("release_flag").then(response => {
+    this.getDicts('release_flag').then(response => {
       this.releaseFlagOptions = response.data;
     });
   },
   methods: {
     /** 查询内容管理列表 */
-    getList () {
+    getList() {
       this.loading = true;
       listContent(this.queryParams).then(response => {
         this.contentList = response.rows;
@@ -519,26 +273,26 @@ export default {
       });
     },
     // 信息类型字典翻译
-    serviceInfoFormat (row, column) {
+    serviceInfoFormat(row, column) {
       return this.selectDictLabel(this.serviceInfoOptions, row.serviceInfo);
     },
     // 审核状态字典翻译
-    auditFlagFormat (row, column) {
+    auditFlagFormat(row, column) {
       return this.selectDictLabel(this.auditFlagOptions, row.auditFlag);
     },
     // 发布标志字典翻译
-    releaseFlagFormat (row, column) {
+    releaseFlagFormat(row, column) {
       return this.selectDictLabel(this.releaseFlagOptions, row.releaseFlag);
     },
     // 取消按钮
-    cancel () {
+    cancel() {
       this.open = false;
       this.auditOpen = false;
       this.flag = 0;
       this.reset();
     },
     // 表单重置
-    reset () {
+    reset() {
       this.form = {
         contentId: null,
         serviceInfo: this.serviceInfo,
@@ -553,62 +307,76 @@ export default {
         auditAt: null,
         auditTime: null,
         auditMsg: null,
-        releaseFlag: "0",
+        releaseFlag: '0',
         releaseTime: null,
         releaseAt: null,
         endAuditAt: null,
         endAuditTime: null,
         endAuditMsg: null
       };
-      this.resetForm("form");
+      this.resetForm('form');
     },
     /** 搜索按钮操作 */
-    handleQuery () {
+    handleQuery() {
       this.queryParams.pageNum = 1;
       this.queryParams.serviceInfo = this.serviceInfo;
       this.getList();
     },
     /** 重置按钮操作 */
-    resetQuery () {
-      this.resetForm("queryForm");
-    
+    resetQuery() {
+      this.resetForm('queryForm');
+
       this.handleQuery();
     },
     // 多选框选中数据
-    handleSelectionChange (selection) {
-      this.ids = selection.map(item => item.contentId)
-      this.single = selection.length !== 1
-      this.multiple = !selection.length
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.contentId);
+      this.single = selection.length !== 1;
+      this.multiple = !selection.length;
     },
     /** 新增按钮操作 */
-    handleAdd () {
+    handleAdd() {
       this.reset();
       this.open = true;
-      this.title = "添加内容管理";
+      this.title = '添加内容管理';
     },
-    /** 修改按钮操作 */
-    handleUpdate (row) {
+    /**仅查看内容*/
+    handleView(row) {
       this.reset();
-      const contentId = row.contentId || this.ids
+      const contentId = row.contentId || this.ids;
       getContent(contentId).then(response => {
         this.form = response.data;
         this.open = true;
-        this.title = "修改内容管理";
+        this.title = '查看内容';
+      });
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const contentId = row.contentId || this.ids;
+      getContent(contentId).then(response => {
+        this.form = response.data;
+        if (this.form.auditFlag == 0) {
+          this.open = true;
+          this.title = '修改内容管理';
+        } else {
+          this.$notify.error({ title: '操作驳回', message: '当前内容禁止修改,如需修改请先取消发布和审核' });
+        }
       });
     },
     /** 提交按钮 */
-    submitForm () {
-      this.$refs["form"].validate(valid => {
+    submitForm() {
+      this.$refs['form'].validate(valid => {
         if (valid) {
           if (this.form.contentId != null) {
             updateContent(this.form).then(response => {
-              this.msgSuccess("修改成功");
+              this.msgSuccess('修改成功');
               this.open = false;
               this.getList();
             });
           } else {
             addContent(this.form).then(response => {
-              this.msgSuccess("新增成功");
+              this.msgSuccess('新增成功');
               this.open = false;
               this.getList();
             });
@@ -617,118 +385,124 @@ export default {
       });
     },
     /** 删除按钮操作 */
-    handleDelete (row) {
+    handleDelete(row) {
       const contentIds = row.contentId || this.ids;
-      this.$confirm('是否确认删除内容管理编号为"' + contentIds + '"的数据项?', "警告", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning"
-      }).then(function () {
-        return delContent(contentIds);
-      }).then(() => {
-        this.getList();
-        this.msgSuccess("删除成功");
-      }).catch(() => { });
+      this.$confirm('是否确认删除内容管理编号为"' + contentIds + '"的数据项?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(function() {
+          return delContent(contentIds);
+        })
+        .then(() => {
+          this.getList();
+          this.msgSuccess('删除成功');
+        })
+        .catch(() => {});
     },
     /** 导出按钮操作 */
-    handleExport () {
+    handleExport() {
       const queryParams = this.queryParams;
-      this.$confirm('是否确认导出所有内容管理数据项?', "警告", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning"
-      }).then(() => {
-        this.exportLoading = true;
-        return exportContent(queryParams);
-      }).then(response => {
-        this.download(response.msg);
-        this.exportLoading = false;
-      }).catch(() => { });
+      this.$confirm('是否确认导出所有内容管理数据项?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(() => {
+          this.exportLoading = true;
+          return exportContent(queryParams);
+        })
+        .then(response => {
+          this.download(response.msg);
+          this.exportLoading = false;
+        })
+        .catch(() => {});
     },
-    handleAudit (row, type) {
+    handleAudit(row, type) {
       this.flag = type;
       this.reset();
-      const contentId = row.contentId || this.ids
+      const contentId = row.contentId || this.ids;
       getContent(contentId).then(response => {
         this.form = response.data;
         this.auditOpen = true;
         if (type == 1) {
-          this.auditTitle = "内容初审";
+          this.auditTitle = '内容初审';
         } else {
-          this.auditTitle = "内容终审";
+          this.auditTitle = '内容终审';
         }
-
       });
     },
-    handleSend (row, type) {
+    handleSend(row, type) {
       this.flag = 3;
       this.reset();
-      const contentId = row.contentId || this.ids
+      const contentId = row.contentId || this.ids;
       getContent(contentId).then(response => {
         this.form = response.data;
         this.auditOpen = true;
         if (type == 1) {
-          this.auditTitle = "内容发布";
+          this.auditTitle = '内容发布';
         } else {
-          this.auditTitle = "内容取消发布";
+          this.auditTitle = '内容取消发布';
         }
-
       });
     },
-    updateAudit (type) {
+    updateAudit(type) {
       this.form.auditFlag = type;
-
-      this.$refs["form"].validate(valid => {
+      this.$refs['form'].validate(valid => {
         if (valid) {
           if (this.form.contentId != null) {
-
             if (type == 1) {
               auditContent(this.form).then(response => {
-                this.msgSuccess("初审成功");
+                this.msgSuccess('初审成功');
                 this.auditOpen = false;
                 this.getList();
               });
             } else if (type == 2) {
-
               endAuditContent(this.form).then(response => {
-                this.msgSuccess("终审成功");
+                this.msgSuccess('终审成功');
                 this.auditOpen = false;
                 this.getList();
               });
-            }else{
-                auditContent(this.form).then(response => {
-                this.msgSuccess("取消成功");
+            } else {
+              auditContent(this.form).then(response => {
+                this.msgSuccess('取消成功');
                 this.auditOpen = false;
                 this.getList();
               });
             }
           }
-      }
+        }
       });
-  },
-  updateRelease(type){
+    },
+    updateRelease(type) {
       this.form.releaseFlag = type;
-      this.$refs["form"].validate(valid => {
+      this.$refs['form'].validate(valid => {
         if (valid) {
           if (this.form.contentId != null) {
-
             if (type == 1) {
               releaseContent(this.form).then(response => {
-                this.msgSuccess("发布成功");
+                this.msgSuccess('发布成功');
                 this.auditOpen = false;
                 this.getList();
               });
-            } else{
-                releaseContent(this.form).then(response => {
-                this.msgSuccess("取消成功");
+            } else {
+              releaseContent(this.form).then(response => {
+                this.msgSuccess('取消成功');
                 this.auditOpen = false;
                 this.getList();
               });
             }
           }
-      }
+        }
       });
+    }
   }
-}
 };
-</script>
+</script>
+<style lang="scss">
+.lsw_square {
+  border-radius: 5px;
+  width: 70%;
+}
+</style>

+ 80 - 168
smart-ui/src/views/system/dict/data.vue

@@ -3,31 +3,15 @@
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
       <el-form-item label="字典名称" prop="dictType">
         <el-select v-model="queryParams.dictType" size="small">
-          <el-option
-            v-for="item in typeOptions"
-            :key="item.dictId"
-            :label="item.dictName"
-            :value="item.dictType"
-          />
+          <el-option v-for="item in typeOptions" :key="item.dictId" :label="item.dictName" :value="item.dictType" />
         </el-select>
       </el-form-item>
       <el-form-item label="字典标签" prop="dictLabel">
-        <el-input
-          v-model="queryParams.dictLabel"
-          placeholder="请输入字典标签"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+        <el-input v-model="queryParams.dictLabel" placeholder="请输入字典标签" clearable size="small" @keyup.enter.native="handleQuery" />
       </el-form-item>
       <el-form-item label="状态" prop="status">
         <el-select v-model="queryParams.status" placeholder="数据状态" clearable size="small">
-          <el-option
-            v-for="dict in statusOptions"
-            :key="dict.dictValue"
-            :label="dict.dictLabel"
-            :value="dict.dictValue"
-          />
+          <el-option v-for="dict in statusOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
         </el-select>
       </el-form-item>
       <el-form-item>
@@ -37,48 +21,15 @@
     </el-form>
 
     <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="['system:dict:add']">新增</el-button></el-col>
       <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['system:dict:add']"
-        >新增</el-button>
+        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" v-hasPermi="['system:dict:edit']">修改</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="['system:dict:edit']"
-        >修改</el-button>
+        <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" v-hasPermi="['system:dict:remove']">删除</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="['system:dict:remove']"
-        >删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          :loading="exportLoading"
-          @click="handleExport"
-          v-hasPermi="['system:dict:export']"
-        >导出</el-button>
+        <el-button type="warning" plain icon="el-icon-download" size="mini" :loading="exportLoading" @click="handleExport" v-hasPermi="['system:dict:export']">导出</el-button>
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
@@ -88,15 +39,15 @@
       <el-table-column label="字典编码" align="center" prop="dictCode" />
       <el-table-column label="字典标签" align="center" prop="dictLabel">
         <template slot-scope="scope">
-          <span v-if="scope.row.listClass == '' || scope.row.listClass == 'default'">{{scope.row.dictLabel}}</span>
-          <el-tag v-else :type="scope.row.listClass == 'primary' ? '' : scope.row.listClass">{{scope.row.dictLabel}}</el-tag>
+          <span v-if="scope.row.listClass == '' || scope.row.listClass == 'default'">{{ scope.row.dictLabel }}</span>
+          <el-tag v-else :type="scope.row.listClass == 'primary' ? '' : scope.row.listClass">{{ scope.row.dictLabel }}</el-tag>
         </template>
       </el-table-column>
       <el-table-column label="字典键值" align="center" prop="dictValue" />
       <el-table-column label="字典排序" align="center" prop="dictSort" />
       <el-table-column label="状态" align="center" prop="status">
         <template slot-scope="scope">
-          <dict-tag :options="statusOptions" :value="scope.row.status"/>
+          <dict-tag :options="statusOptions" :value="scope.row.status" />
         </template>
       </el-table-column>
       <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
@@ -107,72 +58,31 @@
       </el-table-column>
       <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="['system:dict:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['system:dict:remove']"
-          >删除</el-button>
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:dict:edit']">修改</el-button>
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['system:dict: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"
-    />
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
 
     <!-- 添加或修改参数配置对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="字典类型">
-          <el-input v-model="form.dictType" :disabled="true" />
-        </el-form-item>
-        <el-form-item label="数据标签" prop="dictLabel">
-          <el-input v-model="form.dictLabel" placeholder="请输入数据标签" />
-        </el-form-item>
-        <el-form-item label="数据键值" prop="dictValue">
-          <el-input v-model="form.dictValue" placeholder="请输入数据键值" />
-        </el-form-item>
-        <el-form-item label="样式属性" prop="cssClass">
-          <el-input v-model="form.cssClass" placeholder="请输入样式属性" />
-        </el-form-item>
-        <el-form-item label="显示排序" prop="dictSort">
-          <el-input-number v-model="form.dictSort" controls-position="right" :min="0" />
-        </el-form-item>
+        <el-form-item label="字典类型"><el-input v-model="form.dictType" :disabled="true" /></el-form-item>
+        <el-form-item label="数据标签" prop="dictLabel"><el-input v-model="form.dictLabel" placeholder="请输入数据标签" /></el-form-item>
+        <el-form-item label="数据键值" prop="dictValue"><el-input v-model="form.dictValue" placeholder="请输入数据键值" /></el-form-item>
+        <el-form-item label="样式属性" prop="cssClass"><el-input v-model="form.cssClass" placeholder="请输入样式属性" /></el-form-item>
+        <el-form-item label="显示排序" prop="dictSort"><el-input-number v-model="form.dictSort" controls-position="right" :min="0" /></el-form-item>
         <el-form-item label="回显样式" prop="listClass">
-          <el-select v-model="form.listClass">
-            <el-option
-              v-for="item in listClassOptions"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            ></el-option>
-          </el-select>
+          <el-select v-model="form.listClass"><el-option v-for="item in listClassOptions" :key="item.value" :label="item.label" :value="item.value"></el-option></el-select>
         </el-form-item>
         <el-form-item label="状态" prop="status">
           <el-radio-group v-model="form.status">
-            <el-radio
-              v-for="dict in statusOptions"
-              :key="dict.dictValue"
-              :label="dict.dictValue"
-            >{{dict.dictLabel}}</el-radio>
+            <el-radio v-for="dict in statusOptions" :key="dict.dictValue" :label="dict.dictValue">{{ dict.dictLabel }}</el-radio>
           </el-radio-group>
         </el-form-item>
-        <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
-        </el-form-item>
+        <el-form-item label="备注" prop="remark"><el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input></el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -183,11 +93,11 @@
 </template>
 
 <script>
-import { listData, getData, delData, addData, updateData, exportData } from "@/api/system/dict/data";
-import { listType, getType } from "@/api/system/dict/type";
+import { listData, getData, delData, addData, updateData, exportData } from '@/api/system/dict/data';
+import { listType, getType } from '@/api/system/dict/type';
 
 export default {
-  name: "Data",
+  name: 'Data',
   data() {
     return {
       // 遮罩层
@@ -207,36 +117,36 @@ export default {
       // 字典表格数据
       dataList: [],
       // 默认字典类型
-      defaultDictType: "",
+      defaultDictType: '',
       // 弹出层标题
-      title: "",
+      title: '',
       // 是否显示弹出层
       open: false,
       // 数据标签回显样式
       listClassOptions: [
         {
-          value: "default",
-          label: "默认"
+          value: 'default',
+          label: '默认'
         },
         {
-          value: "primary",
-          label: "主要"
+          value: 'primary',
+          label: '主要'
         },
         {
-          value: "success",
-          label: "成功"
+          value: 'success',
+          label: '成功'
         },
         {
-          value: "info",
-          label: "信息"
+          value: 'info',
+          label: '信息'
         },
         {
-          value: "warning",
-          label: "警告"
+          value: 'warning',
+          label: '警告'
         },
         {
-          value: "danger",
-          label: "危险"
+          value: 'danger',
+          label: '危险'
         }
       ],
       // 状态数据字典
@@ -249,21 +159,17 @@ export default {
         pageSize: 10,
         dictName: undefined,
         dictType: undefined,
-        status: undefined
+        status: undefined,
+        orderByColumn: 'createTime', //排序字段
+        isAsc: 'desc' //排序方式
       },
       // 表单参数
       form: {},
       // 表单校验
       rules: {
-        dictLabel: [
-          { required: true, message: "数据标签不能为空", trigger: "blur" }
-        ],
-        dictValue: [
-          { required: true, message: "数据键值不能为空", trigger: "blur" }
-        ],
-        dictSort: [
-          { required: true, message: "数据顺序不能为空", trigger: "blur" }
-        ]
+        dictLabel: [{ required: true, message: '数据标签不能为空', trigger: 'blur' }],
+        dictValue: [{ required: true, message: '数据键值不能为空', trigger: 'blur' }],
+        dictSort: [{ required: true, message: '数据顺序不能为空', trigger: 'blur' }]
       }
     };
   },
@@ -271,7 +177,7 @@ export default {
     const dictId = this.$route.params && this.$route.params.dictId;
     this.getType(dictId);
     this.getTypeList();
-    this.getDicts("sys_normal_disable").then(response => {
+    this.getDicts('sys_normal_disable').then(response => {
       this.statusOptions = response.data;
     });
   },
@@ -313,10 +219,10 @@ export default {
         cssClass: undefined,
         listClass: 'default',
         dictSort: 0,
-        status: "0",
+        status: '0',
         remark: undefined
       };
-      this.resetForm("form");
+      this.resetForm('form');
     },
     /** 搜索按钮操作 */
     handleQuery() {
@@ -325,7 +231,7 @@ export default {
     },
     /** 重置按钮操作 */
     resetQuery() {
-      this.resetForm("queryForm");
+      this.resetForm('queryForm');
       this.queryParams.dictType = this.defaultDictType;
       this.handleQuery();
     },
@@ -333,38 +239,38 @@ export default {
     handleAdd() {
       this.reset();
       this.open = true;
-      this.title = "添加字典数据";
+      this.title = '添加字典数据';
       this.form.dictType = this.queryParams.dictType;
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.dictCode)
-      this.single = selection.length!=1
-      this.multiple = !selection.length
+      this.ids = selection.map(item => item.dictCode);
+      this.single = selection.length != 1;
+      this.multiple = !selection.length;
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
-      const dictCode = row.dictCode || this.ids
+      const dictCode = row.dictCode || this.ids;
       getData(dictCode).then(response => {
         this.form = response.data;
         this.open = true;
-        this.title = "修改字典数据";
+        this.title = '修改字典数据';
       });
     },
     /** 提交按钮 */
     submitForm: function() {
-      this.$refs["form"].validate(valid => {
+      this.$refs['form'].validate(valid => {
         if (valid) {
           if (this.form.dictCode != undefined) {
             updateData(this.form).then(response => {
-              this.msgSuccess("修改成功");
+              this.msgSuccess('修改成功');
               this.open = false;
               this.getList();
             });
           } else {
             addData(this.form).then(response => {
-              this.msgSuccess("新增成功");
+              this.msgSuccess('新增成功');
               this.open = false;
               this.getList();
             });
@@ -375,32 +281,38 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const dictCodes = row.dictCode || this.ids;
-      this.$confirm('是否确认删除字典编码为"' + dictCodes + '"的数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
+      this.$confirm('是否确认删除字典编码为"' + dictCodes + '"的数据项?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(function() {
           return delData(dictCodes);
-        }).then(() => {
+        })
+        .then(() => {
           this.getList();
-          this.msgSuccess("删除成功");
-        }).catch(() => {});
+          this.msgSuccess('删除成功');
+        })
+        .catch(() => {});
     },
     /** 导出按钮操作 */
     handleExport() {
       const queryParams = this.queryParams;
-      this.$confirm('是否确认导出所有数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(() => {
+      this.$confirm('是否确认导出所有数据项?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(() => {
           this.exportLoading = true;
           return exportData(queryParams);
-        }).then(response => {
+        })
+        .then(response => {
           this.download(response.msg);
           this.exportLoading = false;
-        }).catch(() => {});
+        })
+        .catch(() => {});
     }
   }
 };
-</script>
+</script>

+ 66 - 156
smart-ui/src/views/system/dict/index.vue

@@ -2,39 +2,14 @@
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
       <el-form-item label="字典名称" prop="dictName">
-        <el-input
-          v-model="queryParams.dictName"
-          placeholder="请输入字典名称"
-          clearable
-          size="small"
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"
-        />
+        <el-input v-model="queryParams.dictName" placeholder="请输入字典名称" clearable size="small" style="width: 240px" @keyup.enter.native="handleQuery" />
       </el-form-item>
       <el-form-item label="字典类型" prop="dictType">
-        <el-input
-          v-model="queryParams.dictType"
-          placeholder="请输入字典类型"
-          clearable
-          size="small"
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"
-        />
+        <el-input v-model="queryParams.dictType" placeholder="请输入字典类型" clearable size="small" style="width: 240px" @keyup.enter.native="handleQuery" />
       </el-form-item>
       <el-form-item label="状态" prop="status">
-        <el-select
-          v-model="queryParams.status"
-          placeholder="字典状态"
-          clearable
-          size="small"
-          style="width: 240px"
-        >
-          <el-option
-            v-for="dict in statusOptions"
-            :key="dict.dictValue"
-            :label="dict.dictLabel"
-            :value="dict.dictValue"
-          />
+        <el-select v-model="queryParams.status" placeholder="字典状态" clearable size="small" style="width: 240px">
+          <el-option v-for="dict in statusOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
         </el-select>
       </el-form-item>
       <el-form-item label="创建时间">
@@ -56,58 +31,18 @@
     </el-form>
 
     <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="['system:dict:add']">新增</el-button></el-col>
       <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['system:dict:add']"
-        >新增</el-button>
+        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" v-hasPermi="['system:dict:edit']">修改</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="['system:dict:edit']"
-        >修改</el-button>
+        <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" v-hasPermi="['system:dict:remove']">删除</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="['system:dict:remove']"
-        >删除</el-button>
+        <el-button type="warning" plain icon="el-icon-download" size="mini" :loading="exportLoading" @click="handleExport" v-hasPermi="['system:dict:export']">导出</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          :loading="exportLoading"
-          @click="handleExport"
-          v-hasPermi="['system:dict:export']"
-        >导出</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-refresh"
-          size="mini"
-          @click="handleRefreshCache"
-          v-hasPermi="['system:dict:remove']"
-        >刷新缓存</el-button>
+        <el-button type="danger" plain icon="el-icon-refresh" size="mini" @click="handleRefreshCache" v-hasPermi="['system:dict:remove']">刷新缓存</el-button>
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
@@ -125,7 +60,7 @@
       </el-table-column>
       <el-table-column label="状态" align="center" prop="status">
         <template slot-scope="scope">
-          <dict-tag :options="statusOptions" :value="scope.row.status"/>
+          <dict-tag :options="statusOptions" :value="scope.row.status" />
         </template>
       </el-table-column>
       <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
@@ -136,53 +71,25 @@
       </el-table-column>
       <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="['system:dict:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['system:dict:remove']"
-          >删除</el-button>
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:dict:edit']">修改</el-button>
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['system:dict: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"
-    />
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
 
     <!-- 添加或修改参数配置对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="字典名称" prop="dictName">
-          <el-input v-model="form.dictName" placeholder="请输入字典名称" />
-        </el-form-item>
-        <el-form-item label="字典类型" prop="dictType">
-          <el-input v-model="form.dictType" placeholder="请输入字典类型" />
-        </el-form-item>
+        <el-form-item label="字典名称" prop="dictName"><el-input v-model="form.dictName" placeholder="请输入字典名称" /></el-form-item>
+        <el-form-item label="字典类型" prop="dictType"><el-input v-model="form.dictType" placeholder="请输入字典类型" /></el-form-item>
         <el-form-item label="状态" prop="status">
           <el-radio-group v-model="form.status">
-            <el-radio
-              v-for="dict in statusOptions"
-              :key="dict.dictValue"
-              :label="dict.dictValue"
-            >{{dict.dictLabel}}</el-radio>
+            <el-radio v-for="dict in statusOptions" :key="dict.dictValue" :label="dict.dictValue">{{ dict.dictLabel }}</el-radio>
           </el-radio-group>
         </el-form-item>
-        <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
-        </el-form-item>
+        <el-form-item label="备注" prop="remark"><el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input></el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -193,10 +100,10 @@
 </template>
 
 <script>
-import { listType, getType, delType, addType, updateType, exportType, refreshCache } from "@/api/system/dict/type";
+import { listType, getType, delType, addType, updateType, exportType, refreshCache } from '@/api/system/dict/type';
 
 export default {
-  name: "Dict",
+  name: 'Dict',
   data() {
     return {
       // 遮罩层
@@ -216,7 +123,7 @@ export default {
       // 字典表格数据
       typeList: [],
       // 弹出层标题
-      title: "",
+      title: '',
       // 是否显示弹出层
       open: false,
       // 状态数据字典
@@ -229,24 +136,22 @@ export default {
         pageSize: 10,
         dictName: undefined,
         dictType: undefined,
-        status: undefined
+        status: undefined,
+        orderByColumn: 'createTime', //排序字段
+        isAsc: 'desc' //排序方式
       },
       // 表单参数
       form: {},
       // 表单校验
       rules: {
-        dictName: [
-          { required: true, message: "字典名称不能为空", trigger: "blur" }
-        ],
-        dictType: [
-          { required: true, message: "字典类型不能为空", trigger: "blur" }
-        ]
+        dictName: [{ required: true, message: '字典名称不能为空', trigger: 'blur' }],
+        dictType: [{ required: true, message: '字典类型不能为空', trigger: 'blur' }]
       }
     };
   },
   created() {
     this.getList();
-    this.getDicts("sys_normal_disable").then(response => {
+    this.getDicts('sys_normal_disable').then(response => {
       this.statusOptions = response.data;
     });
   },
@@ -255,11 +160,10 @@ export default {
     getList() {
       this.loading = true;
       listType(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
-          this.typeList = response.rows;
-          this.total = response.total;
-          this.loading = false;
-        }
-      );
+        this.typeList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
     },
     // 取消按钮
     cancel() {
@@ -272,10 +176,10 @@ export default {
         dictId: undefined,
         dictName: undefined,
         dictType: undefined,
-        status: "0",
+        status: '0',
         remark: undefined
       };
-      this.resetForm("form");
+      this.resetForm('form');
     },
     /** 搜索按钮操作 */
     handleQuery() {
@@ -285,44 +189,44 @@ export default {
     /** 重置按钮操作 */
     resetQuery() {
       this.dateRange = [];
-      this.resetForm("queryForm");
+      this.resetForm('queryForm');
       this.handleQuery();
     },
     /** 新增按钮操作 */
     handleAdd() {
       this.reset();
       this.open = true;
-      this.title = "添加字典类型";
+      this.title = '添加字典类型';
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.dictId)
-      this.single = selection.length!=1
-      this.multiple = !selection.length
+      this.ids = selection.map(item => item.dictId);
+      this.single = selection.length != 1;
+      this.multiple = !selection.length;
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
-      const dictId = row.dictId || this.ids
+      const dictId = row.dictId || this.ids;
       getType(dictId).then(response => {
         this.form = response.data;
         this.open = true;
-        this.title = "修改字典类型";
+        this.title = '修改字典类型';
       });
     },
     /** 提交按钮 */
     submitForm: function() {
-      this.$refs["form"].validate(valid => {
+      this.$refs['form'].validate(valid => {
         if (valid) {
           if (this.form.dictId != undefined) {
             updateType(this.form).then(response => {
-              this.msgSuccess("修改成功");
+              this.msgSuccess('修改成功');
               this.open = false;
               this.getList();
             });
           } else {
             addType(this.form).then(response => {
-              this.msgSuccess("新增成功");
+              this.msgSuccess('新增成功');
               this.open = false;
               this.getList();
             });
@@ -333,38 +237,44 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const dictIds = row.dictId || this.ids;
-      this.$confirm('是否确认删除字典编号为"' + dictIds + '"的数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
+      this.$confirm('是否确认删除字典编号为"' + dictIds + '"的数据项?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(function() {
           return delType(dictIds);
-        }).then(() => {
+        })
+        .then(() => {
           this.getList();
-          this.msgSuccess("删除成功");
-        }).catch(() => {});
+          this.msgSuccess('删除成功');
+        })
+        .catch(() => {});
     },
     /** 导出按钮操作 */
     handleExport() {
       const queryParams = this.queryParams;
-      this.$confirm('是否确认导出所有类型数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(() => {
+      this.$confirm('是否确认导出所有类型数据项?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(() => {
           this.exportLoading = true;
           return exportType(queryParams);
-        }).then(response => {
+        })
+        .then(response => {
           this.download(response.msg);
           this.exportLoading = false;
-        }).catch(() => {});
+        })
+        .catch(() => {});
     },
     /** 刷新缓存按钮操作 */
     handleRefreshCache() {
       refreshCache().then(() => {
-        this.msgSuccess("刷新成功");
+        this.msgSuccess('刷新成功');
       });
     }
   }
 };
-</script>
+</script>