Parcourir la source

页面布局调整,字典封装

wyling il y a 4 ans
Parent
commit
9d9ff7cc36

+ 1 - 1
src/api/coach/info.js

@@ -38,7 +38,7 @@ export function updateInfo(data) {
 // 删除教练
 export function delInfo(coachnum) {
   return request({
-    url: '/coach/info/' + coachnum,
+    url: '/coach/info/removeCoach/' + coachnum,
     method: 'delete'
   })
 }

+ 1 - 1
src/api/school/classType.js

@@ -38,7 +38,7 @@ export function updateClassType(data) {
 // 删除班型管理
 export function delClassType(id) {
   return request({
-    url: '/school/classType/' + id,
+    url: '/school/classType/removeSchoolClassType/' + id,
     method: 'delete'
   })
 }

+ 1 - 1
src/api/school/region.js

@@ -38,7 +38,7 @@ export function updateRegion(data) {
 // 删除场地管理
 export function delRegion(id) {
   return request({
-    url: '/school/region/' + id,
+    url: '/school/region/removeSchoolRegion/' + id,
     method: 'delete'
   })
 }

+ 35 - 0
src/assets/styles/myscss.scss

@@ -0,0 +1,35 @@
+.avatar-uploader {
+  width: 180px;
+  height: 180px;
+  background-color: #ccc;
+  /deep/ .el-upload {
+    height: 100%;
+  }
+  .avatar {
+    width: 100%;
+    height: 100%;
+    object-fit: contain;
+  }
+  .avatar-uploader-icon {
+    position: absolute;
+    left: 50%;
+    top: 50%;
+    transform: translate(-50%, -50%);
+    font-size: 50px;
+    color: #fff;
+  }
+}
+
+.logtext {
+  margin: 18px 0;
+  text-align: left;
+  font-size: 18px;
+  font-weight: 600;
+  border-left: 5px solid royalblue;
+  padding-left: 5px;
+}
+.dialogFrom {
+  max-height: calc(100vh - 250px);
+  overflow: auto;
+  padding: 0 20px;
+}

+ 31 - 43
src/components/Amap/index.vue

@@ -1,52 +1,40 @@
 <template>
-  <el-amap vid="amap" :zoom="13" class="amap" :center="center"> </el-amap>
+  <el-amap vid="amap" :zoom="16" class="amap" :center="mapCenter" :plugin="plugin" :events="events">
+    <el-amap-circle-marker :center="mapCenter" />
+  </el-amap>
 </template>
 
 <script>
-import "@/utils/amap.js";
+import '@/utils/amap.js'
 export default {
-  props: ["center"],
+  props: {
+    center: {
+      type: Array,
+      default: [120, 30]
+    },
+    radius: {
+      type: Number,
+      default: 200
+    }
+  },
+  watch: {
+    center(val) {
+      this.mapCenter = val
+    }
+  },
   data() {
-    const self = this;
     return {
-    //   center: this.center2,
-      lng: 0,
-      lat: 0,
-      loaded: false,
-      plugin: [
-        {
-          enableHighAccuracy: true, //是否使用高精度定位,默认:true
-          timeout: 100, //超过10秒后停止定位,默认:无穷大
-          maximumAge: 0, //定位结果缓存0毫秒,默认:0
-          convert: true, //自动偏移坐标,偏移后的坐标为高德坐标,默认:true
-          showButton: true, //显示定位按钮,默认:true
-          buttonPosition: "RB", //定位按钮停靠位置,默认:'LB',左下角
-          showMarker: true, //定位成功后在定位到的位置显示点标记,默认:true
-          showCircle: true, //定位成功后用圆圈表示定位精度范围,默认:true
-          panToLocation: true, //定位成功后将定位到的位置作为地图中心点,默认:true
-          zoomToAccuracy: true, //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:f
-          extensions: "all",
-          pName: "Geolocation",
-          events: {
-            init(o) {
-              // o 是高德地图定位插件实例
-              o.getCurrentPosition((status, result) => {
-                console.log(result);
-                if (result && result.position) {
-                  self.lng = result.position.lng;
-                  self.lat = result.position.lat;
-                  self.center = [self.lng, self.lat];
-                  self.loaded = true;
-                  self.$nextTick();
-                }
-              });
-            },
-          },
-        },
-      ],
-    };
-  },
-};
+      mapCenter: this.center,
+      plugin: ['AMap.Scale'],
+      events: {
+        rightclick: e => {
+          // alert([e.lnglat.getLng(), e.lnglat.getLat()])
+          this.mapCenter = [e.lnglat.getLng(), e.lnglat.getLat()]
+        }
+      }
+    }
+  }
+}
 </script>
 
 <style lang="scss" scoped>
@@ -54,4 +42,4 @@ export default {
   height: 100%;
   width: 100%;
 }
-</style>
+</style>

+ 33 - 11
src/main.js

@@ -16,12 +16,12 @@ import permission from './directive/permission'
 
 import './assets/icons' // icon
 import './permission' // permission control
-import { getDicts } from "@/api/system/dict/data";
-import { getConfigKey } from "@/api/system/config";
-import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, download, handleTree } from "@/utils/ruoyi";
-import Pagination from "@/components/Pagination";
+import { getDicts } from '@/api/system/dict/data'
+import { getConfigKey } from '@/api/system/config'
+import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, download, handleTree } from '@/utils/ruoyi'
+import Pagination from '@/components/Pagination'
 //自定义表格工具扩展
-import RightToolbar from "@/components/RightToolbar"
+import RightToolbar from '@/components/RightToolbar'
 
 // 全局方法挂载
 Vue.prototype.getDicts = getDicts
@@ -34,16 +34,16 @@ Vue.prototype.selectDictLabels = selectDictLabels
 Vue.prototype.download = download
 Vue.prototype.handleTree = handleTree
 
-Vue.prototype.msgSuccess = function (msg) {
-  this.$message({ showClose: true, message: msg, type: "success" });
+Vue.prototype.msgSuccess = function(msg) {
+  this.$message({ showClose: true, message: msg, type: 'success' })
 }
 
-Vue.prototype.msgError = function (msg) {
-  this.$message({ showClose: true, message: msg, type: "error" });
+Vue.prototype.msgError = function(msg) {
+  this.$message({ showClose: true, message: msg, type: 'error' })
 }
 
-Vue.prototype.msgInfo = function (msg) {
-  this.$message.info(msg);
+Vue.prototype.msgInfo = function(msg) {
+  this.$message.info(msg)
 }
 
 // 全局组件挂载
@@ -64,6 +64,28 @@ Vue.use(permission)
 Vue.use(Element, {
   size: Cookies.get('size') || 'medium' // set element-ui default size
 })
+/**
+ *
+ *
+ *
+ */
+const dictInit = function() {
+  if (this.dict) {
+    this.dict.dictArr.map(async val => {
+      await this.$store.dispatch('setDicts', val).then(() => {
+        this.dict[val.name] = this.$store.getters.dictObj(val.name)
+      })
+    })
+  }
+}
+
+Vue.prototype.dictInit = dictInit
+
+Vue.mixin({
+  created() {
+    this.dictInit()
+  }
+})
 
 Vue.config.productionTip = false
 

+ 3 - 1
src/store/index.js

@@ -1,17 +1,18 @@
 import Vue from 'vue'
 import Vuex from 'vuex'
 import app from './modules/app'
+import dict from './modules/dict'
 import user from './modules/user'
 import tagsView from './modules/tagsView'
 import permission from './modules/permission'
 import settings from './modules/settings'
 import getters from './getters'
-
 Vue.use(Vuex)
 
 const store = new Vuex.Store({
   modules: {
     app,
+    dict,
     user,
     tagsView,
     permission,
@@ -20,4 +21,5 @@ const store = new Vuex.Store({
   getters
 })
 
+
 export default store

+ 48 - 0
src/store/modules/dict.js

@@ -0,0 +1,48 @@
+import { getDicts } from '@/api/system/dict/data'
+import { selectDictLabel } from '@/utils/ruoyi'
+
+const dict = {
+  state: {},
+  getters: {
+    //获取字典对象
+    dictOption: state => dictName => state[dictName],
+    //获取表格字典转换函数
+    dictFormat: state => dictName => (row, column, cellVal, index) => selectDictLabel(state[dictName], cellVal),
+    //获取多类型字典对象
+    dictObj: (state,getters) => dictName => {
+      return {
+        option: getters.dictOption(dictName),
+        formatter: getters.dictFormat(dictName)
+      }
+    }
+  },
+  mutations: {
+    //设置字典
+    SET_DICT: (state, dict) => {
+      state[dict.name] = dict.data
+    }
+  },
+  actions: {
+    // 动态获取字典
+    setDicts({ commit, state }, dict) {
+      return new Promise(async resolve => {
+        if (state[dict.name]) {
+          resolve(state[dict.name])
+        } else {
+          await getDicts(dict.name)
+            .then(response => {
+              if (dict.type) {
+                response.data.map(val => {
+                  val.dictValue = parseInt(val.dictValue)
+                })
+              }
+              commit('SET_DICT', { name: dict.name, data: response.data })
+              resolve(response.data)
+            })
+        }
+      })
+    }
+  }
+}
+
+export default dict

+ 103 - 201
src/views/coach/evaluate/index.vue

@@ -1,216 +1,126 @@
 <template>
   <div class="app-container">
-    <el-form
-      v-show="showSearch"
-      ref="queryForm"
-      :model="queryParams"
-      :inline="true"
-      label-width="68px"
-    >
+    <el-form v-show="showSearch" ref="queryForm" :model="queryParams" :inline="true" label-width="68px">
       <el-form-item label="用户id" prop="userId">
-        <el-input
-          v-model="queryParams.userId"
-          placeholder="请输入用户id"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+        <el-input v-model="queryParams.userId" placeholder="请输入用户id" 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-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"
+            v-for="item in $store.getters.dictObj('data_status_query').option"
+            :key="item.dictValue"
+            :label="item.dictLabel"
+            :value="item.dictValue"
           />
         </el-select>
       </el-form-item>
       <el-form-item>
-        <el-button
-          type="cyan"
-          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="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
       </el-form-item>
     </el-form>
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
-        <el-button
-          v-hasPermi="['coach:evaluate:add']"
-          type="primary"
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-        >新增</el-button>
+        <el-button v-hasPermi="['coach:evaluate:add']" type="primary" icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          v-hasPermi="['coach:evaluate:edit']"
-          type="success"
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-        >修改</el-button>
+        <el-button v-hasPermi="['coach:evaluate:edit']" type="success" icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
+          >修改</el-button
+        >
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          v-hasPermi="['coach:evaluate:remove']"
-          type="danger"
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-        >删除</el-button>
+        <el-button v-hasPermi="['coach:evaluate:remove']" type="danger" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
+          >删除</el-button
+        >
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          v-hasPermi="['coach:evaluate:export']"
-          type="warning"
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-        >导出</el-button>
+        <el-button v-hasPermi="['coach:evaluate:export']" type="warning" icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
       </el-col>
-      <right-toolbar
-        :show-search.sync="showSearch"
-        @queryTable="getList"
-      />
+      <right-toolbar :show-search.sync="showSearch" @queryTable="getList" />
     </el-row>
 
-    <el-table
-      v-loading="loading"
-      :data="evaluateList"
-      @selection-change="handleSelectionChange"
-    >
+    <el-table v-loading="loading" :data="evaluateList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="id" align="center" prop="id" />
-      <el-table-column label="用户id" align="center" prop="userId" />
-      <el-table-column
-        label="教练员全国统一编号"
-        align="center"
-        prop="coachnum"
-      />
-      <el-table-column label="服务态度" align="center" prop="attitudeStars" />
       <el-table-column label="评价内容" align="center" prop="content" />
-      <el-table-column label="场地星级" align="center" prop="areaStars" />
-      <el-table-column label="总体星级1-5" align="center" prop="totelStars" />
-      <el-table-column label="标签表ID串" align="center" prop="labelIds" />
-      <el-table-column
-        label="是否匿名:0 :公开  1匿名"
-        align="center"
-        prop="isAnonymous"
-      />
-      <el-table-column
-        label="状态   0:启用 1:禁用"
-        align="center"
-        prop="status"
-      />
-      <el-table-column
-        label="操作"
-        align="center"
-        class-name="small-padding fixed-width"
-      >
+      <el-table-column label="教练姓名" align="center" prop="coachName" />
+      <el-table-column label="用户名" align="center" prop="userName" />
+      <el-table-column label="手机号" align="center" prop="userPhone" />
+      <el-table-column label="提交时间" align="center" prop="createTime" />
+      <el-table-column label="总体星级" align="center" prop="totalStars" min-width="150">
+        <template slot-scope="scope">
+          <el-rate :value="scope.row.totalStars" disabled />
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
-          <el-button
-            v-hasPermi="['coach:evaluate:edit']"
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-          >详情</el-button>
-          <el-button
-            v-hasPermi="['coach:evaluate:edit']"
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-          >修改</el-button>
-          <el-button
-            v-hasPermi="['coach:evaluate:remove']"
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-          >删除</el-button>
+          <el-button v-hasPermi="['coach:evaluate:edit']" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
+            >详情</el-button
+          >
+          <el-button v-hasPermi="['coach:evaluate:edit']" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
+            >修改</el-button
+          >
+          <el-button v-hasPermi="['coach:evaluate:remove']" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
+            >删除</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="1000px"
-      append-to-body
-    >
-      <el-form
-        ref="form"
-        :model="form"
-        :rules="rules"
-        label-width="80px"
-        :inline="true"
-      >
-        <el-form-item label="用户id" prop="userId">
-          <el-input v-model="form.userId" placeholder="请输入用户id" />
-        </el-form-item>
-        <el-form-item label="教练员全国统一编号" prop="coachnum">
-          <el-input
-            v-model="form.coachnum"
-            placeholder="请输入教练员全国统一编号"
-          />
-        </el-form-item>
-        <el-form-item label="服务态度" prop="attitudeStars">
-          <el-input v-model="form.attitudeStars" placeholder="请输入服务态度" />
-        </el-form-item>
-        <el-form-item label="评价内容">
-          <editor v-model="form.content" :min-height="192" />
-        </el-form-item>
-        <el-form-item label="场地星级" prop="areaStars">
-          <el-input v-model="form.areaStars" placeholder="请输入场地星级" />
-        </el-form-item>
-        <el-form-item label="总体星级1-5" prop="totelStars">
-          <el-input v-model="form.totelStars" placeholder="请输入总体星级1-5" />
-        </el-form-item>
-        <el-form-item label="标签表ID串" prop="labelIds">
-          <el-input
-            v-model="form.labelIds"
-            type="textarea"
-            placeholder="请输入内容"
-          />
-        </el-form-item>
-        <el-form-item label="是否匿名:0 :公开  1匿名" prop="isAnonymous">
-          <el-input
-            v-model="form.isAnonymous"
-            placeholder="请输入是否匿名:0 :公开  1匿名"
-          />
-        </el-form-item>
-        <el-form-item label="状态   0:启用 1:禁用">
-          <el-radio-group v-model="form.status">
-            <el-radio label="1">请选择字典生成</el-radio>
-          </el-radio-group>
-        </el-form-item>
+    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" size="medium" label-width="100px" label-position="top" class="dialogFrom">
+        <el-row gutter="15">
+          <el-form-item label="评价内容" prop="content">
+            <el-input
+              v-model="form.content"
+              type="textarea"
+              placeholder="请输入评价内容"
+              :autosize="{ minRows: 4, maxRows: 4 }"
+              :style="{ width: '100%' }"
+            ></el-input>
+          </el-form-item>
+          <el-form-item label="图片" prop="field158">
+            <el-input v-model="form.field158" placeholder="请输入图片" clearable :style="{ width: '100%' }"> </el-input>
+          </el-form-item>
+        </el-row>
+        <el-row type="flex" justify="center" align="top" gutter="15">
+          <el-col :span="8">
+            <el-form-item label="总体评价" prop="totalStars">
+              <el-rate v-model="form.totalStars"></el-rate>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="训练场地" prop="totalStars">
+              <el-rate v-model="form.totalStars"></el-rate>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="服务态度" prop="totalStars">
+              <el-rate v-model="form.totalStars"></el-rate>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row gutter="15">
+          <el-col :span="8">
+            <el-form-item label="用户名" prop="userName">
+              <el-input v-model="form.userName" placeholder="请输入用户名" clearable :style="{ width: '100%' }"> </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="手机号" prop="userPhone">
+              <el-input v-model="form.userPhone" placeholder="请输入手机号" clearable :style="{ width: '100%' }"> </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="提交时间" prop="createTime">
+              <el-input v-model="form.createTime" placeholder="请输入提交时间" clearable :style="{ width: '100%' }"> </el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -221,14 +131,7 @@
 </template>
 
 <script>
-import {
-  listEvaluate,
-  getEvaluate,
-  delEvaluate,
-  addEvaluate,
-  updateEvaluate,
-  exportEvaluate
-} from '@/api/coach/evaluate'
+import { listEvaluate, getEvaluate, delEvaluate, addEvaluate, updateEvaluate, exportEvaluate } from '@/api/coach/evaluate'
 import Editor from '@/components/Editor'
 
 export default {
@@ -236,8 +139,10 @@ export default {
   components: { Editor },
   data() {
     return {
-      // 状态数据字典
-      statusOptions: [],
+      //字典
+      dict: {
+        dictArr: [{ name: 'data_status_query', type: 1 }]
+      },
       // 遮罩层
       loading: true,
       // 选中数组
@@ -278,9 +183,6 @@ export default {
   },
   created() {
     this.getList()
-    this.getDicts('sys_normal_disable').then(response => {
-      this.statusOptions = response.data
-    })
   },
   methods: {
     /** 查询教练评价列表 */
@@ -370,15 +272,11 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const ids = row.id || this.ids
-      this.$confirm(
-        '是否确认删除教练评价编号为"' + ids + '"的数据项?',
-        '警告',
-        {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          type: 'warning'
-        }
-      )
+      this.$confirm('是否确认删除教练评价编号为"' + ids + '"的数据项?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
         .then(function() {
           return delEvaluate(ids)
         })
@@ -405,3 +303,7 @@ export default {
   }
 }
 </script>
+
+<style lang="scss" scoped>
+@import '@/assets/styles/myscss.scss';
+</style>

+ 266 - 134
src/views/coach/info/index.vue

@@ -1,6 +1,12 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+    <el-form
+      v-show="showSearch"
+      ref="queryForm"
+      :model="queryParams"
+      :inline="true"
+      label-width="68px"
+    >
       <el-form-item label="教练员性名" prop="name" label-width="90px">
         <el-input
           v-model="queryParams.name"
@@ -28,92 +34,129 @@
           @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 label="全部" value="2" />
+          <el-option label="启用" value="0" />
+          <el-option label="删除" value="1" />
+        </el-select>
+      </el-form-item>
       <el-form-item>
-        <el-button type="cyan" 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="cyan"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+        >搜索</el-button>
+        <el-button
+          icon="el-icon-refresh"
+          size="mini"
+          @click="resetQuery"
+        >重置</el-button>
       </el-form-item>
     </el-form>
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
         <el-button
+          v-hasPermi="['coach:info:add']"
           type="primary"
           icon="el-icon-plus"
           size="mini"
           @click="handleAdd"
-          v-hasPermi="['coach:info:add']"
         >新增</el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button
+          v-hasPermi="['coach:info:edit']"
           type="success"
           icon="el-icon-edit"
           size="mini"
           :disabled="single"
           @click="handleUpdate"
-          v-hasPermi="['coach:info:edit']"
         >修改</el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button
+          v-hasPermi="['coach:info:remove']"
           type="danger"
           icon="el-icon-delete"
           size="mini"
           :disabled="multiple"
           @click="handleDelete"
-          v-hasPermi="['coach:info:remove']"
         >删除</el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button
+          v-hasPermi="['coach:info:export']"
           type="warning"
           icon="el-icon-download"
           size="mini"
           @click="handleExport"
-          v-hasPermi="['coach:info:export']"
         >导出</el-button>
       </el-col>
-	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <right-toolbar
+        :show-search.sync="showSearch"
+        @queryTable="getList"
+      />
     </el-row>
 
-    <el-table v-loading="loading" :data="infoList" @selection-change="handleSelectionChange">
+    <el-table
+      v-loading="loading"
+      :data="infoList"
+      @selection-change="handleSelectionChange"
+    >
       <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="ID" align="center" prop="id" />
       <el-table-column label="教练员性名" align="center" prop="name" />
-      <el-table-column label="教练员全国统一编号" align="center" prop="coachnum" />
+      <el-table-column
+        label="教练员全国统一编号"
+        align="center"
+        prop="coachnum"
+      />
       <el-table-column label="身份证明号码" align="center" prop="idcard" />
       <el-table-column label="岗位" align="center" prop="address" />
       <el-table-column label="手机号码" align="center" prop="mobile" />
       <el-table-column label="合同结束日期" align="center" prop="photo" />
       <el-table-column label="备注" align="center" prop="district" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
         <template slot-scope="scope">
           <el-button
+            v-hasPermi="['coach:info:edit']"
             size="mini"
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
-            v-hasPermi="['coach:info:edit']"
           >详情</el-button>
           <el-button
+            v-hasPermi="['coach:info:edit']"
             size="mini"
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
-            v-hasPermi="['coach:info:edit']"
           >修改</el-button>
           <el-button
+            v-hasPermi="['coach:info:remove']"
             size="mini"
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
-            v-hasPermi="['coach:info:remove']"
           >删除</el-button>
         </template>
       </el-table-column>
     </el-table>
 
     <pagination
-      v-show="total>0"
+      v-show="total > 0"
       :total="total"
       :page.sync="queryParams.pageNum"
       :limit.sync="queryParams.pageSize"
@@ -121,64 +164,130 @@
     />
 
     <!-- 添加或修改教练对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px" :inline="true">
-        <el-form-item label="教练员性名" prop="name">
-          <el-input v-model="form.name" placeholder="请输入教练员性名" />
-        </el-form-item>
-        <el-form-item label="性别 :1男  2女" prop="sex">
-          <el-select v-model="form.sex" placeholder="请选择性别 :1男  2女">
-            <el-option label="请选择字典生成" value="" />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="驾校全国统一编号" prop="inscode">
-          <el-input v-model="form.inscode" placeholder="请输入驾校全国统一编号" />
-        </el-form-item>
-        <el-form-item label="身份证明号码" prop="idcard">
-          <el-input v-model="form.idcard" placeholder="请输入身份证明号码" />
-        </el-form-item>
-        <el-form-item label="手机号码" prop="mobile">
-          <el-input v-model="form.mobile" placeholder="请输入手机号码" />
-        </el-form-item>
-        <el-form-item label="地址" prop="address">
-          <el-input v-model="form.address" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-        <el-form-item label="教练员头像ID" prop="photo">
-          <el-input v-model="form.photo" placeholder="请输入教练员头像ID" />
-        </el-form-item>
-        <el-form-item label="准驾车型" prop="dripermitted">
-          <el-input v-model="form.dripermitted" placeholder="请输入准驾车型" />
-        </el-form-item>
-        <el-form-item label="准教车型" prop="teachpermitted">
-          <el-input v-model="form.teachpermitted" placeholder="请输入准教车型" />
-        </el-form-item>
-        <el-form-item label="地区编号" prop="district">
-          <el-input v-model="form.district" placeholder="请输入地区编号" />
-        </el-form-item>
-        <el-form-item label="供职状态:0:在职 1离职
-            1:离职
-            供职状态:0:在职
-            1:离职
-            
-            1:离职
-            ">
-          <el-radio-group v-model="form.employstatus">
-            <el-radio label="1">请选择字典生成</el-radio>
-          </el-radio-group>
-        </el-form-item>
-        <el-form-item label="停训 1-停训 0-启用" prop="stopTrain">
-          <el-input v-model="form.stopTrain" placeholder="请输入停训 1-停训 0-启用" />
-        </el-form-item>
-        <el-form-item label="微信号" prop="wechar">
-          <el-input v-model="form.wechar" placeholder="请输入微信号" />
-        </el-form-item>
-        <el-form-item label="微信openid" prop="openid">
-          <el-input v-model="form.openid" placeholder="请输入微信openid" />
-        </el-form-item>
-        <el-form-item label="点赞数" prop="fabulous">
-          <el-input v-model="form.fabulous" placeholder="请输入点赞数" />
-        </el-form-item>
+    <el-dialog
+      :title="title"
+      :visible.sync="open"
+      width="1000px"
+      append-to-body
+    >
+     <el-form ref="form" :model="form" :rules="rules" size="medium" label-width="100px" label-position="top" class="dialogFrom">
+       <div class="logtext">基本信息</div>
+        <el-row gutter="15">
+          <el-col :span="16">
+            <el-row gutter="15">
+              <el-col :span="12">
+                <el-form-item label="教练姓名" prop="name">
+                  <el-input v-model="form.name" placeholder="请输入教练姓名" clearable :style="{width: '100%'}">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="教练年龄" prop="name">
+                  <el-input v-model="form.name" placeholder="请输入教练年龄" clearable :style="{width: '100%'}">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="教练性别" prop="sex">
+                  <el-select v-model="form.sex" placeholder="请输入教练性别" clearable :style="{width: '100%'}">
+                    <el-option v-for="(item, index) in field107Options" :key="index" :label="item.label"
+                      :value="item.value" :disabled="item.disabled"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="身份证" prop="idcard">
+                  <el-input v-model="form.idcard" placeholder="请输入身份证" clearable :style="{width: '100%'}">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="手机号" prop="mobile">
+                  <el-input v-model="form.mobile" placeholder="请输入手机号" clearable :style="{width: '100%'}">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="联系地址" prop="address">
+                  <el-input v-model="form.address" placeholder="请输入联系地址" clearable :style="{width: '100%'}">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="供职状态" prop="status">
+                  <el-select v-model="form.status" placeholder="请输入供职状态" clearable :style="{width: '100%'}">
+                    <el-option v-for="(item, index) in field111Options" :key="index" :label="item.label"
+                      :value="item.value" :disabled="item.disabled"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="合同有效期" prop="field112">
+                  <el-date-picker v-model="form.field112" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
+                    :style="{width: '100%'}" placeholder="请输入合同有效期" clearable></el-date-picker>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-col>
+          <el-col :span="8">
+            <el-row type="flex" justify="center" align="middle" gutter="15">
+              <el-col :span="12">
+                <el-form-item label="上传照片" prop="field120" required>
+                  <el-upload ref="field120" :file-list="field120fileList" :action="field120Action"
+                    :before-upload="field120BeforeUpload" list-type="picture-card">
+                    <i class="el-icon-plus"></i>
+                  </el-upload>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-col>
+        </el-row>
+        <div class="logtext">资格信息</div>
+        <el-row gutter="15">
+          <el-col :span="8">
+            <el-form-item label="驾驶证号码" prop="inscode">
+              <el-input v-model="form.inscode" placeholder="请输入驾驶证号码" clearable :style="{width: '100%'}">
+              </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="领证日期" prop="updateTime">
+              <el-input v-model="form.updateTime" placeholder="请输入领证日期" clearable :style="{width: '100%'}">
+              </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="准驾信息(可多选)" prop="teachpermitted">
+              <el-select v-model="form.teachpermitted" placeholder="请选择下拉选择" multiple clearable
+                :style="{width: '100%'}">
+                <el-option v-for="(item, index) in field115Options" :key="index" :label="item.label"
+                  :value="item.value" :disabled="item.disabled"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="准驾车型" prop="teachpermitted">
+              <el-input v-model="form.teachpermitted" placeholder="请输入准驾车型" clearable :style="{width: '100%'}">
+              </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="职业资格证号" prop="coachnum">
+              <el-input v-model="form.coachnum" placeholder="请输入职业资格证号" clearable :style="{width: '100%'}">
+              </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="职业资格等级" prop="dripermitted">
+              <el-select v-model="form.dripermitted" placeholder="请输入职业资格等级" clearable :style="{width: '100%'}">
+                <el-option v-for="(item, index) in field118Options" :key="index" :label="item.label"
+                  :value="item.value" :disabled="item.disabled"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
+      
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
@@ -188,12 +297,23 @@
 </template>
 
 <script>
-import { listInfo, getInfo, delInfo, addInfo, updateInfo, exportInfo } from "@/api/coach/info";
+import {
+  listInfo,
+  getInfo,
+  delInfo,
+  addInfo,
+  updateInfo,
+  exportInfo
+} from '@/api/coach/info'
 
 export default {
-  name: "Info",
+  name: 'Info',
   data() {
     return {
+      //字典
+      dict:{
+        dictarr:[],
+      },
       // 遮罩层
       loading: true,
       // 选中数组
@@ -209,7 +329,7 @@ export default {
       // 教练表格数据
       infoList: [],
       // 弹出层标题
-      title: "",
+      title: '',
       // 是否显示弹出层
       open: false,
       // 查询参数
@@ -235,31 +355,31 @@ export default {
       // 表单参数
       form: {},
       // 表单校验
-      rules: {
-      }
-    };
+      rules: {}
+    }
   },
   created() {
-    this.getList();
+    this.getList()
   },
   methods: {
     /** 查询教练列表 */
     getList() {
-      this.loading = true;
+      this.loading = true
       listInfo(this.queryParams).then(response => {
-        this.infoList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
+        this.infoList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
     },
     // 取消按钮
     cancel() {
-      this.open = false;
-      this.reset();
+      this.open = false
+      this.reset()
     },
     // 表单重置
     reset() {
       this.form = {
+        id: null,
         coachnum: null,
         name: null,
         sex: null,
@@ -278,88 +398,100 @@ export default {
         createTime: null,
         updateTime: null,
         fabulous: null
-      };
-      this.resetForm("form");
+      }
+      this.resetForm('form')
     },
     /** 搜索按钮操作 */
     handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
+      this.queryParams.pageNum = 1
+      this.getList()
     },
     /** 重置按钮操作 */
     resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
+      this.resetForm('queryForm')
+      this.handleQuery()
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.coachnum)
-      this.single = selection.length!==1
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
       this.multiple = !selection.length
     },
     /** 新增按钮操作 */
     handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加教练";
+      this.reset()
+      this.open = true
+      this.title = '添加教练'
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
-      this.reset();
-      const coachnum = row.coachnum || this.ids
+      this.reset()
+      const coachnum = row.id || this.ids
       getInfo(coachnum).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改教练";
-      });
+        this.form = response.data
+        this.open = true
+        this.title = '修改教练'
+      })
     },
     /** 提交按钮 */
     submitForm() {
-      this.$refs["form"].validate(valid => {
+      this.$refs['form'].validate(valid => {
         if (valid) {
-          if (this.form.coachnum != null) {
+          if (this.form.id != null) {
             updateInfo(this.form).then(response => {
-              this.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
+              this.msgSuccess('修改成功')
+              this.open = false
+              this.getList()
+            })
           } else {
             addInfo(this.form).then(response => {
-              this.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
+              this.msgSuccess('新增成功')
+              this.open = false
+              this.getList()
+            })
           }
         }
-      });
+      })
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      const coachnums = row.coachnum || this.ids;
-      this.$confirm('是否确认删除教练编号为"' + coachnums + '"的数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return delInfo(coachnums);
-        }).then(() => {
-          this.getList();
-          this.msgSuccess("删除成功");
+      const coachnums = row.id || this.ids
+      this.$confirm(
+        '是否确认删除教练编号为"' + coachnums + '"的数据项?',
+        '警告',
+        {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }
+      )
+        .then(function() {
+          return delInfo(coachnums)
+        })
+        .then(() => {
+          this.getList()
+          this.msgSuccess('删除成功')
         })
     },
     /** 导出按钮操作 */
     handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm('是否确认导出所有教练数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return exportInfo(queryParams);
-        }).then(response => {
-          this.download(response.data);
+      const queryParams = this.queryParams
+      this.$confirm('是否确认导出所有教练数据项?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(function() {
+          return exportInfo(queryParams)
+        })
+        .then(response => {
+          this.download(response.data)
         })
     }
   }
-};
+}
 </script>
+
+<style lang="scss" scoped>
+@import '@/assets/styles/myscss.scss';
+</style>

+ 288 - 189
src/views/school/classType/index.vue

@@ -1,14 +1,8 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+    <el-form v-show="showSearch" ref="queryForm" :model="queryParams" :inline="true" label-width="68px">
       <el-form-item label="班级名称" prop="className">
-        <el-input
-          v-model="queryParams.className"
-          placeholder="请输入班级名称"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+        <el-input v-model="queryParams.className" placeholder="请输入班级名称" clearable size="small" @keyup.enter.native="handleQuery" />
       </el-form-item>
       <el-form-item>
         <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -18,44 +12,22 @@
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
-        <el-button
-          type="primary"
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['school:classType:add']"
-        >新增</el-button>
+        <el-button v-hasPermi="['school:classType:add']" type="primary" icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="success"
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['school:classType:edit']"
-        >修改</el-button>
+        <el-button v-hasPermi="['school:classType:edit']" type="success" icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
+          >修改</el-button
+        >
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="danger"
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['school:classType:remove']"
-        >删除</el-button>
+        <el-button v-hasPermi="['school:classType:remove']" type="danger" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
+          >删除</el-button
+        >
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="warning"
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['school:classType:export']"
-        >导出</el-button>
+        <el-button v-hasPermi="['school:classType:export']" type="warning" icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
       </el-col>
-	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <right-toolbar :show-search.sync="showSearch" @queryTable="getList" />
     </el-row>
 
     <el-table v-loading="loading" :data="classTypeList" @selection-change="handleSelectionChange">
@@ -63,7 +35,7 @@
       <el-table-column label="班级名称" align="center" prop="className" />
       <el-table-column label="总价" align="center" prop="totalPrice" />
       <el-table-column label="学时" align="center" prop="train" />
-      <el-table-column label="收费方式 1:一次性 2:先学后付 3:计时收费" align="center" prop="payType" />
+      <el-table-column label="收费方式" align="center" prop="payType" :formatter="$store.getters.dictObj('school_class_type_pay_type').formatter" />
       <el-table-column label="车型" align="center" prop="pxcx" />
       <el-table-column label="合同到期时间" align="center" prop="contractEndTime" width="180">
         <template slot-scope="scope">
@@ -73,102 +45,212 @@
       <el-table-column label="每分钟多少钱" align="center" prop="minPrice" />
       <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="['school:classType:edit']"
-          >详情</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['school:classType:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['school:classType:remove']"
-          >删除</el-button>
+          <el-button v-hasPermi="['school:classType:edit']" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
+            >详情</el-button
+          >
+          <el-button v-hasPermi="['school:classType:edit']" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
+            >修改</el-button
+          >
+          <el-button v-hasPermi="['school:classType:remove']" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
+            >删除</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="1000px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px" :inline="true">
-        <el-form-item label="班级名称" prop="className">
-          <el-input v-model="form.className" placeholder="请输入班级名称" />
-        </el-form-item>
-        <el-form-item label="总价" prop="totalPrice">
-          <el-input v-model="form.totalPrice" placeholder="请输入总价" />
-        </el-form-item>
-        <el-form-item label="学时" prop="train">
-          <el-input v-model="form.train" placeholder="请输入学时" />
-        </el-form-item>
-        <el-form-item label="车型" prop="pxcx">
-          <el-input v-model="form.pxcx" placeholder="请输入车型" />
-        </el-form-item>
-        <el-form-item label="收费方式 1:一次性 2:先学后付 3:计时收费" prop="payType">
-          <el-select v-model="form.payType" placeholder="请选择收费方式 1:一次性 2:先学后付 3:计时收费">
-            <el-option label="请选择字典生成" value="" />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="每分钟多少钱" prop="minPrice">
-          <el-input v-model="form.minPrice" placeholder="请输入每分钟多少钱" />
-        </el-form-item>
-        <el-form-item label="科目一理论时间" prop="oneTime">
-          <el-input v-model="form.oneTime" placeholder="请输入科目一理论时间" />
-        </el-form-item>
-        <el-form-item label="科目二实操时间" prop="twoTime">
-          <el-input v-model="form.twoTime" placeholder="请输入科目二实操时间" />
-        </el-form-item>
-        <el-form-item label="科目三模拟时间" prop="threeSimulationTime">
-          <el-input v-model="form.threeSimulationTime" placeholder="请输入科目三模拟时间" />
-        </el-form-item>
-        <el-form-item label="科目三实操时间" prop="threePracticeTime">
-          <el-input v-model="form.threePracticeTime" placeholder="请输入科目三实操时间" />
-        </el-form-item>
-        <el-form-item label="科目三理论时间" prop="threeTheoryTime">
-          <el-input v-model="form.threeTheoryTime" placeholder="请输入科目三理论时间" />
-        </el-form-item>
-        <el-form-item label="班型照片URL" prop="photoUrl">
-          <el-input v-model="form.photoUrl" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-        <el-form-item label="训练场ID" prop="regionId">
-          <el-input v-model="form.regionId" placeholder="请输入训练场ID" />
-        </el-form-item>
-        <el-form-item label="PDF合同url" prop="pdfUrl">
-          <el-input v-model="form.pdfUrl" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-        <el-form-item label="合同到期时间" prop="contractEndTime">
-          <el-date-picker clearable size="small" style="width: 200px"
-            v-model="form.contractEndTime"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="选择合同到期时间">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item label="创建时间" prop="crdateTime">
-          <el-date-picker clearable size="small" style="width: 200px"
-            v-model="form.crdateTime"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="选择创建时间">
-          </el-date-picker>
-        </el-form-item>
+      <el-form ref="form" :model="form" :rules="rules" size="medium" label-width="100px" label-position="top" class="dialogFrom">
+        <div class="logtext">基础信息</div>
+        <el-row gutter="15">
+          <el-col :span="8">
+            <el-form-item label="班型名称" prop="className">
+              <el-input v-model="form.className" placeholder="请输入班型名称" clearable :style="{ width: '100%' }"> </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="班型费用" prop="totalPrice">
+              <el-input v-model="form.totalPrice" placeholder="请输入班型费用" clearable :style="{ width: '100%' }"> </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="班型学时" prop="train">
+              <el-input v-model="form.train" placeholder="请输入班型学时" clearable :style="{ width: '100%' }"> </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="准驾车型" prop="pxcx">
+              <el-select v-model="form.pxcx" placeholder="请输入准驾车型" clearable multiple :style="{ width: '100%' }">
+                <el-option
+                  v-for="(item, index) in $store.getters.dictObj('school_pxcx').option"
+                  :key="index"
+                  :label="item.dictLabel"
+                  :value="item.dictValue"
+                  :disabled="item.disabled"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="添加时间" prop="createTime">
+              <el-input v-model="form.createTime" placeholder="请输入添加时间" clearable :style="{ width: '100%' }"> </el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <div class="logtext">付款信息</div>
+        <el-row gutter="15">
+          <el-col :span="8">
+            <el-form-item label="收费方式" prop="payType">
+              <el-select v-model="form.payType" placeholder="请输入收费方式" clearable :style="{ width: '100%' }">
+                <el-option
+                  v-for="(item, index) in $store.getters.dictObj('school_class_type_pay_type').option"
+                  :key="index"
+                  :label="item.dictLabel"
+                  :value="item.dictValue"
+                  :disabled="item.disabled"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="首次收费金额" prop="field112">
+              <el-input v-model="form.field112" placeholder="请输入首次收费金额" clearable :style="{ width: '100%' }"> </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="第二次收费金额" prop="field113">
+              <el-input v-model="form.field113" placeholder="请输入第二次收费金额" clearable :style="{ width: '100%' }"> </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="第三次收费金额" prop="field114">
+              <el-input v-model="form.field114" placeholder="请输入第三次收费金额" clearable :style="{ width: '100%' }"> </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="继续添加收费" prop="field115">
+              <el-button type="primary" size="medium"> 点击继续添加收费 </el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <div class="logtext">学时信息</div>
+        <el-row gutter="15">
+          <el-col :span="8">
+            <el-form-item label="科目一时间" prop="field116">
+              <el-input v-model="form.field116" placeholder="请输入科目一时间" clearable :style="{ width: '100%' }"> </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="科目二实操时间" prop="field117">
+              <el-input v-model="form.field117" placeholder="请输入科目二实操时间" clearable :style="{ width: '100%' }"> </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="科目二学时扣费金额(分钟)" prop="field118">
+              <el-input v-model="form.field118" placeholder="请输入科目二学时扣费金额(分钟)" clearable :style="{ width: '100%' }"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="科目三模拟时间" prop="field119">
+              <el-input v-model="form.field119" placeholder="请输入科目三模拟时间" clearable :style="{ width: '100%' }"> </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="科目三实操时间" prop="field120">
+              <el-input v-model="form.field120" placeholder="请输入科目三实操时间" clearable :style="{ width: '100%' }"> </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="科目三学时扣费金额(分钟)" prop="field121">
+              <el-input v-model="form.field121" placeholder="请输入科目三学时扣费金额(分钟)" clearable :style="{ width: '100%' }"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="科目三理论时间" prop="field122">
+              <el-input v-model="form.field122" placeholder="请输入科目三理论时间" clearable :style="{ width: '100%' }"> </el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <div class="logtext">驾校信息</div>
+        <el-row gutter="15">
+          <el-col :span="8">
+            <el-row type="flex" justify="center" align="top" gutter="15">
+              <el-col :span="12">
+                <el-form-item label="班型图片" prop="field126" required>
+                  <el-upload
+                    ref="field126"
+                    :file-list="field126fileList"
+                    :action="field126Action"
+                    :before-upload="field126BeforeUpload"
+                    list-type="picture-card"
+                  >
+                    <i class="el-icon-plus"></i>
+                  </el-upload>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-col>
+          <el-col :span="16">
+            <el-row gutter="15">
+              <el-col :span="12">
+                <el-form-item label="教学点名称" prop="field127">
+                  <el-input v-model="form.field127" placeholder="请输入教学点名称" clearable :style="{ width: '100%' }"> </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="驾校联系电话" prop="field128">
+                  <el-input v-model="form.field128" placeholder="请输入驾校联系电话" clearable :style="{ width: '100%' }"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="班型介绍" prop="field129">
+                  <el-input
+                    v-model="form.field129"
+                    type="textarea"
+                    placeholder="请输入班型介绍"
+                    :autosize="{ minRows: 4, maxRows: 4 }"
+                    :style="{ width: '100%' }"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-col>
+        </el-row>
+        <div class="logtext">合同信息</div>
+        <el-row gutter="15">
+          <el-col :span="8">
+            <el-form-item label="合同有效期" prop="field131">
+              <el-date-picker
+                v-model="form.field131"
+                format="yyyy-MM-dd"
+                value-format="yyyy-MM-dd"
+                :style="{ width: '100%' }"
+                placeholder="请输入合同有效期"
+                clearable
+              ></el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="上传附件" prop="field133" required>
+              <el-upload ref="field133" :file-list="field133fileList" :action="field133Action" :before-upload="field133BeforeUpload">
+                <el-button size="small" type="primary" icon="el-icon-upload">上传附件</el-button>
+              </el-upload>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="备注内容" prop="field136">
+              <el-input
+                v-model="form.field136"
+                type="textarea"
+                placeholder="请输入备注内容"
+                :autosize="{ minRows: 4, maxRows: 4 }"
+                :style="{ width: '100%' }"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -178,13 +260,23 @@
   </div>
 </template>
 
+
+
 <script>
-import { listClassType, getClassType, delClassType, addClassType, updateClassType, exportClassType } from "@/api/school/classType";
+import { listClassType, getClassType, delClassType, addClassType, updateClassType, exportClassType } from '@/api/school/classType'
 
 export default {
-  name: "ClassType",
+  name: 'ClassType',
   data() {
     return {
+      //字典
+      dict: {
+        dictArr: [
+          // 收费方式字典
+          { name: 'school_class_type_pay_type', type: 1 },
+          { name: 'school_pxcx', type: 1 },
+        ]
+      },
       // 遮罩层
       loading: true,
       // 选中数组
@@ -200,7 +292,7 @@ export default {
       // 班型管理表格数据
       classTypeList: [],
       // 弹出层标题
-      title: "",
+      title: '',
       // 是否显示弹出层
       open: false,
       // 查询参数
@@ -222,32 +314,31 @@ export default {
         regionId: null,
         pdfUrl: null,
         contractEndTime: null,
-        crdateTime: null,
+        crdateTime: null
       },
       // 表单参数
       form: {},
       // 表单校验
-      rules: {
-      }
-    };
+      rules: {}
+    }
   },
   created() {
-    this.getList();
+    this.getList()
   },
   methods: {
     /** 查询班型管理列表 */
     getList() {
-      this.loading = true;
+      this.loading = true
       listClassType(this.queryParams).then(response => {
-        this.classTypeList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
+        this.classTypeList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
     },
     // 取消按钮
     cancel() {
-      this.open = false;
-      this.reset();
+      this.open = false
+      this.reset()
     },
     // 表单重置
     reset() {
@@ -270,88 +361,96 @@ export default {
         contractEndTime: null,
         crdateTime: null,
         updateTime: null
-      };
-      this.resetForm("form");
+      }
+      this.resetForm('form')
     },
     /** 搜索按钮操作 */
     handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
+      this.queryParams.pageNum = 1
+      this.getList()
     },
     /** 重置按钮操作 */
     resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
+      this.resetForm('queryForm')
+      this.handleQuery()
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
       this.ids = selection.map(item => item.id)
-      this.single = selection.length!==1
+      this.single = selection.length !== 1
       this.multiple = !selection.length
     },
     /** 新增按钮操作 */
     handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加班型管理";
+      this.reset()
+      this.open = true
+      this.title = '添加班型管理'
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
-      this.reset();
+      this.reset()
       const id = row.id || this.ids
       getClassType(id).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改班型管理";
-      });
+        this.form = response.data
+        this.open = true
+        this.title = '修改班型管理'
+      })
     },
     /** 提交按钮 */
     submitForm() {
-      this.$refs["form"].validate(valid => {
+      this.$refs['form'].validate(valid => {
         if (valid) {
           if (this.form.id != null) {
             updateClassType(this.form).then(response => {
-              this.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
+              this.msgSuccess('修改成功')
+              this.open = false
+              this.getList()
+            })
           } else {
             addClassType(this.form).then(response => {
-              this.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
+              this.msgSuccess('新增成功')
+              this.open = false
+              this.getList()
+            })
           }
         }
-      });
+      })
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      const ids = row.id || this.ids;
-      this.$confirm('是否确认删除班型管理编号为"' + ids + '"的数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return delClassType(ids);
-        }).then(() => {
-          this.getList();
-          this.msgSuccess("删除成功");
+      const ids = row.id || this.ids
+      this.$confirm('是否确认删除班型管理编号为"' + ids + '"的数据项?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(function() {
+          return delClassType(ids)
+        })
+        .then(() => {
+          this.getList()
+          this.msgSuccess('删除成功')
         })
     },
     /** 导出按钮操作 */
     handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm('是否确认导出所有班型管理数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return exportClassType(queryParams);
-        }).then(response => {
-          this.download(response.data);
+      const queryParams = this.queryParams
+      this.$confirm('是否确认导出所有班型管理数据项?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(function() {
+          return exportClassType(queryParams)
+        })
+        .then(response => {
+          this.download(response.data)
         })
     }
   }
-};
+}
 </script>
+
+<style lang="scss" scoped>
+@import '@/assets/styles/myscss.scss';
+</style>

+ 136 - 160
src/views/school/evaluate/index.vue

@@ -1,14 +1,8 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+    <el-form v-show="showSearch" ref="queryForm" :model="queryParams" :inline="true" label-width="68px">
       <el-form-item label="驾校ID" prop="inscode">
-        <el-input
-          v-model="queryParams.inscode"
-          placeholder="请输入驾校ID"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+        <el-input v-model="queryParams.inscode" placeholder="请输入驾校ID" clearable size="small" @keyup.enter.native="handleQuery" />
       </el-form-item>
       <el-form-item>
         <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -18,121 +12,96 @@
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
-        <el-button
-          type="primary"
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['school:evaluate:add']"
-        >新增</el-button>
+        <el-button v-hasPermi="['school:evaluate:add']" type="primary" icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="success"
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['school:evaluate:edit']"
-        >修改</el-button>
+        <el-button v-hasPermi="['school:evaluate:edit']" type="success" icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate">修改</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="danger"
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['school:evaluate:remove']"
-        >删除</el-button>
+        <el-button v-hasPermi="['school:evaluate:remove']" type="danger" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete">删除</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="warning"
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['school:evaluate:export']"
-        >导出</el-button>
+        <el-button v-hasPermi="['school:evaluate:export']" type="warning" icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
       </el-col>
-	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <right-toolbar :show-search.sync="showSearch" @queryTable="getList" />
     </el-row>
 
     <el-table v-loading="loading" :data="evaluateList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="ID" align="center" prop="id" />
       <el-table-column label="评价内容" align="center" prop="content" />
-      <el-table-column label="是否匿名:0 :公开  1匿名" align="center" prop="isAnonymous" />
-      <el-table-column label="评价用户ID" align="center" prop="userId" />
-      <el-table-column label="总体星数:星星数1-5星" align="center" prop="totalStarts" />
+      <el-table-column label="用户" align="center" prop="userName" />
+      <el-table-column label="用户手机号" align="center" prop="userPhone" />
+      <el-table-column label="提交时间" align="center" prop="createTime" />
+      <el-table-column label="总体星数" align="center" prop="totelStars">
+        <template slot-scope="scope">
+          <el-rate :value="scope.row.totelStars" disabled />
+        </template>
+      </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="['school:evaluate:edit']"
-          >详情</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['school:evaluate:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['school:evaluate:remove']"
-          >删除</el-button>
+          <el-button v-hasPermi="['school:evaluate:edit']" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">详情</el-button>
+          <el-button v-hasPermi="['school:evaluate:edit']" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改</el-button>
+          <el-button v-hasPermi="['school:evaluate:remove']" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</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="1000px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px" :inline="true">
-        <el-form-item label="驾校ID" prop="inscode">
-          <el-input v-model="form.inscode" placeholder="请输入驾校ID" />
-        </el-form-item>
-        <el-form-item label="评价内容">
-          <editor v-model="form.content" :min-height="192"/>
-        </el-form-item>
-        <el-form-item label="态度星级" prop="attitudeStarts">
-          <el-input v-model="form.attitudeStarts" placeholder="请输入态度星级" />
-        </el-form-item>
-        <el-form-item label="场级星级" prop="areaStarts">
-          <el-input v-model="form.areaStarts" placeholder="请输入场级星级" />
-        </el-form-item>
-        <el-form-item label="评价用户ID" prop="userId">
-          <el-input v-model="form.userId" placeholder="请输入评价用户ID" />
-        </el-form-item>
-        <el-form-item label="总体星数:星星数1-5星" prop="totalStarts">
-          <el-input v-model="form.totalStarts" placeholder="请输入总体星数:星星数1-5星" />
-        </el-form-item>
-        <el-form-item label="是否匿名:0 :公开  1匿名" prop="isAnonymous">
-          <el-input v-model="form.isAnonymous" placeholder="请输入是否匿名:0 :公开  1匿名" />
-        </el-form-item>
-        <el-form-item label="驾校标签表ID串" prop="schoolLabelIds">
-          <el-input v-model="form.schoolLabelIds" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-        <el-form-item label="status 状态   0:启用 1:禁用">
-          <el-radio-group v-model="form.status">
-            <el-radio label="1">请选择字典生成</el-radio>
-          </el-radio-group>
-        </el-form-item>
+
+      <el-form ref="form" :model="form" :rules="rules" size="medium" label-width="100px" label-position="top"  class="dialogFrom">
+        <el-row gutter="15">
+          <el-form-item label="评价内容" prop="content">
+            <el-input v-model="form.content" type="textarea" placeholder="请输入评价内容"
+              :autosize="{minRows: 4, maxRows: 4}" :style="{width: '100%'}"></el-input>
+          </el-form-item>
+          <el-form-item label="图片" prop="field158">
+            <el-input v-model="form.field158" placeholder="请输入图片" clearable :style="{width: '100%'}">
+            </el-input>
+          </el-form-item>
+        </el-row>
+        <el-row type="flex" justify="center" align="top" gutter="15">
+          <el-col :span="8">
+            <el-form-item label="总体评价" prop="totalStars">
+              <el-rate v-model="form.totalStars"></el-rate>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="训练场地" prop="totalStars">
+              <el-rate v-model="form.totalStars"></el-rate>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="服务态度" prop="totalStars">
+              <el-rate v-model="form.totalStars"></el-rate>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row gutter="15">
+          <el-col :span="8">
+            <el-form-item label="用户名" prop="userName">
+              <el-input v-model="form.userName" placeholder="请输入用户名" clearable :style="{width: '100%'}">
+              </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="手机号" prop="userPhone">
+              <el-input v-model="form.userPhone" placeholder="请输入手机号" clearable :style="{width: '100%'}">
+              </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="提交时间" prop="createTime">
+              <el-input v-model="form.createTime" placeholder="请输入提交时间" clearable :style="{width: '100%'}">
+              </el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
+
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
@@ -142,11 +111,11 @@
 </template>
 
 <script>
-import { listEvaluate, getEvaluate, delEvaluate, addEvaluate, updateEvaluate, exportEvaluate } from "@/api/school/evaluate";
-import Editor from '@/components/Editor';
+import { listEvaluate, getEvaluate, delEvaluate, addEvaluate, updateEvaluate, exportEvaluate } from '@/api/school/evaluate'
+import Editor from '@/components/Editor'
 
 export default {
-  name: "Evaluate",
+  name: 'Evaluate',
   components: { Editor },
   data() {
     return {
@@ -165,7 +134,7 @@ export default {
       // 驾校评价表格数据
       evaluateList: [],
       // 弹出层标题
-      title: "",
+      title: '',
       // 是否显示弹出层
       open: false,
       // 查询参数
@@ -185,27 +154,26 @@ export default {
       // 表单参数
       form: {},
       // 表单校验
-      rules: {
-      }
-    };
+      rules: {}
+    }
   },
   created() {
-    this.getList();
+    this.getList()
   },
   methods: {
     /** 查询驾校评价列表 */
     getList() {
-      this.loading = true;
+      this.loading = true
       listEvaluate(this.queryParams).then(response => {
-        this.evaluateList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
+        this.evaluateList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
     },
     // 取消按钮
     cancel() {
-      this.open = false;
-      this.reset();
+      this.open = false
+      this.reset()
     },
     // 表单重置
     reset() {
@@ -222,88 +190,96 @@ export default {
         isAnonymous: null,
         schoolLabelIds: null,
         status: 0
-      };
-      this.resetForm("form");
+      }
+      this.resetForm('form')
     },
     /** 搜索按钮操作 */
     handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
+      this.queryParams.pageNum = 1
+      this.getList()
     },
     /** 重置按钮操作 */
     resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
+      this.resetForm('queryForm')
+      this.handleQuery()
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
       this.ids = selection.map(item => item.id)
-      this.single = selection.length!==1
+      this.single = selection.length !== 1
       this.multiple = !selection.length
     },
     /** 新增按钮操作 */
     handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加驾校评价";
+      this.reset()
+      this.open = true
+      this.title = '添加驾校评价'
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
-      this.reset();
+      this.reset()
       const id = row.id || this.ids
       getEvaluate(id).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改驾校评价";
-      });
+        this.form = response.data
+        this.open = true
+        this.title = '修改驾校评价'
+      })
     },
     /** 提交按钮 */
     submitForm() {
-      this.$refs["form"].validate(valid => {
+      this.$refs['form'].validate(valid => {
         if (valid) {
           if (this.form.id != null) {
             updateEvaluate(this.form).then(response => {
-              this.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
+              this.msgSuccess('修改成功')
+              this.open = false
+              this.getList()
+            })
           } else {
             addEvaluate(this.form).then(response => {
-              this.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
+              this.msgSuccess('新增成功')
+              this.open = false
+              this.getList()
+            })
           }
         }
-      });
+      })
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      const ids = row.id || this.ids;
-      this.$confirm('是否确认删除驾校评价编号为"' + ids + '"的数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return delEvaluate(ids);
-        }).then(() => {
-          this.getList();
-          this.msgSuccess("删除成功");
+      const ids = row.id || this.ids
+      this.$confirm('是否确认删除驾校评价编号为"' + ids + '"的数据项?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(function() {
+          return delEvaluate(ids)
+        })
+        .then(() => {
+          this.getList()
+          this.msgSuccess('删除成功')
         })
     },
     /** 导出按钮操作 */
     handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm('是否确认导出所有驾校评价数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return exportEvaluate(queryParams);
-        }).then(response => {
-          this.download(response.data);
+      const queryParams = this.queryParams
+      this.$confirm('是否确认导出所有驾校评价数据项?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(function() {
+          return exportEvaluate(queryParams)
+        })
+        .then(response => {
+          this.download(response.data)
         })
     }
   }
-};
+}
 </script>
+
+<style lang="scss" scoped>
+@import '@/assets/styles/myscss.scss';
+</style>

+ 113 - 259
src/views/school/info/index.vue

@@ -1,205 +1,86 @@
 <template>
   <div class="app-container">
-    <el-form
-      v-show="showSearch"
-      ref="queryForm"
-      :model="queryParams"
-      :inline="true"
-      label-width="68px"
-    >
+    <el-form v-show="showSearch" ref="queryForm" :model="queryParams" :inline="true" label-width="68px">
       <el-form-item label="驾校名称" prop="name">
-        <el-input
-          v-model="queryParams.name"
-          placeholder="请输入驾校名称(模糊搜索)"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+        <el-input v-model="queryParams.name" placeholder="请输入驾校名称(模糊搜索)" clearable size="small" @keyup.enter.native="handleQuery" />
       </el-form-item>
-      <el-form-item
-        label="经营负责人"
-        prop="responsiblePerson"
-        label-width="90px"
-      >
-        <el-input
-          v-model="queryParams.responsiblePerson"
-          placeholder="请输入经营负责人"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+      <el-form-item label="经营负责人" prop="responsiblePerson" label-width="90px">
+        <el-input v-model="queryParams.responsiblePerson" placeholder="请输入经营负责人" clearable size="small" @keyup.enter.native="handleQuery" />
       </el-form-item>
 
       <el-form-item label="驾校电话" prop="tel">
-        <el-input
-          v-model="queryParams.tel"
-          placeholder="请输入驾校电话"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+        <el-input v-model="queryParams.tel" placeholder="请输入驾校电话" clearable size="small" @keyup.enter.native="handleQuery" />
+      </el-form-item>
+
+      <el-form-item label="状态" prop="removed">
+        <el-select v-model="queryParams.removed" placeholder="请选择状态" clearable :style="{ width: '100%' }">
+          <el-option
+            v-for="(item, index) in $store.getters.dictObj('data_status_query').option"
+            :key="index"
+            :label="item.dictLabel"
+            :value="item.dictValue"
+            :disabled="item.disabled"
+          ></el-option>
+        </el-select>
       </el-form-item>
 
       <el-form-item>
-        <el-button
-          type="cyan"
-          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="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
       </el-form-item>
     </el-form>
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
-        <el-button
-          v-hasPermi="['school:info:add']"
-          type="primary"
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-        >新增</el-button>
+        <el-button v-hasPermi="['school:info:add']" type="primary" icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          v-hasPermi="['school:info:edit']"
-          type="success"
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-        >修改</el-button>
+        <el-button v-hasPermi="['school:info:edit']" type="success" icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
+          >修改</el-button
+        >
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          v-hasPermi="['school:info:remove']"
-          type="danger"
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-        >删除</el-button>
+        <el-button v-hasPermi="['school:info:remove']" type="danger" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
+          >删除</el-button
+        >
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          v-hasPermi="['school:info:export']"
-          type="warning"
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-        >导出</el-button>
+        <el-button v-hasPermi="['school:info:export']" type="warning" icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
       </el-col>
       <right-toolbar :show-search.sync="showSearch" @queryTable="getList" />
     </el-row>
 
-    <el-table
-      v-loading="loading"
-      :data="infoList"
-      @selection-change="handleSelectionChange"
-      class="table"
-      height="calc(100vh - 300px)"
-    >
+    <el-table v-loading="loading" :data="infoList" class="table" height="calc(100vh - 300px)" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column
-        label="驾校全国统一编号"
-        align="center"
-        prop="inscode"
-        width="180"
-      />
-      <el-table-column
-        label="驾校名称"
-        align="center"
-        prop="name"
-        width="350"
-      />
-      <el-table-column
-        label="经营负责人"
-        align="center"
-        prop="responsiblePerson"
-        width="100"
-      />
-      <el-table-column
-        label="驾校地址"
-        align="center"
-        prop="address"
-        width="350"
-      />
+      <el-table-column label="ID" align="center" prop="id" width="50" />
+      <el-table-column label="驾校全国统一编号" align="center" prop="inscode" width="180" />
+      <el-table-column label="驾校名称" align="center" prop="name" width="350" />
+      <el-table-column label="经营负责人" align="center" prop="responsiblePerson" width="100" />
+      <el-table-column label="驾校地址" align="center" prop="address" width="350" />
 
       <el-table-column label="驾校电话" align="center" prop="tel" width="120" />
 
-      <el-table-column
-        label="添加时间"
-        align="center"
-        prop="registrationDate"
-        width="120"
-      >
+      <el-table-column label="添加时间" align="center" prop="registrationDate" width="120">
         <template slot-scope="scope">
-          <span>{{
-            parseTime(scope.row.registrationDate, '{y}-{m}-{d}')
-          }}</span>
+          <span>{{ parseTime(scope.row.registrationDate, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column
-        label="操作"
-        align="center"
-        class-name="small-padding fixed-width"
-        min-width="200"
-        fixed='right'
-      >
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" min-width="200" fixed="right">
         <template slot-scope="scope">
-          <el-button
-            v-hasPermi="['school:info:edit']"
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleDetail(scope.row)"
-          >详情</el-button>
-          <el-button
-            v-hasPermi="['school:info:edit']"
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-          >修改</el-button>
-          <el-button
-            v-hasPermi="['school:info:remove']"
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-          >删除</el-button>
+          <el-button v-hasPermi="['school:info:edit']" size="mini" type="text" icon="el-icon-edit" @click="handleDetail(scope.row)">详情</el-button>
+          <el-button v-hasPermi="['school:info:edit']" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改</el-button>
+          <el-button v-hasPermi="['school:info:remove']" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
+            >删除</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="1000px"
-      append-to-body
-    >
-      <el-form
-        ref="form"
-        :model="form"
-        :rules="rules"
-        label-width="80px"
-        :inline="true"
-        class="dialog"
-      >
+    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px" :inline="true" class="dialog">
         <div class="top">
           <div class="log">基础信息</div>
           <el-form-item label="驾校名称" prop="name">
@@ -209,10 +90,7 @@
             <el-input v-model="form.tel" placeholder="请输入驾校电话" />
           </el-form-item>
           <el-form-item label="所在区域" prop="areaName">
-            <el-input
-              v-model="form.areaName"
-              placeholder="请输入行政区划名称"
-            />
+            <el-input v-model="form.areaName" placeholder="请输入行政区划名称" />
           </el-form-item>
           <el-form-item label="详细地址" prop="address">
             <el-input v-model="form.address" placeholder="请输入驾校地址" />
@@ -221,33 +99,23 @@
             <el-input v-model="form.wechar" placeholder="请输入驾校微信号" />
           </el-form-item>
           <el-form-item label="QQ" prop="wechar">
-            <el-input v-model="form.wechar" placeholder="请输入驾校微信号" />
+            <el-input v-model="form.qq" placeholder="请输入驾校QQ" />
           </el-form-item>
         </div>
 
         <div class="center">
           <div class="log">详细信息</div>
-          <div class="item2">
+          <div class="item">
             <div class="left">
-              <el-form-item label="公司LOGO" prop="sname" label-width="90px">
-                <!-- <img src="form.sname" width="80px" height="80px"> -->
-                <!-- <el-image :src="form.sname" style="width: 100px; height: 100px">
-                  <div slot="error" class="image-slot">
-                    <i class="el-icon-picture-outline" />
-                  </div>
-                </el-image> -->
+              <el-form-item label="公司LOGO" prop="imageUrl" label-width="90px">
                 <el-upload
                   class="avatar-uploader"
-                  action="https://jsonplaceholder.typicode.com/posts/"
+                  action="/hzgzpt-admin/open-api/test/fileupload"
                   :show-file-list="false"
                   :on-success="handleAvatarSuccess"
                   :before-upload="beforeAvatarUpload"
                 >
-                  <img
-                    v-if="form.imageUrl"
-                    :src="form.imageUrl"
-                    class="avatar"
-                  >
+                  <img v-if="imageUrl" :src="imageUrl" class="avatar" />
                   <i v-else class="el-icon-plus avatar-uploader-icon" />
                 </el-upload>
               </el-form-item>
@@ -255,40 +123,20 @@
 
             <div class="right">
               <el-form-item label="负责人" prop="responsiblePerson">
-                <el-input
-                  v-model="form.responsiblePerson"
-                  placeholder="请输入经营负责人"
-                />
+                <el-input v-model="form.responsiblePerson" placeholder="请输入经营负责人" />
               </el-form-item>
-              <el-form-item
-                label="负责人电话"
-                prop="responsiblePerson"
-                label-width="90px"
-              >
-                <el-input
-                  v-model="form.responsiblePerson"
-                  placeholder="请输入经营负责人"
-                />
+              <el-form-item label="负责人电话" prop="tel" label-width="90px">
+                <el-input v-model="form.tel" placeholder="请输入经营电话" />
               </el-form-item>
               <el-form-item label="公司评级" prop="credibilityScore">
-                <el-input
-                  v-model="form.credibilityScore"
-                  placeholder="请输入当前信用得分"
-                />
+                <el-input v-model="form.credibilityScore" placeholder="请输入当前信用得分" />
               </el-form-item>
-              <el-form-item
-                label="公司传真"
-                prop="responsiblePerson"
-                label-width="90px"
-              >
-                <el-input
-                  v-model="form.responsiblePerson"
-                  placeholder="请输入经营负责人"
-                />
+              <el-form-item label="公司传真" prop="tel" label-width="90px">
+                <el-input v-model="form.tel" placeholder="请输入公司传真" />
               </el-form-item>
-              <el-form-item label="公司介绍" prop="pxcx" class="Introduction">
+              <el-form-item label="公司介绍" prop="tel" class="Introduction">
                 <el-input
-                  v-model="form.pxcx"
+                  v-model="form.tel"
                   type="textarea"
                   placeholder="请输入内容"
                   :autosize="{ minRows: 3, maxRows: 4 }"
@@ -302,32 +150,19 @@
 
         <div class="bottom">
           <div class="log">财务信息</div>
-          <el-form-item label="企业税号" prop="responsiblePerson">
-            <el-input
-              v-model="form.responsiblePerson"
-              placeholder="请输入经营负责人"
-            />
+          <el-form-item label="企业税号" prop="tel">
+            <el-input v-model="form.tel" placeholder="请输入经营负责人" />
           </el-form-item>
-          <el-form-item label="开户银行" prop="responsiblePerson">
-            <el-input
-              v-model="form.responsiblePerson"
-              placeholder="请输入经营负责人"
-            />
+          <el-form-item label="开户银行" prop="tel">
+            <el-input v-model="form.tel" placeholder="请输入经营负责人" />
           </el-form-item>
-          <el-form-item label="银行账号" prop="credibilityScore">
-            <el-input
-              v-model="form.credibilityScore"
-              placeholder="请输入当前信用得分"
-            />
+          <el-form-item label="银行账号" prop="tel">
+            <el-input v-model="form.tel" placeholder="请输入当前信用得分" />
           </el-form-item>
         </div>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button
-          v-if="submitFlag"
-          type="primary"
-          @click="submitForm"
-        >确 定</el-button>
+        <el-button v-if="submitFlag" type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
@@ -335,14 +170,7 @@
 </template>
 
 <script>
-import {
-  listInfo,
-  getInfo,
-  delInfo,
-  addInfo,
-  updateInfo,
-  exportInfo
-} from '@/api/school/info'
+import { listInfo, getInfo, delInfo, addInfo, updateInfo, exportInfo } from '@/api/school/info'
 import myamap from '@/components/Amap'
 
 export default {
@@ -352,6 +180,13 @@ export default {
   },
   data() {
     return {
+      //字典
+      dict: {
+        dictArr: [
+          // 收费方式字典
+          { name: 'data_status_query', type: 1 },
+        ]
+      },
       // 详情确定按钮隐藏
       submitFlag: false,
       // 遮罩层
@@ -408,7 +243,9 @@ export default {
       // 表单参数
       form: {},
       // 表单校验
-      rules: {}
+      rules: {},
+      // 图片数据对象
+      imageUrl: null
     }
   },
   created() {
@@ -418,11 +255,11 @@ export default {
     // 上传方法
     handleAvatarSuccess(res, file) {
       this.imageUrl = URL.createObjectURL(file.raw)
+      this.form.imageUrl = URL.createObjectURL(file.raw)
     },
     beforeAvatarUpload(file) {
       const isJPG = file.type === 'image/jpeg'
       const isLt2M = file.size / 1024 / 1024 < 2
-
       if (!isJPG) {
         this.$message.error('上传头像图片只能是 JPG 格式!')
       }
@@ -448,6 +285,7 @@ export default {
     // 表单重置
     reset() {
       this.form = {
+        id: null,
         inscode: null,
         name: null,
         sname: null,
@@ -492,7 +330,7 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.inscode)
+      this.ids = selection.map(item => item.id)
       this.single = selection.length !== 1
       this.multiple = !selection.length
     },
@@ -505,7 +343,8 @@ export default {
     /** 详情按钮操作 */
     handleDetail(row) {
       this.reset()
-      const inscode = row.inscode || this.ids
+      this.form.imageUrl = null
+      const inscode = row.id || this.ids
       getInfo(inscode).then(response => {
         this.form = response.data
         this.open = true
@@ -516,9 +355,11 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset()
-      const inscode = row.inscode || this.ids
+      const inscode = row.id || this.ids
       getInfo(inscode).then(response => {
         this.form = response.data
+        this.form.id = inscode
+        this.form.imageUrl = null
         this.open = true
         this.title = '修改驾校'
         this.submitFlag = true
@@ -528,7 +369,7 @@ export default {
     submitForm() {
       this.$refs['form'].validate(valid => {
         if (valid) {
-          if (this.form.inscode != null) {
+          if (this.form.id != null) {
             updateInfo(this.form).then(response => {
               this.msgSuccess('修改成功')
               this.open = false
@@ -546,16 +387,12 @@ export default {
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      const inscodes = row.inscode || this.ids
-      this.$confirm(
-        '是否确认删除驾校编号为"' + inscodes + '"的数据项?',
-        '警告',
-        {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          type: 'warning'
-        }
-      )
+      const inscodes = row.id || this.ids
+      this.$confirm('是否确认删除ID为"' + inscodes + '"的数据项?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
         .then(function() {
           return delInfo(inscodes)
         })
@@ -584,10 +421,6 @@ export default {
 </script>
 
 <style lang="scss" scoped>
-// .table{
-//   height:calc(100vh - 300px);
-//   // overflow: auto;
-// }
 /deep/ .image-slot {
   width: 100%;
   height: 100%;
@@ -614,7 +447,7 @@ export default {
     }
   }
   .center {
-    .item2 {
+    .item {
       width: 100%;
       display: flex;
       justify-content: space-between;
@@ -625,6 +458,27 @@ export default {
           flex-direction: column;
           align-items: center;
         }
+        .avatar-uploader {
+          width: 180px;
+          height: 180px;
+          background-color: #ccc;
+          /deep/ .el-upload {
+            height: 100%;
+          }
+          .avatar {
+            width: 100%;
+            height: 100%;
+            object-fit: contain;
+          }
+          .avatar-uploader-icon {
+            position: absolute;
+            left: 50%;
+            top: 50%;
+            transform: translate(-50%, -50%);
+            font-size: 50px;
+            color: #fff;
+          }
+        }
       }
       .right {
         width: 64%;

+ 184 - 194
src/views/school/region/index.vue

@@ -1,23 +1,8 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="驾校全国统一编号" prop="inscode" label-width="130px">
-        <el-input
-          v-model="queryParams.inscode"
-          placeholder="请输入驾校全国统一编号"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
+    <el-form v-show="showSearch" ref="queryForm" :model="queryParams" :inline="true" label-width="68px">
       <el-form-item label="教学区域名称" prop="name" label-width="100px">
-        <el-input
-          v-model="queryParams.name"
-          placeholder="请输入教学区域名称"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+        <el-input v-model="queryParams.name" placeholder="请输入教学区域名称" clearable size="small" @keyup.enter.native="handleQuery" />
       </el-form-item>
       <el-form-item>
         <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -27,144 +12,84 @@
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
-        <el-button
-          type="primary"
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['school:region:add']"
-        >新增</el-button>
+        <el-button v-hasPermi="['school:region:add']" type="primary" icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="success"
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['school:region:edit']"
-        >修改</el-button>
+        <el-button v-hasPermi="['school:region:edit']" type="success" icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
+          >修改</el-button
+        >
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="danger"
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['school:region:remove']"
-        >删除</el-button>
+        <el-button v-hasPermi="['school:region:remove']" type="danger" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
+          >删除</el-button
+        >
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="warning"
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['school:region:export']"
-        >导出</el-button>
+        <el-button v-hasPermi="['school:region:export']" type="warning" icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
       </el-col>
-	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <right-toolbar :show-search.sync="showSearch" @queryTable="getList" />
     </el-row>
 
     <el-table v-loading="loading" :data="regionList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="ID" align="center" prop="id" />
       <el-table-column label="教学区域名称" align="center" prop="name" />
-      <el-table-column label="教学区域类型 1:第二部分;2:第三部分" align="center" prop="type" />
-      <el-table-column label="审核状态: 0:待审核 1:同意启用 2:不同意启用" align="center" prop="flag" />
-      <el-table-column label="经度" align="center" prop="poiLon" />
-      <el-table-column label="纬度" align="center" prop="poiLat" />
+      <el-table-column label="教学区域类型" align="center" prop="type" :formatter="$store.getters.dictObj('school_region_type').formatter" />
+      <el-table-column label="审核状态" align="center" prop="flag" :formatter="$store.getters.dictObj('school_region_status').formatter" />
       <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="['school:region:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['school:region:remove']"
-          >删除</el-button>
+          <el-button v-hasPermi="['school:region:edit']" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">详情</el-button>
+          <el-button v-hasPermi="['school:region:edit']" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改</el-button>
+          <el-button v-hasPermi="['school:region:remove']" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
+            >删除</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-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="驾校全国统一编号" prop="inscode">
-          <el-input v-model="form.inscode" placeholder="请输入驾校全国统一编号" />
-        </el-form-item>
-        <el-form-item label="教学区域编号 计时平台顺序编号" prop="seq">
-          <el-input v-model="form.seq" placeholder="请输入教学区域编号 计时平台顺序编号" />
-        </el-form-item>
-        <el-form-item label="教学区域名称" prop="name">
-          <el-input v-model="form.name" placeholder="请输入教学区域名称" />
-        </el-form-item>
-        <el-form-item label="教学区域地址" prop="address">
-          <el-input v-model="form.address" placeholder="请输入教学区域地址" />
-        </el-form-item>
-        <el-form-item label="教学区域面积" prop="area">
-          <el-input v-model="form.area" placeholder="请输入教学区域面积" />
-        </el-form-item>
-        <el-form-item label="教学区域类型 1:第二部分;2:第三部分" prop="type">
-          <el-select v-model="form.type" placeholder="请选择教学区域类型 1:第二部分;2:第三部分">
-            <el-option label="请选择字典生成" value="" />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="培训车型" prop="vehicletype">
-          <el-select v-model="form.vehicletype" placeholder="请选择培训车型">
-            <el-option label="请选择字典生成" value="" />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="电子围栏" prop="polygon">
-          <el-input v-model="form.polygon" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-        <el-form-item label="可容纳车辆数" prop="totalvehnum">
-          <el-input v-model="form.totalvehnum" placeholder="请输入可容纳车辆数" />
-        </el-form-item>
-        <el-form-item label="已投放车辆数" prop="curvehnum">
-          <el-input v-model="form.curvehnum" placeholder="请输入已投放车辆数" />
-        </el-form-item>
-        <el-form-item label="备案状态: 0:未备案 1:已备案">
-          <el-radio-group v-model="form.status">
-            <el-radio label="1">请选择字典生成</el-radio>
-          </el-radio-group>
-        </el-form-item>
-        <el-form-item label="备案状态: 0:未备案 1:已备案" prop="auditDate">
-          <el-date-picker clearable size="small" style="width: 200px"
-            v-model="form.auditDate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="选择备案状态: 0:未备案 1:已备案">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item label="审核状态: 0:待审核 1:同意启用 2:不同意启用" prop="flag">
-          <el-input v-model="form.flag" placeholder="请输入审核状态: 0:待审核 1:同意启用 2:不同意启用" />
-        </el-form-item>
-        <el-form-item label="区县编号" prop="areaCode">
-          <el-input v-model="form.areaCode" placeholder="请输入区县编号" />
-        </el-form-item>
-        <el-form-item label="经度" prop="poiLon">
-          <el-input v-model="form.poiLon" placeholder="请输入经度" />
-        </el-form-item>
-        <el-form-item label="纬度" prop="poiLat">
-          <el-input v-model="form.poiLat" placeholder="请输入纬度" />
-        </el-form-item>
+    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
+      <el-form ref="elForm" :model="form" :rules="rules" size="medium" label-width="100px">
+        <el-row type="flex" justify="start" align="middle" :gutter="24">
+          <el-col :span="12">
+            <el-row :gutter="15">
+              <el-form-item label="教学点名" prop="name">
+                <el-input v-model="form.name" placeholder="请输入教学点名" clearable :style="{ width: '100%' }" />
+              </el-form-item>
+              <el-form-item label="教学类型" prop="field118">
+                <el-select v-model="form.type" placeholder="请选择教学类型" clearable size="small">
+                  <el-option v-for="dict in $store.getters.dictObj('school_region_type').option" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
+                </el-select>
+              </el-form-item>
+              <el-form-item label="行政区域" prop="field119">
+                <el-input v-model="form.field119" placeholder="请输入行政区域" clearable :style="{ width: '100%' }" />
+              </el-form-item>
+              <el-form-item label="教学地址" prop="address">
+                <el-input v-model="form.address" placeholder="请输入教学地址" clearable :style="{ width: '100%' }" />
+              </el-form-item>
+            </el-row>
+          </el-col>
+          <el-col :span="12">
+            <el-row :gutter="15">
+              <el-form-item label="培训车型" prop="field122">
+                <el-checkbox-group v-model="formarr" size="medium">
+                  <el-checkbox v-for="(item, index) in $store.getters.dictObj('school_pxcx').option" :key="index" :label="item.dictLabel" :disabled="item.disabled">{{
+                    item.dictLabel
+                  }}</el-checkbox>
+                </el-checkbox-group>
+              </el-form-item>
+            </el-row>
+          </el-col>
+        </el-row>
+        <el-row :gutter="15">
+          <el-form-item label="地图定位" prop="field120">
+            <div class="amapbox">
+              <myamap :center="[form.poiLon, form.poiLat]" :radius="Math.sqrt(form.area / 3.14)" />
+            </div>
+          </el-form-item>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -175,12 +100,59 @@
 </template>
 
 <script>
-import { listRegion, getRegion, delRegion, addRegion, updateRegion, exportRegion } from "@/api/school/region";
+import { listRegion, getRegion, delRegion, addRegion, updateRegion, exportRegion } from '@/api/school/region'
+import myamap from '@/components/Amap'
 
 export default {
-  name: "Region",
+  name: 'Region',
+  components: {
+    myamap
+  },
   data() {
     return {
+      // 正则
+      rules: {
+        field117: [
+          {
+            required: true,
+            message: '请输入教学点名',
+            trigger: 'blur'
+          }
+        ],
+        field118: [
+          {
+            required: true,
+            message: '请输入教学类型',
+            trigger: 'blur'
+          }
+        ],
+        field119: [
+          {
+            required: true,
+            message: '请输入行政区域',
+            trigger: 'blur'
+          }
+        ],
+        field120: [
+          {
+            required: true,
+            message: '请输入教学地址',
+            trigger: 'blur'
+          }
+        ],
+        field122: []
+      },
+      //字典
+      dict: {
+        dictArr: [
+          // 准驾类型字典
+          { name: 'school_pxcx', type: 1 },
+          // 教学区域类型字典
+          { name: 'school_region_type', type: 1 },
+          // 审核状态字典
+          { name: 'school_region_status', type: 1 }
+        ]
+      },
       // 遮罩层
       loading: true,
       // 选中数组
@@ -196,7 +168,7 @@ export default {
       // 场地管理表格数据
       regionList: [],
       // 弹出层标题
-      title: "",
+      title: '',
       // 是否显示弹出层
       open: false,
       // 查询参数
@@ -218,32 +190,38 @@ export default {
         flag: null,
         areaCode: null,
         poiLon: null,
-        poiLat: null,
+        poiLat: null
       },
       // 表单参数
       form: {},
+      // 新表单
+      formarr: [],
       // 表单校验
-      rules: {
-      }
-    };
+      rules: {}
+    }
+  },
+  watch: {
+    formarr(val) {
+      this.form.vehicletype = val.join()
+    }
   },
   created() {
-    this.getList();
+    this.getList()
   },
   methods: {
     /** 查询场地管理列表 */
     getList() {
-      this.loading = true;
+      this.loading = true
       listRegion(this.queryParams).then(response => {
-        this.regionList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
+        this.regionList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
     },
     // 取消按钮
     cancel() {
-      this.open = false;
-      this.reset();
+      this.open = false
+      this.reset()
     },
     // 表单重置
     reset() {
@@ -267,88 +245,100 @@ export default {
         poiLat: null,
         createTime: null,
         updateTime: null
-      };
-      this.resetForm("form");
+      }
+      this.resetForm('form')
     },
     /** 搜索按钮操作 */
     handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
+      this.queryParams.pageNum = 1
+      this.getList()
     },
     /** 重置按钮操作 */
     resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
+      this.resetForm('queryForm')
+      this.handleQuery()
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
       this.ids = selection.map(item => item.id)
-      this.single = selection.length!==1
+      this.single = selection.length !== 1
       this.multiple = !selection.length
     },
     /** 新增按钮操作 */
     handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加场地管理";
+      this.reset()
+      this.open = true
+      this.title = '添加场地管理'
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
-      this.reset();
+      this.reset()
       const id = row.id || this.ids
       getRegion(id).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改场地管理";
-      });
+        this.formarr = response.data.vehicletype.split(',')
+        this.form = response.data
+        this.open = true
+        this.title = '修改场地管理'
+      })
     },
     /** 提交按钮 */
     submitForm() {
-      this.$refs["form"].validate(valid => {
+      this.$refs['form'].validate(valid => {
         if (valid) {
           if (this.form.id != null) {
             updateRegion(this.form).then(response => {
-              this.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
+              this.msgSuccess('修改成功')
+              this.open = false
+              this.getList()
+            })
           } else {
             addRegion(this.form).then(response => {
-              this.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
+              this.msgSuccess('新增成功')
+              this.open = false
+              this.getList()
+            })
           }
         }
-      });
+      })
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      const ids = row.id || this.ids;
-      this.$confirm('是否确认删除场地管理编号为"' + ids + '"的数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return delRegion(ids);
-        }).then(() => {
-          this.getList();
-          this.msgSuccess("删除成功");
+      const ids = row.id || this.ids
+      this.$confirm('是否确认删除场地管理编号为"' + ids + '"的数据项?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(function() {
+          return delRegion(ids)
+        })
+        .then(() => {
+          this.getList()
+          this.msgSuccess('删除成功')
         })
     },
     /** 导出按钮操作 */
     handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm('是否确认导出所有场地管理数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return exportRegion(queryParams);
-        }).then(response => {
-          this.download(response.data);
+      const queryParams = this.queryParams
+      this.$confirm('是否确认导出所有场地管理数据项?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(function() {
+          return exportRegion(queryParams)
+        })
+        .then(response => {
+          this.download(response.data)
         })
     }
   }
-};
+}
 </script>
+
+<style lang="scss" scoped>
+.amapbox {
+  width: 98%;
+  height: 300px;
+}
+</style>

+ 1 - 1
src/views/system/user/index.vue

@@ -589,7 +589,7 @@ export default {
           }
         ]
         response.rows.map((val,index)=>{
-          response.rows[index].id=val.inscode
+          response.rows[index].id=val.id
           response.rows[index].label=val.sname
         })
          this.deptOptions[0].children = response.rows