From dd53612b39a83880a4b90efec5b500dc52c8a151 Mon Sep 17 00:00:00 2001 From: qsh <> Date: Tue, 29 Aug 2023 10:34:48 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/index.html | 14 +- .../question/components/QuestionForm.vue | 32 ++-- src/views/question/index.vue | 42 +++-- src/views/sch/place/index.vue | 22 +-- .../zs/clue/ClueForm/components/MapDialog.vue | 48 +++--- .../zs/clue/components/ClueFormDialog.vue | 27 +-- src/views/zs/sign/index.vue | 157 +++++++++--------- vue.config.js | 15 +- 8 files changed, 188 insertions(+), 169 deletions(-) diff --git a/public/index.html b/public/index.html index 4bbefa0..523cd90 100644 --- a/public/index.html +++ b/public/index.html @@ -95,10 +95,12 @@ <script src="/loading/index.js"></script> <script type="text/javascript"> window._AMapSecurityConfig = { - securityJsCode:'420463f2f8c849ab78b9d29548aff7d3', - } -</script> -<script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script> -<script src="https://webapi.amap.com/maps?v=1.4.15&key=ec6b7ebe38f7ff27126f7088d87a9091&plugin=AMap.Autocomplete,AMap.PlaceSearch,AMap.Geocoder,AMap.Scale"></script> -</body> + // securityJsCode: '420463f2f8c849ab78b9d29548aff7d3' + securityJsCode: 'f653df5a2c5f44ae68faaab6f6a6b8ab' + }; + </script> + <script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script> + <!-- <script src="https://webapi.amap.com/maps?v=1.4.15&key=ec6b7ebe38f7ff27126f7088d87a9091&plugin=AMap.Autocomplete,AMap.PlaceSearch,AMap.Geocoder,AMap.Scale"></script> --> + <script src="https://webapi.amap.com/maps?v=1.4.15&key=713d839ff505943b0f18e6df45f3b0dc&plugin=AMap.Autocomplete,AMap.PlaceSearch,AMap.Geocoder,AMap.Scale"></script> + </body> </html> diff --git a/src/views/question/components/QuestionForm.vue b/src/views/question/components/QuestionForm.vue index dfb682c..cd15863 100644 --- a/src/views/question/components/QuestionForm.vue +++ b/src/views/question/components/QuestionForm.vue @@ -5,21 +5,22 @@ <el-row> <el-col :span="24"> <el-form-item label="题库" prop="question"> - <span>{{ dialogForm.question }}</span> + <div>{{ dialogForm.question }}</div> + <img v-if="dialogForm.imageUrl" :src="dialogForm.imageUrl" width="100" alt=""> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="24"> <el-form-item label="选项" prop="question"> - <span v-if="dialogForm.chooseA">a:{{ dialogForm.chooseA }}<span> - <span v-if="dialogForm.chooseB">b:{{ dialogForm.chooseB }} </span> - <span v-if="dialogForm.chooseC">c:{{ dialogForm.chooseC }} </span> - <span v-if="dialogForm.chooseD">d:{{ dialogForm.chooseD }}</span> - <span v-if="dialogForm.chooseE">e:{{ dialogForm.chooseE }}</span> - <span v-if="dialogForm.chooseF">f:{{ dialogForm.chooseF }}</span> - <span v-if="dialogForm.chooseG">g:{{ dialogForm.chooseG }}</span> - </span></span></el-form-item> + <span v-if="dialogForm.chooseA">A:{{ dialogForm.chooseA }}<span> + <span v-if="dialogForm.chooseB">B:{{ dialogForm.chooseB }} </span> + <span v-if="dialogForm.chooseC">C:{{ dialogForm.chooseC }} </span> + <span v-if="dialogForm.chooseD">D:{{ dialogForm.chooseD }}</span> + <span v-if="dialogForm.chooseE">E:{{ dialogForm.chooseE }}</span> + <span v-if="dialogForm.chooseF">F:{{ dialogForm.chooseF }}</span> + <span v-if="dialogForm.chooseG">G:{{ dialogForm.chooseG }}</span> + </span></span></el-form-item> </el-col> </el-row> <el-row> @@ -99,7 +100,7 @@ </div> <span slot="footer" class="dialog-footer"> - <el-button plain @click="(visible=false)">取消</el-button> + <el-button plain @click="(visible = false)">取消</el-button> <el-button v-jclick type="primary" :disabled="!canSubmit" @click="dialogFormSubmit()">确定</el-button> </span> </el-dialog> @@ -109,7 +110,7 @@ import { updateQuestion } from '@/api/question'; export default { - data () { + data() { return { visible: false, canSubmit: true, @@ -130,7 +131,7 @@ export default { }; }, methods: { - init (info = undefined) { + init(info = undefined) { // debugger this.visible = true; this.$nextTick(() => { @@ -141,7 +142,7 @@ export default { } }); }, - resetDialogForm () { + resetDialogForm() { this.dialogForm = { questionId: undefined, isVip: 0, @@ -153,16 +154,17 @@ export default { examKeys: undefined }; }, - closeDialog () { + closeDialog() { this.$emit('update:dialogVisible', false); }, // 表单提交 - dialogFormSubmit () { + dialogFormSubmit() { this.$refs.dialogForm.validate((valid) => { if (valid) { updateQuestion(this.dialogForm).then(response => { if (response.code == 200) { this.$modal.msgSuccess('修改成功'); + this.$emit('update'); // this.visible = true; } }); diff --git a/src/views/question/index.vue b/src/views/question/index.vue index 7560308..8b52fe0 100644 --- a/src/views/question/index.vue +++ b/src/views/question/index.vue @@ -1,6 +1,6 @@ <template> <div class="app-container" style="text-align:center"> - <el-form size="small" :inline="true" label-width="68px"> + <el-form size="small" :inline="true" label-width="68px" @submit.native.prevent> <el-form-item label="题目"> <el-input v-model="queryParams.question" placeholder="请输入题目" clearable style="width:400px" @keyup.enter.native="handleQuery" /> </el-form-item> @@ -15,13 +15,13 @@ <el-table-column label="题目" align="center" prop="question" min-width="140" /> <el-table-column label="选项" align="center" min-width="140"> <template slot-scope="{row}"> - <p v-if="row.chooseA">a:{{ row.chooseA }}</p> - <p v-if="row.chooseB">b:{{ row.chooseB }}</p> - <p v-if="row.chooseC">c:{{ row.chooseC }}</p> - <p v-if="row.chooseD">d:{{ row.chooseD }}</p> - <p v-if="row.chooseE">e:{{ row.chooseE }}</p> - <p v-if="row.chooseF">f:{{ row.chooseF }}</p> - <p v-if="row.chooseG">g:{{ row.chooseG }}</p> + <p v-if="row.chooseA">A:{{ row.chooseA }}</p> + <p v-if="row.chooseB">B:{{ row.chooseB }}</p> + <p v-if="row.chooseC">C:{{ row.chooseC }}</p> + <p v-if="row.chooseD">D:{{ row.chooseD }}</p> + <p v-if="row.chooseE">E:{{ row.chooseE }}</p> + <p v-if="row.chooseF">F:{{ row.chooseF }}</p> + <p v-if="row.chooseG">G:{{ row.chooseG }}</p> </template> </el-table-column> <el-table-column label="答案" align="center" prop="trueAnswer" min-width="100" /> @@ -31,7 +31,11 @@ <p v-if="row.subject == 4">科四</p> </template> </el-table-column> - + <el-table-column label="是否新规" align="center" min-width="100"> + <template slot-scope="{row}"> + {{ row.isNew ? '是' : '' }} + </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-download" @click="handleEdit(scope.row)">编辑</el-button> @@ -40,7 +44,7 @@ </el-table> <!-- <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" /> --> - <QuestionForm v-if="dialogVisible" ref="dialogForm" :dialog-visible="dialogVisible" @refreshDataList="getList" /> + <QuestionForm v-if="dialogVisible" ref="dialogForm" :dialog-visible="dialogVisible" @update="getList" /> </div> </template> @@ -53,7 +57,7 @@ export default { components: { QuestionForm }, - data () { + data() { return { // 遮罩层 loading: false, @@ -67,12 +71,12 @@ export default { dialogVisible: false }; }, - created () { + created() { // this.getList(); }, methods: { /** 查询文件列表 */ - getList () { + getList() { this.loading = true; searchQuestion(this.queryParams).then(response => { this.tableList = response.data; @@ -82,15 +86,19 @@ export default { }, /** 搜索按钮操作 */ - handleQuery () { - this.getList(); + handleQuery() { + if (this.queryParams.question) { + this.getList(); + } else { + this.$modal.msgWarning('请输入题目'); + } }, /** 重置按钮操作 */ - resetQuery () { + resetQuery() { this.queryParams.question = ''; this.handleQuery(); }, - handleEdit (item) { + handleEdit(item) { this.dialogVisible = true; this.$nextTick(() => { this.$refs.dialogForm.init(item); diff --git a/src/views/sch/place/index.vue b/src/views/sch/place/index.vue index afeeb37..987ffa6 100644 --- a/src/views/sch/place/index.vue +++ b/src/views/sch/place/index.vue @@ -5,12 +5,12 @@ <el-input id="search" v-model="searchBody" class="search-body" placeholder="请输入..." @keyup.enter.native="submitSearch"> <el-button slot="append" icon="el-icon-search" @click="submitSearch" /> </el-input> - <div class="asider" :class="showSchool ? '':'hidden-school'"> - <el-card class="box-card" :body-style="{ flex: 1,'overflow-y': 'scroll', padding: 0 }"> + <div class="asider" :class="showSchool ? '' : 'hidden-school'"> + <el-card class="box-card" :body-style="{ flex: 1, 'overflow-y': 'scroll', padding: 0 }"> <div slot="header" class="clearfix"> <div class="map-card-title">驾校列表</div> </div> - <div v-for="school in schoolList" :key="school.schoolId" style="margin:10px;" :class="currentdeptId == school.schoolId?'actived-school':''"> + <div v-for="school in schoolList" :key="school.schoolId" style="margin:10px;" :class="currentdeptId == school.schoolId ? 'actived-school' : ''"> <el-card :body-style="{ padding: '10px' }"> <div slot="header" class="clearfix"> <div class="map-card-title">{{ school.schoolName }}</div> @@ -94,7 +94,7 @@ <el-radio v-model="placeForm.recommend" :label="false">否</el-radio> </el-form-item> <el-form-item label="备注" prop="remark"> - <el-input v-model="placeForm.remark" placeholder="输入备注" type="textarea" :autosize="{ minRows: 2, maxRows: 4}" /> + <el-input v-model="placeForm.remark" placeholder="输入备注" type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" /> </el-form-item> <el-form-item style="text-align:right;"> <el-button v-hasPermi="['sch:place:edit']" type="primary" @click="onSubmit">保存</el-button> @@ -102,7 +102,7 @@ </el-form-item> </el-form> </el-card> - <el-card :class="placeListDialogShow ? '':'hidden-place-list'" class="place-list-dialog" :style="{ right: showSchool ? '300px' : '0', top : fullScreenPlaceList?'0px':'420px' }" :body-style="{ padding: '10px', height: 'calc(100% - 52px)' }"> + <el-card :class="placeListDialogShow ? '' : 'hidden-place-list'" class="place-list-dialog" :style="{ right: showSchool ? '300px' : '0', top: fullScreenPlaceList ? '0px' : '420px' }" :body-style="{ padding: '10px', height: 'calc(100% - 52px)' }"> <div slot="header" class="clearfix"> <div class="map-card-title"> {{ placeListDialogTitle }} @@ -112,7 +112,7 @@ <el-button icon="el-icon-full-screen" class="add-icon" @click="fullScreenPlaceList = !fullScreenPlaceList" /> </el-tooltip> <el-tooltip content="关闭" placement="top" effect="dark"> - <el-button icon="el-icon-close" class="add-icon" @click="() => { placeListDialogShow = false;fullScreenPlaceList = false }" /> + <el-button icon="el-icon-close" class="add-icon" @click="() => { placeListDialogShow = false; fullScreenPlaceList = false }" /> </el-tooltip> </div> <el-table :data="placeTableData" border stripe class="place-table-list" height="100%"> @@ -139,8 +139,8 @@ </el-table> </el-card> - <div v-if="isPointing || isRanging" class="map-tip" :style="{ transform: 'translate3D(' + (tipPostion.x + 15) +'px,' + (tipPostion.y - 10) + 'px, 0)' }">{{ mapHelpText }}</div> - <i v-if="isPointing" class="el-icon-s-flag circle" :style="{ transform: 'translate3D(' + tipPostion.x +'px,' + tipPostion.y + 'px, 0)' }" /> + <div v-if="isPointing || isRanging" class="map-tip" :style="{ transform: 'translate3D(' + (tipPostion.x + 15) + 'px,' + (tipPostion.y - 10) + 'px, 0)' }">{{ mapHelpText }}</div> + <i v-if="isPointing" class="el-icon-s-flag circle" :style="{ transform: 'translate3D(' + tipPostion.x + 'px,' + tipPostion.y + 'px, 0)' }" /> </div> </template> <!-- eslint-disable no-undef --> @@ -281,7 +281,8 @@ export default { }, // 导入地图 importMap() { - const url = 'https://webapi.amap.com/maps?v=1.4.15&key=f2f35d6adc4a16bb879d303cead56237&callback=onLoad'; + // const url = 'https://webapi.amap.com/maps?v=1.4.15&key=f2f35d6adc4a16bb879d303cead56237&callback=onLoad'; + const url = 'https://webapi.amap.com/maps?v=1.4.15&key=0e62be0896c6b8d27d453445f0fb8bc4&callback=onLoad'; var jsapi = document.createElement('script'); jsapi.charset = 'utf-8'; jsapi.src = url; @@ -477,7 +478,7 @@ export default { if (item.placeId) { return updatePlace(item); } else { - return addPlace(item) + return addPlace(item); } }, checkPlaceFormValidate() { @@ -739,6 +740,7 @@ export default { .actived-school { border: 2px solid #409eff !important; } + ::v-deep .el-radio__label { vertical-align: middle; } diff --git a/src/views/zs/clue/ClueForm/components/MapDialog.vue b/src/views/zs/clue/ClueForm/components/MapDialog.vue index 46ad97c..1ef60e2 100644 --- a/src/views/zs/clue/ClueForm/components/MapDialog.vue +++ b/src/views/zs/clue/ClueForm/components/MapDialog.vue @@ -19,11 +19,12 @@ export default { placeSearch: null, currentPoint: undefined, marker: null, - searchBody: undefined - } + searchBody: undefined, + geocoder: null + }; }, beforeDestroy() { - console.log("mapdialog----beforeDestroy") + console.log('mapdialog----beforeDestroy'); this.marker = null; this.placeSearch = null; @@ -31,23 +32,23 @@ export default { this.dialogMap = null; }, mounted() { - console.log("mounted") - this.initData() + console.log('mounted'); + this.initData(); }, created() { - console.log("created") + console.log('created'); }, methods: { initData(point = undefined) { - console.log(point) - this.visible = true + console.log(point); + this.visible = true; // this.searchBody = undefined this.$nextTick(() => { this.resetData(); if (point) { this.currentPoint = point; } - this.initMap() + this.initMap(); }); }, resetData() { @@ -55,10 +56,10 @@ export default { this.dialogMap && this.marker && this.dialogMap.remove(this.marker); this.marker = null; // this.placeSearch = null; - this.searchBody = null + this.searchBody = null; }, initMap() { - console.log("初始化地图") + console.log('初始化地图'); if (!this.dialogMap) { this.dialogMap = new AMap.Map('dialogMap', { zoom: 12, @@ -78,20 +79,19 @@ export default { }); this.dialogMap.addControl(new AMap.Scale()); const auto = new AMap.Autocomplete({ - input: 'search', // 前端搜索框 - }) + input: 'search' // 前端搜索框 + }); this.placeSearch = new AMap.PlaceSearch({ map: this.dialogMap, pageSize: 10, // 单页显示结果条数 pageIndex: 1, // 页码 - autoFitView: true, // 是否自动调整地图视野使绘制的 Marker点都处于视口的可见范围 - }) - AMap.event.addListener(auto, 'select', this.select) + autoFitView: true // 是否自动调整地图视野使绘制的 Marker点都处于视口的可见范围 + }); + AMap.event.addListener(auto, 'select', this.select); this.geocoder = new AMap.Geocoder(); } this.initMapCenter(); - }, // 初始化编辑地图的中心点 initMapCenter() { @@ -127,7 +127,7 @@ export default { } }); }, - //定位地址 + // 定位地址 regeoCode() { this.geocoder.getAddress( [this.currentPoint.lng, this.currentPoint.lat], @@ -141,11 +141,10 @@ export default { }, handleMapSave() { if (this.currentPoint.lat && this.currentPoint.lng) { - //通知父组件 - this.$emit("handleMapDialogPoint", this.currentPoint); + // 通知父组件 + this.$emit('handleMapDialogPoint', this.currentPoint); this.visible = false; this.$emit('update:mapDialogVisible', false); - } else { this.$message.error('请在地图上选择位置后保存!'); } @@ -153,8 +152,8 @@ export default { closeDialog() { this.$emit('update:mapDialogVisible', false); } - }, -} + } +}; </script> <style scoped> @@ -162,10 +161,11 @@ export default { width: 100%; height: 400px; } + .search-body { position: absolute; top: 90px; left: 25px; width: 350px; } -</style> \ No newline at end of file +</style> diff --git a/src/views/zs/clue/components/ClueFormDialog.vue b/src/views/zs/clue/components/ClueFormDialog.vue index 93066a2..61cca40 100644 --- a/src/views/zs/clue/components/ClueFormDialog.vue +++ b/src/views/zs/clue/components/ClueFormDialog.vue @@ -157,7 +157,7 @@ </div> </template> <!-- eslint-disable no-undef --> - <script> +<script> import { getFollowRecord } from '@/api/zs/clue'; import { getClassTypes } from '@/api/tool/common'; import { inputtips, regeo, walking } from '@/api/tool/map'; @@ -452,7 +452,8 @@ export default { // ); if (this.currentPoint.lng && this.currentPoint.lat) { regeo({ - key: 'f2f35d6adc4a16bb879d303cead56237', + // key: 'f2f35d6adc4a16bb879d303cead56237', + key: '0e62be0896c6b8d27d453445f0fb8bc4', location: this.currentPoint.lng + ',' + this.currentPoint.lat }).then((resp) => { if (resp.status === '1') { @@ -512,7 +513,8 @@ export default { async getWalkingDistance(start, end) { if (start && end) { const resp = await walking({ - key: 'f2f35d6adc4a16bb879d303cead56237', + // key: 'f2f35d6adc4a16bb879d303cead56237', + key: '0e62be0896c6b8d27d453445f0fb8bc4', origin: start[0] + ',' + start[1], destination: end[0] + ',' + end[1] }); @@ -554,7 +556,8 @@ export default { async querySearch(queryString, cb) { if (queryString) { const resp = await inputtips({ - key: 'f2f35d6adc4a16bb879d303cead56237', + // key: 'f2f35d6adc4a16bb879d303cead56237', + key: '0e62be0896c6b8d27d453445f0fb8bc4', keywords: queryString }); cb(resp.tips); @@ -577,9 +580,9 @@ export default { } } }; - </script> - - <style lang="scss" scoped> +</script> + +<style lang="scss" scoped> .amap-cavans { width: 100%; height: 600px; @@ -589,6 +592,7 @@ export default { width: 100%; height: 400px; } + .address { position: absolute; left: 30px; @@ -596,6 +600,7 @@ export default { width: 400px; background: #fff; } + .box-card { position: absolute; right: 30px; @@ -613,14 +618,17 @@ export default { .el-divider--horizontal { margin: 6px 0; } + li { padding: 6px; + .name { font-size: 12px; line-height: 16px; text-overflow: ellipsis; overflow: hidden; } + .addr { line-height: 16px; font-size: 10px; @@ -630,6 +638,5 @@ li { .highlighted .addr { color: #ddd; } -} -</style> - \ No newline at end of file +}</style> + diff --git a/src/views/zs/sign/index.vue b/src/views/zs/sign/index.vue index 0b08a01..2715335 100644 --- a/src/views/zs/sign/index.vue +++ b/src/views/zs/sign/index.vue @@ -1,10 +1,10 @@ <template> <div class="app-container"> - <SearchForm v-show="showSearch" ref="SearchForm" @search="_getTableList" :options="options" /> + <SearchForm v-show="showSearch" ref="SearchForm" :options="options" @search="_getTableList" /> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> - <el-button type="primary" icon="el-icon-plus" v-hasPermi="['zs:sign:add']" @click="handleAddAndUpdate(undefined)">新增</el-button> - <el-button v-if="admin == 'true'" type="warning" v-hasPermi="['zs:sign:export']" icon="el-icon-download" size="mini" @click="handleExport">导出</el-button> + <el-button v-hasPermi="['zs:sign:add']" type="primary" icon="el-icon-plus" @click="handleAddAndUpdate(undefined)">新增</el-button> + <el-button v-if="admin == 'true'" v-hasPermi="['zs:sign:export']" type="warning" icon="el-icon-download" size="mini" @click="handleExport">导出</el-button> </el-col> <right-toolbar :show-search.sync="showSearch" :columns="columns" @queryTable="_getTableList" /> </el-row> @@ -15,24 +15,24 @@ <template v-for="item in columns"> <el-table-column v-if="item.visible && item.prop === 'state'" :key="item.prop" :label="item.label" align="center" :width="item.width" :prop="item.prop"> <template slot-scope="{row}"> - <el-button type="success" size="mini" v-if="row.state">全款</el-button> - <el-button type="warning" size="mini" v-else>未全款</el-button> + <el-button v-if="row.state" type="success" size="mini">全款</el-button> + <el-button v-else type="warning" size="mini">未全款</el-button> </template> </el-table-column> <el-table-column v-else-if="item.visible" :key="item.prop" :label="item.label" align="center" :width="item.width" :prop="item.prop" :show-overflow-tooltip="item.overflow" /> </template> <el-table-column align="center" width="100" fixed="right" label="审核状态"> <template slot-scope="{row}"> - <el-button type="danger" size="mini" v-if="row.checkState == 1">待审核</el-button> - <el-button type="success" size="mini" v-else-if="row.checkState == 2">已审核</el-button> - <el-button type="warning" size="mini" v-else-if="row.checkState == 3">驳回</el-button> + <el-button v-if="row.checkState == 1" type="danger" size="mini">待审核</el-button> + <el-button v-else-if="row.checkState == 2" type="success" size="mini">已审核</el-button> + <el-button v-else-if="row.checkState == 3" type="warning" size="mini">驳回</el-button> </template> </el-table-column> <el-table-column label="操作" fixed="right" align="center" width="160"> - <template slot-scope="scope"> - <el-button size="mini" type="text" v-hasPermi="['zs:sign:edit']" v-if="scope.row.signEdit" icon="el-icon-edit" @click="handleAddAndUpdate(scope.row)">修改</el-button> - <el-button size="mini" type="text" v-hasPermi="['zs:sign:check']" v-if="scope.row.checkState == 1 " @click="handleCheck(scope.row)">审核</el-button> - <el-button size="mini" type="text" v-hasPermi="['zs:sign:remove']" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button> + <template slot-scope="{row}"> + <el-button v-show="row.checkState == 0 || row.checkState == 3" v-hasPermi="['zs:sign:edit']" size="mini" type="text" icon="el-icon-edit" @click="handleAddAndUpdate(scope.row)">修改</el-button> + <el-button v-if="row.checkState == 1" v-hasPermi="['zs:sign:check']" size="mini" type="text" @click="handleCheck(scope.row)">审核</el-button> + <el-button v-hasPermi="['zs:sign:remove']" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button> </template> </el-table-column> </el-table> @@ -49,18 +49,15 @@ <UploadDialog v-if="dialog.uploadVisible" /> </div> </template> - - - - <script> -import { getSignList, exportData, deleteSign } from '@/api/zs/sign' -import empApi from '@/api/system/employee' -import CheckDialog from './components/CheckDialog' -import SearchForm from './components/SearchForm.vue' -import SignFormDialog from './components/SignFormDialog.vue' -import { defaultColumns } from './columns.js'; -import UploadDialog from './components/UploadDialog.vue' +<script> +import { getSignList, exportData, deleteSign } from '@/api/zs/sign'; +import empApi from '@/api/system/employee'; +import CheckDialog from './components/CheckDialog'; +import SearchForm from './components/SearchForm.vue'; +import SignFormDialog from './components/SignFormDialog.vue'; +import { defaultColumns } from './columns.js'; +import UploadDialog from './components/UploadDialog.vue'; export default { name: 'Sign', @@ -68,7 +65,7 @@ export default { SearchForm, CheckDialog, SignFormDialog, - UploadDialog, + UploadDialog }, data() { return { @@ -76,7 +73,7 @@ export default { userId: localStorage.getItem('userId'), searchForm: { pageNum: 1, - pageSize: 10, + pageSize: 10 }, loading: false, columns: [], @@ -88,12 +85,12 @@ export default { percentageOptions: [ { value: '驾校已结算', - label: '驾校已结算', + label: '驾校已结算' }, { value: '提成已发放', - label: '提成已发放', - }, + label: '提成已发放' + } ], areaOptions: [], showSearch: true, @@ -109,32 +106,32 @@ export default { moneyStateOptions: [], sourceOptions: [] } - } + }; }, created() { const str = localStorage.getItem(`${this.$route.name}-table-columns`); this.columns = str ? JSON.parse(str) : defaultColumns; - //回款状态 + // 回款状态 this.getDicts('dm_money_state').then((response) => { - this.options.moneyStateOptions = response.data - }) - //s所属区域 + this.options.moneyStateOptions = response.data; + }); + // s所属区域 this.getDicts('dm_area').then((response) => { - this.options.areaOptions = response.data - }) - //s所属区域 + this.options.areaOptions = response.data; + }); + // s所属区域 this.getDicts('dm_source').then((response) => { - this.options.sourceOptions = response.data - }) - this.getSchools() - this._getTableList() - this.getEmployee() + this.options.sourceOptions = response.data; + }); + this.getSchools(); + this._getTableList(); + this.getEmployee(); }, methods: { // 搜索 handleQuery() { - this.searchForm.pageNum = 1 - this._getTableList() + this.searchForm.pageNum = 1; + this._getTableList(); }, _getTableList() { this.loading = true; @@ -142,16 +139,16 @@ export default { const params = { ...this.searchForm, ...tempForm }; getSignList(params).then( (response) => { - this.tableDataList = response.rows - this.total = response.total - this.loading = false + this.tableDataList = response.rows; + this.total = response.total; + this.loading = false; } - ) + ); }, getSchools() { empApi.pageList().then((resp) => { - this.options.schoolOptions = resp.data - }) + this.options.schoolOptions = resp.data; + }); }, /** 导出按钮操作 */ @@ -159,46 +156,46 @@ export default { this.$confirm('是否确认导出所有成交记录项?', '警告', { confirmButtonText: '确定', cancelButtonText: '取消', - type: 'warning', + type: 'warning' }) .then((resp) => { const tempForm = this.$refs.SearchForm?.searchForm || {}; this.download('zs/sign/export', tempForm, `登记信息_${new Date().getTime()}.xlsx`); }) - .catch(function () { }) + .catch(function () { }); }, /** 导入按钮操作 */ handleImport() { - this.upload.title = '成交记录导入' - this.upload.open = true + this.upload.title = '成交记录导入'; + this.upload.open = true; }, /** 查询员工 */ getEmployee() { empApi.getEmployee().then((resp) => { if (resp.code == 200) { - this.options.userOptions = resp.data + this.options.userOptions = resp.data; } - }) + }); }, changeSort(val) { if (val.order) { - this.searchForm.orderName = val.prop + this.searchForm.orderName = val.prop; if (val.order == 'ascending') { - this.searchForm.orderType = 'asc' + this.searchForm.orderType = 'asc'; } else { - this.searchForm.orderType = 'desc' + this.searchForm.orderType = 'desc'; } } else { - this.searchForm.orderName = '' - this.searchForm.orderType = '' + this.searchForm.orderName = ''; + this.searchForm.orderType = ''; } - this.getPageList() + this.getPageList(); }, handleAddAndUpdate(item) { - this.dialog.signVisible = true + this.dialog.signVisible = true; this.$nextTick(() => { - this.$refs.signDialogForm.init(item) - }) + this.$refs.signDialogForm.init(item); + }); }, handleDelete(item) { this.$confirm( @@ -207,33 +204,33 @@ export default { { confirmButtonText: '确定', cancelButtonText: '取消', - type: 'warning', + type: 'warning' } ) .then((res) => { deleteSign({ signId: item.signId }).then((resp) => { if (resp.code == 200) { - this.$message.success('删除成功') - this.getPageList() + this.$message.success('删除成功'); + this.getPageList(); } else { - //this.$message.error("删除失败:" + resp.msg); + // this.$message.error("删除失败:" + resp.msg); } - }) + }); }) - .catch(function () { }) + .catch(function () { }); }, handleCheck(item) { - this.dialog.checkVisible = true + this.dialog.checkVisible = true; this.$nextTick(() => { - this.$refs.checkDialogForm.init(item) - }) - }, - }, -} - </script> - - <style rel="stylesheet/scss" lang="scss"> + this.$refs.checkDialogForm.init(item); + }); + } + } +}; +</script> + +<style rel="stylesheet/scss" lang="scss"> .el-table .cell { box-sizing: border-box; overflow: hidden; @@ -256,4 +253,4 @@ export default { line-height: 25px; } </style> - \ No newline at end of file + diff --git a/vue.config.js b/vue.config.js index c08cd90..9269834 100644 --- a/vue.config.js +++ b/vue.config.js @@ -34,8 +34,8 @@ module.exports = { open: true, proxy: { [process.env.VUE_APP_BASE_API + '/driver-api']: { - // target: `https://xueche.ahduima.com/duima/`, - target: `http://localhost:8888/driver-api/`, + target: `https://jwl.ahduima.com/driver-api/`, + // target: `http://localhost:8888/driver-api/`, changeOrigin: true, pathRewrite: { ['^' + process.env.VUE_APP_BASE_API + '/driver-api']: '' @@ -50,7 +50,6 @@ module.exports = { ['^' + process.env.VUE_APP_BASE_API]: '' } } - }, disableHostCheck: true }, @@ -106,10 +105,12 @@ module.exports = { config .plugin('ScriptExtHtmlWebpackPlugin') .after('html') - .use('script-ext-html-webpack-plugin', [{ - // `runtime` must same as runtimeChunk name. default is `runtime` - inline: /runtime\..*\.js$/ - }]) + .use('script-ext-html-webpack-plugin', [ + { + // `runtime` must same as runtimeChunk name. default is `runtime` + inline: /runtime\..*\.js$/ + } + ]) .end(); config.optimization.splitChunks({ chunks: 'all', From cf049fc1e8a7901cb53bd8eb39da9f2bc0f516f6 Mon Sep 17 00:00:00 2001 From: qsh <> Date: Wed, 13 Sep 2023 15:11:48 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E9=A2=98=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/question/index.vue | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/views/question/index.vue b/src/views/question/index.vue index 8b52fe0..38195c2 100644 --- a/src/views/question/index.vue +++ b/src/views/question/index.vue @@ -1,6 +1,20 @@ <template> <div class="app-container" style="text-align:center"> <el-form size="small" :inline="true" label-width="68px" @submit.native.prevent> + <el-row :gutter="20"> + <el-form-item label="车型"> + <el-radio-group v-model="queryParams.carTypeId"> + <el-radio :label="1001">小车</el-radio> + <el-radio :label="1002">摩托车</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="科目"> + <el-radio-group v-model="queryParams.subject"> + <el-radio :label="1">科一</el-radio> + <el-radio :label="4">科四</el-radio> + </el-radio-group> + </el-form-item> + </el-row> <el-form-item label="题目"> <el-input v-model="queryParams.question" placeholder="请输入题目" clearable style="width:400px" @keyup.enter.native="handleQuery" /> </el-form-item> @@ -36,6 +50,11 @@ {{ row.isNew ? '是' : '' }} </template> </el-table-column> + <el-table-column label="车型" align="center" min-width="100"> + <template slot-scope="{row}"> + {{ row.carTypeId == 1001 ? '小车' : '摩托车' }} + </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-download" @click="handleEdit(scope.row)">编辑</el-button> @@ -67,6 +86,8 @@ export default { // 查询参数 queryParams: { question: '' + // carTypeId: 1001, + // subject: 1 }, dialogVisible: false };