From d6be0488c4343e445dc725ca190de4bc29dab93d Mon Sep 17 00:00:00 2001
From: qsh <>
Date: Sun, 18 Aug 2024 16:29:01 +0800
Subject: [PATCH 1/7] sc

---
 src/views/Home/CloseRate.vue               |   7 +
 src/views/SchoolManagement/Place/index.vue | 220 ++++++++++++++-------
 2 files changed, 153 insertions(+), 74 deletions(-)
 create mode 100644 src/views/Home/CloseRate.vue

diff --git a/src/views/Home/CloseRate.vue b/src/views/Home/CloseRate.vue
new file mode 100644
index 0000000..c8876d0
--- /dev/null
+++ b/src/views/Home/CloseRate.vue
@@ -0,0 +1,7 @@
+<template>
+  <div> 成交率 </div>
+</template>
+
+<script setup name="CloseRate"></script>
+
+<style lang="scss" scoped></style>
diff --git a/src/views/SchoolManagement/Place/index.vue b/src/views/SchoolManagement/Place/index.vue
index 4939e7b..3a96e42 100644
--- a/src/views/SchoolManagement/Place/index.vue
+++ b/src/views/SchoolManagement/Place/index.vue
@@ -71,80 +71,107 @@
     </div>
 
     <!-- 左侧场地弹框 -->
-    <el-card v-if="placeDialogShow" class="place-dialog" :body-style="{ padding: '10px' }">
-      <template #header>
-        <div class="clearfix">
-          <div class="map-card-title">场地设置</div>
-          <el-tooltip content="取点" placement="right" effect="dark">
-            <el-button class="add-icon" @click="isPointing = !isPointing">
-              <Icon icon="ep:location" />
-            </el-button>
-          </el-tooltip>
-        </div>
-      </template>
-      <el-tabs v-model="placeTab">
-        <el-tab-pane label="场地信息" name="info">
-          <el-form ref="FormPlace" :model="placeForm" label-width="70px">
-            <el-form-item label="所属驾校" prop="schoolId">
-              <el-select v-model="placeForm.schoolId" placeholder="请选择" clearable class="w-full">
-                <el-option
-                  v-for="dict in schoolList"
-                  :key="dict.schoolId"
-                  :label="dict.schoolName"
-                  :value="dict.schoolId"
+    <div class="place-dialog">
+      <el-card v-if="placeDialogShow" :body-style="{ padding: '10px' }">
+        <template #header>
+          <div class="clearfix">
+            <div class="map-card-title">场地设置</div>
+            <el-tooltip content="取点" placement="right" effect="dark">
+              <el-button class="add-icon" @click="isPointing = !isPointing">
+                <Icon icon="ep:location" />
+              </el-button>
+            </el-tooltip>
+          </div>
+        </template>
+        <el-tabs v-model="placeTab">
+          <el-tab-pane label="场地信息" name="info">
+            <el-form ref="FormPlace" :model="placeForm" label-width="70px">
+              <el-form-item label="所属驾校" prop="schoolId">
+                <el-select
+                  v-model="placeForm.schoolId"
+                  placeholder="请选择"
+                  clearable
+                  class="w-full"
+                >
+                  <el-option
+                    v-for="dict in schoolList"
+                    :key="dict.schoolId"
+                    :label="dict.schoolName"
+                    :value="dict.schoolId"
+                  />
+                </el-select>
+              </el-form-item>
+              <el-form-item label="名称" prop="name">
+                <el-input v-model="placeForm.name" placeholder="输入名称" />
+              </el-form-item>
+              <el-form-item label="旗子颜色" prop="flagColor">
+                <el-radio-group v-model="placeForm.flagColor">
+                  <el-radio v-for="(item, index) in colorOptions" :key="index" :label="item">
+                    <img :src="flagMap[item]" style="width: 20px" />
+                  </el-radio>
+                </el-radio-group>
+              </el-form-item>
+              <el-form-item label="地址" prop="address">
+                <el-input v-model="placeForm.address" placeholder="输入地址" />
+              </el-form-item>
+              <el-form-item label="经度" prop="lng">
+                <el-input-number
+                  v-model="placeForm.lng"
+                  :min="1"
+                  :controls="false"
+                  placeholder="输入经度"
+                  style="width: 100%"
                 />
-              </el-select>
-            </el-form-item>
-            <el-form-item label="名称" prop="name">
-              <el-input v-model="placeForm.name" placeholder="输入名称" />
-            </el-form-item>
-            <el-form-item label="旗子颜色" prop="flagColor">
-              <el-radio-group v-model="placeForm.flagColor">
-                <el-radio v-for="(item, index) in colorOptions" :key="index" :label="item">
-                  <img :src="flagMap[item]" style="width: 20px" />
-                </el-radio>
-              </el-radio-group>
-            </el-form-item>
-            <el-form-item label="地址" prop="address">
-              <el-input v-model="placeForm.address" placeholder="输入地址" />
-            </el-form-item>
-            <el-form-item label="经度" prop="lng">
-              <el-input v-model="placeForm.lng" placeholder="输入经度" />
-            </el-form-item>
-            <el-form-item label="纬度" prop="lat">
-              <el-input v-model="placeForm.lat" placeholder="输入纬度" />
-            </el-form-item>
-            <el-form-item label="所属区域" prop="area">
-              <el-select v-model="placeForm.area" placeholder="请选择" clearable class="w-full">
-                <el-option
-                  v-for="dict in areaOptions"
-                  :key="dict.id"
-                  :label="dict.name"
-                  :value="dict.id"
+              </el-form-item>
+              <el-form-item label="纬度" prop="lat">
+                <el-input-number
+                  v-model="placeForm.lat"
+                  :min="1"
+                  :controls="false"
+                  placeholder="输入纬度"
+                  style="width: 100%"
                 />
-              </el-select>
-            </el-form-item>
-            <el-form-item label="电话" prop="phone">
-              <el-input v-model="placeForm.phone" placeholder="输入电话" />
-            </el-form-item>
-            <el-form-item label="负责人" prop="contact">
-              <el-input v-model="placeForm.contact" placeholder="输入负责人" />
-            </el-form-item>
-            <el-form-item label="是否推荐" prop="contact">
+              </el-form-item>
+              <el-form-item label="所属区域" prop="area">
+                <el-select v-model="placeForm.area" placeholder="请选择" clearable class="w-full">
+                  <el-option
+                    v-for="dict in areaOptions"
+                    :key="dict.id"
+                    :label="dict.name"
+                    :value="dict.id"
+                  />
+                </el-select>
+              </el-form-item>
+              <el-form-item label="电话" prop="phone">
+                <el-input v-model="placeForm.phone" placeholder="输入电话" />
+              </el-form-item>
+              <el-form-item label="负责人" prop="contact">
+                <el-input v-model="placeForm.contact" placeholder="输入负责人" />
+              </el-form-item>
+              <!-- <el-form-item label="是否推荐" prop="contact">
               <el-radio v-model="placeForm.recommend" :label="true">是</el-radio>
               <el-radio v-model="placeForm.recommend" :label="false">否</el-radio>
-            </el-form-item>
-          </el-form>
-        </el-tab-pane>
-        <el-tab-pane label="描述" name="desc">
-          <Editor v-model:modelValue="placeForm.introduce" />
-        </el-tab-pane>
-      </el-tabs>
-      <div class="flex items-center justify-center mt-10px">
-        <el-button type="primary" @click="onSubmit">保存</el-button>
-        <el-button @click="closePlaceDialog">取消</el-button>
-      </div>
-    </el-card>
+            </el-form-item> -->
+            </el-form>
+          </el-tab-pane>
+          <el-tab-pane label="描述" name="desc">
+            <Editor v-model:modelValue="placeForm.introduce" />
+          </el-tab-pane>
+        </el-tabs>
+        <div class="flex items-center justify-center mt-10px">
+          <el-button type="primary" @click="onSubmit">保存</el-button>
+          <el-button @click="closePlaceDialog">取消</el-button>
+        </div>
+      </el-card>
+      <el-autocomplete
+        class="ml-10px"
+        v-model="areaValue"
+        clearable
+        placeholder="输入并搜索位置"
+        :fetch-suggestions="remoteMethod"
+        @select="currentSelect"
+      />
+    </div>
 
     <!-- 底部驾校场地列表 -->
     <el-card
@@ -234,6 +261,7 @@
 
 <script setup name="Place">
 import * as PlaceApi from '@/api/school/place'
+import { getConfigByConfigKey } from '@/api/system/set'
 import { getAreaSimpleList } from '@/api/school/setting/area'
 import { checkPermi } from '@/utils/permission'
 
@@ -267,18 +295,35 @@ const mapHelpText = ref('')
 const tipPostion = ref({})
 const placeTab = ref('info')
 
-function initMap() {
+const defaultLatLng = ref({
+  lat: 31.86119,
+  lng: 117.283042
+})
+const defaultCity = ref('合肥')
+
+let AutoComplete = ref(null)
+async function initMap() {
+  const data = await getConfigByConfigKey({ configKey: 'defaultLocation' })
+  const cityInfo = JSON.parse(data.configValue)
+  defaultLatLng.value = {
+    lat: cityInfo.lat,
+    lng: cityInfo.lng
+  }
+  defaultCity.value = cityInfo.locationName
   AMapLoader.load({
     key: '713d839ff505943b0f18e6df45f3b0dc', //设置您的key
     version: '2.0',
-    plugins: ['AMap.Geocoder']
+    plugins: ['AMap.Geocoder', 'AMap.AutoComplete']
   }).then((AMap) => {
     aMap.value = AMap
     geoCoder.value = new AMap.Geocoder()
     dialogMap.value = new AMap.Map('dialogMap', {
       zoom: 12,
       zooms: [2, 22],
-      center: [117.283042, 31.86119]
+      center: [defaultLatLng.value.lng, defaultLatLng.value.lat]
+    })
+    AutoComplete.value = new AMap.AutoComplete({
+      city: defaultCity.value
     })
     locationMarker.value = new AMap.Marker({
       icon: FlagRed
@@ -313,6 +358,32 @@ function initMap() {
   })
 }
 
+const areaValue = ref('')
+function remoteMethod(searchValue, cb) {
+  if (searchValue) {
+    AutoComplete.value?.search(searchValue, (status, result) => {
+      if (result.tips?.length) {
+        // areaList.value = result?.tips
+        const list = result.tips.map((it) => ({
+          ...it,
+          value: it.name
+        }))
+        cb(list)
+      } else {
+        cb([])
+      }
+    })
+  } else {
+    cb([])
+  }
+}
+
+function currentSelect(val) {
+  if (val) {
+    dialogMap.value.setCenter([val.location?.lng, val.location?.lat], true)
+  }
+}
+
 function regeoCode() {
   geoCoder.value.getAddress([placeForm.value.lng, placeForm.value.lat], (status, result) => {
     if (status === 'complete' && result.regeocode) {
@@ -678,7 +749,8 @@ onMounted(() => {
   position: absolute;
   left: 20px;
   top: 20px;
-  width: 350px;
+  width: 500px;
+  display: flex;
 }
 
 .map-tip {
-- 
2.38.1.windows.1


From 57d6aa3a0e838486b1b36503220e9cf09658602a Mon Sep 17 00:00:00 2001
From: qsh <>
Date: Sun, 18 Aug 2024 16:38:09 +0800
Subject: [PATCH 2/7] =?UTF-8?q?=E5=9C=BA=E5=9C=B0=E5=AE=9A=E4=BD=8D?=
 =?UTF-8?q?=E5=92=8C=E6=90=9C=E7=B4=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/views/SchoolManagement/Place/index.vue | 192 ++++++++++-----------
 1 file changed, 95 insertions(+), 97 deletions(-)

diff --git a/src/views/SchoolManagement/Place/index.vue b/src/views/SchoolManagement/Place/index.vue
index 3a96e42..ef6bfe7 100644
--- a/src/views/SchoolManagement/Place/index.vue
+++ b/src/views/SchoolManagement/Place/index.vue
@@ -71,107 +71,105 @@
     </div>
 
     <!-- 左侧场地弹框 -->
-    <div class="place-dialog">
-      <el-card v-if="placeDialogShow" :body-style="{ padding: '10px' }">
-        <template #header>
-          <div class="clearfix">
-            <div class="map-card-title">场地设置</div>
-            <el-tooltip content="取点" placement="right" effect="dark">
-              <el-button class="add-icon" @click="isPointing = !isPointing">
-                <Icon icon="ep:location" />
-              </el-button>
-            </el-tooltip>
-          </div>
-        </template>
-        <el-tabs v-model="placeTab">
-          <el-tab-pane label="场地信息" name="info">
-            <el-form ref="FormPlace" :model="placeForm" label-width="70px">
-              <el-form-item label="所属驾校" prop="schoolId">
-                <el-select
-                  v-model="placeForm.schoolId"
-                  placeholder="请选择"
-                  clearable
-                  class="w-full"
-                >
-                  <el-option
-                    v-for="dict in schoolList"
-                    :key="dict.schoolId"
-                    :label="dict.schoolName"
-                    :value="dict.schoolId"
-                  />
-                </el-select>
-              </el-form-item>
-              <el-form-item label="名称" prop="name">
-                <el-input v-model="placeForm.name" placeholder="输入名称" />
-              </el-form-item>
-              <el-form-item label="旗子颜色" prop="flagColor">
-                <el-radio-group v-model="placeForm.flagColor">
-                  <el-radio v-for="(item, index) in colorOptions" :key="index" :label="item">
-                    <img :src="flagMap[item]" style="width: 20px" />
-                  </el-radio>
-                </el-radio-group>
-              </el-form-item>
-              <el-form-item label="地址" prop="address">
-                <el-input v-model="placeForm.address" placeholder="输入地址" />
-              </el-form-item>
-              <el-form-item label="经度" prop="lng">
-                <el-input-number
-                  v-model="placeForm.lng"
-                  :min="1"
-                  :controls="false"
-                  placeholder="输入经度"
-                  style="width: 100%"
+    <el-card v-if="placeDialogShow" class="place-dialog" :body-style="{ padding: '10px' }">
+      <template #header>
+        <div class="clearfix">
+          <div class="map-card-title">场地设置</div>
+          <el-tooltip content="取点" placement="right" effect="dark">
+            <el-button class="add-icon" @click="isPointing = !isPointing">
+              <Icon icon="ep:location" />
+            </el-button>
+          </el-tooltip>
+        </div>
+      </template>
+      <el-tabs v-model="placeTab">
+        <el-tab-pane label="场地信息" name="info">
+          <el-form ref="FormPlace" :model="placeForm" label-width="70px">
+            <el-form-item label="所属驾校" prop="schoolId">
+              <el-select v-model="placeForm.schoolId" placeholder="请选择" clearable class="w-full">
+                <el-option
+                  v-for="dict in schoolList"
+                  :key="dict.schoolId"
+                  :label="dict.schoolName"
+                  :value="dict.schoolId"
                 />
-              </el-form-item>
-              <el-form-item label="纬度" prop="lat">
-                <el-input-number
-                  v-model="placeForm.lat"
-                  :min="1"
-                  :controls="false"
-                  placeholder="输入纬度"
-                  style="width: 100%"
+              </el-select>
+            </el-form-item>
+            <el-form-item label="名称" prop="name">
+              <el-input v-model="placeForm.name" placeholder="输入名称" />
+            </el-form-item>
+            <el-form-item label="旗子颜色" prop="flagColor">
+              <el-radio-group v-model="placeForm.flagColor">
+                <el-radio v-for="(item, index) in colorOptions" :key="index" :label="item">
+                  <img :src="flagMap[item]" style="width: 20px" />
+                </el-radio>
+              </el-radio-group>
+            </el-form-item>
+            <el-form-item label="地址" prop="address">
+              <el-input v-model="placeForm.address" placeholder="输入地址" />
+            </el-form-item>
+            <el-form-item label="经度" prop="lng">
+              <el-input-number
+                v-model="placeForm.lng"
+                :min="1"
+                :controls="false"
+                placeholder="输入经度"
+                style="width: 100%"
+              />
+            </el-form-item>
+            <el-form-item label="纬度" prop="lat">
+              <el-input-number
+                v-model="placeForm.lat"
+                :min="1"
+                :controls="false"
+                placeholder="输入纬度"
+                style="width: 100%"
+              />
+            </el-form-item>
+            <el-form-item label="所属区域" prop="area">
+              <el-select v-model="placeForm.area" placeholder="请选择" clearable class="w-full">
+                <el-option
+                  v-for="dict in areaOptions"
+                  :key="dict.id"
+                  :label="dict.name"
+                  :value="dict.id"
                 />
-              </el-form-item>
-              <el-form-item label="所属区域" prop="area">
-                <el-select v-model="placeForm.area" placeholder="请选择" clearable class="w-full">
-                  <el-option
-                    v-for="dict in areaOptions"
-                    :key="dict.id"
-                    :label="dict.name"
-                    :value="dict.id"
-                  />
-                </el-select>
-              </el-form-item>
-              <el-form-item label="电话" prop="phone">
-                <el-input v-model="placeForm.phone" placeholder="输入电话" />
-              </el-form-item>
-              <el-form-item label="负责人" prop="contact">
-                <el-input v-model="placeForm.contact" placeholder="输入负责人" />
-              </el-form-item>
-              <!-- <el-form-item label="是否推荐" prop="contact">
+              </el-select>
+            </el-form-item>
+            <el-form-item label="电话" prop="phone">
+              <el-input v-model="placeForm.phone" placeholder="输入电话" />
+            </el-form-item>
+            <el-form-item label="负责人" prop="contact">
+              <el-input v-model="placeForm.contact" placeholder="输入负责人" />
+            </el-form-item>
+            <!-- <el-form-item label="是否推荐" prop="contact">
               <el-radio v-model="placeForm.recommend" :label="true">是</el-radio>
               <el-radio v-model="placeForm.recommend" :label="false">否</el-radio>
             </el-form-item> -->
-            </el-form>
-          </el-tab-pane>
-          <el-tab-pane label="描述" name="desc">
-            <Editor v-model:modelValue="placeForm.introduce" />
-          </el-tab-pane>
-        </el-tabs>
-        <div class="flex items-center justify-center mt-10px">
-          <el-button type="primary" @click="onSubmit">保存</el-button>
-          <el-button @click="closePlaceDialog">取消</el-button>
-        </div>
-      </el-card>
-      <el-autocomplete
-        class="ml-10px"
-        v-model="areaValue"
-        clearable
-        placeholder="输入并搜索位置"
-        :fetch-suggestions="remoteMethod"
-        @select="currentSelect"
-      />
-    </div>
+          </el-form>
+        </el-tab-pane>
+        <el-tab-pane label="描述" name="desc">
+          <Editor v-model:modelValue="placeForm.introduce" />
+        </el-tab-pane>
+      </el-tabs>
+      <div class="flex items-center justify-center mt-10px">
+        <el-button type="primary" @click="onSubmit">保存</el-button>
+        <el-button @click="closePlaceDialog">取消</el-button>
+      </div>
+    </el-card>
+    <el-autocomplete
+      :style="{
+        position: 'absolute',
+        top: '20px',
+        left: placeDialogShow ? '380px' : '20px',
+        width: '200px'
+      }"
+      v-model="areaValue"
+      clearable
+      placeholder="输入并搜索位置"
+      :fetch-suggestions="remoteMethod"
+      @select="currentSelect"
+    />
 
     <!-- 底部驾校场地列表 -->
     <el-card
@@ -749,7 +747,7 @@ onMounted(() => {
   position: absolute;
   left: 20px;
   top: 20px;
-  width: 500px;
+  width: 350px;
   display: flex;
 }
 
-- 
2.38.1.windows.1


From 347069dbee0329a0d2950b41345b2839df8c8dd4 Mon Sep 17 00:00:00 2001
From: qsh <>
Date: Mon, 19 Aug 2024 17:26:23 +0800
Subject: [PATCH 3/7] sha

---
 src/api/clue/sign.js                       |  4 ++++
 src/views/Clue/Pool/Comp/DialogSuccess.vue | 20 +++++++++++++++++++-
 src/views/SchoolManagement/Place/index.vue |  1 -
 3 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/src/api/clue/sign.js b/src/api/clue/sign.js
index 4f87227..085e972 100644
--- a/src/api/clue/sign.js
+++ b/src/api/clue/sign.js
@@ -47,3 +47,7 @@ export const updateProduceStatus = (data) => {
 export const updateProduceSort = (data) => {
   return request.post({ url: '/admin-api/crm/sign-prodcut/adjust/sort', data: data })
 }
+
+export const getSignProfit = (params) => {
+  return request.get({ url: '/admin-api/crm/sign/profit', params })
+}
diff --git a/src/views/Clue/Pool/Comp/DialogSuccess.vue b/src/views/Clue/Pool/Comp/DialogSuccess.vue
index 2ce06f5..18419e2 100644
--- a/src/views/Clue/Pool/Comp/DialogSuccess.vue
+++ b/src/views/Clue/Pool/Comp/DialogSuccess.vue
@@ -119,6 +119,11 @@
           </el-form-item>
         </el-col>
         <template v-if="appStore.getAppInfo?.instanceType == 1">
+          <el-col :span="8" :offset="0" v-if="form.signClass">
+            <el-form-item label="利润">
+              <div style="color: blue; font-weight: bold; font-size: 16px">{{ profitNum }}</div>
+            </el-form-item>
+          </el-col>
           <el-col :span="8" :offset="0">
             <el-form-item label="接待人" prop="receiver">
               <el-select v-model="form.receiver" placeholder="选择接待人" clearable filterable>
@@ -336,7 +341,7 @@
 
 <script setup name="DialogSuccess">
 import * as ClueApi from '@/api/clue'
-import { createSign } from '@/api/clue/sign'
+import { createSign, getSignProfit } from '@/api/clue/sign'
 import { getDiyFieldList } from '@/api/clue/orderField'
 import { getPlaceList } from '@/api/school/place'
 import { getClassTypeList } from '@/api/school/class'
@@ -594,6 +599,19 @@ function signPriceChange() {
   if (form.value.isPayoff) {
     form.value.payAmount = form.value.signPrice
   }
+  calcSignProfit()
+}
+
+const profitNum = ref(0)
+function calcSignProfit() {
+  if (form.value.signClass && appStore.getAppInfo?.instanceType == 1) {
+    // 计算员工利润
+    getSignProfit({ signClass: form.value.signClass, signPrice: form.value.signPrice }).then(
+      (data) => {
+        profitNum.value = data
+      }
+    )
+  }
 }
 
 function handleRemove(type, index) {
diff --git a/src/views/SchoolManagement/Place/index.vue b/src/views/SchoolManagement/Place/index.vue
index ef6bfe7..cd05bb9 100644
--- a/src/views/SchoolManagement/Place/index.vue
+++ b/src/views/SchoolManagement/Place/index.vue
@@ -748,7 +748,6 @@ onMounted(() => {
   left: 20px;
   top: 20px;
   width: 350px;
-  display: flex;
 }
 
 .map-tip {
-- 
2.38.1.windows.1


From 31f3df9932ee96ae1432e7283e54140758817ddc Mon Sep 17 00:00:00 2001
From: qsh <>
Date: Tue, 20 Aug 2024 15:30:28 +0800
Subject: [PATCH 4/7] sc

---
 src/store/modules/user.ts                     |  2 +-
 src/views/Clue/Pool/Comp/DialogSchoolInfo.vue | 26 +++++++++++++++++++
 2 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
index e6dbe34..21be6eb 100644
--- a/src/store/modules/user.ts
+++ b/src/store/modules/user.ts
@@ -49,7 +49,7 @@ export const useUserStore = defineStore('admin-user', {
         return null
       }
       let userInfo = cache.local.get(CACHE_KEY.USER)
-      if (!userInfo) {
+      if (!userInfo || !userInfo?.menus || userInfo.menus.length == 0) {
         userInfo = await getInfo({})
       }
       this.permissions = userInfo.permissions
diff --git a/src/views/Clue/Pool/Comp/DialogSchoolInfo.vue b/src/views/Clue/Pool/Comp/DialogSchoolInfo.vue
index 20a6bdb..57c95ce 100644
--- a/src/views/Clue/Pool/Comp/DialogSchoolInfo.vue
+++ b/src/views/Clue/Pool/Comp/DialogSchoolInfo.vue
@@ -1,18 +1,44 @@
 <template>
   <el-dialog width="800px" :title="title" v-model="show" append-to-body>
+    <el-divider direction="horizontal" content-position="left" style="margin-top: 10px">
+      场地班型
+    </el-divider>
+    <el-table :data="tableList" border stripe size="small">
+      <el-table-column type="index" width="50" />
+      <el-table-column prop="typeName" label="班型名称" />
+      <el-table-column prop="licenseType" label="驾照类型" />
+      <el-table-column label="班型备注">
+        <template #default="{ row }">
+          <el-popover placement="top" width="500px" trigger="click">
+            <template #reference>
+              <el-button type="primary" style="padding: 0" text>点击查看</el-button>
+            </template>
+            <div v-dompurify-html="row.remark"></div>
+          </el-popover>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <el-divider direction="horizontal" content-position="left">场地详细信息</el-divider>
     <div v-dompurify-html="detail" class="mb-20px"></div>
   </el-dialog>
 </template>
 
 <script setup name="DialogSchoolInfo">
+import { getClassTypeList } from '@/api/school/class'
 const title = ref('')
 const show = ref(false)
 const detail = ref('')
 
+const tableList = ref([])
 function open(info) {
   title.value = `【${info.schoolName}】详细信息`
   show.value = true
   detail.value = info.introduce || '该驾校暂未配置详细信息'
+
+  getClassTypeList({ placeId: info.placeId, status: 0 }).then((data) => {
+    tableList.value = data
+  })
 }
 
 defineExpose({
-- 
2.38.1.windows.1


From a01363dba2e346b1933374de498cd6a68964a3ed Mon Sep 17 00:00:00 2001
From: qsh <>
Date: Tue, 20 Aug 2024 18:10:36 +0800
Subject: [PATCH 5/7] shangchuan

---
 src/views/Clue/Set/Comp/ClueSource.vue | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/views/Clue/Set/Comp/ClueSource.vue b/src/views/Clue/Set/Comp/ClueSource.vue
index e27a7a2..e9829f7 100644
--- a/src/views/Clue/Set/Comp/ClueSource.vue
+++ b/src/views/Clue/Set/Comp/ClueSource.vue
@@ -9,6 +9,12 @@
           @keyup.enter="handleQuery"
         />
       </el-form-item>
+      <el-form-item>
+        <el-radio-group v-model="searchForm.status" @change="handleQuery">
+          <el-radio :label="0"> 开启 </el-radio>
+          <el-radio :label="1"> 关闭 </el-radio>
+        </el-radio-group>
+      </el-form-item>
       <el-form-item>
         <el-button @click="handleQuery">搜索</el-button>
         <el-button @click="resetQuery">重置</el-button>
@@ -59,7 +65,8 @@ const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 
 const searchForm = ref({
-  sourceName: undefined
+  sourceName: undefined,
+  status: 0
 })
 
 const sourceDialog = ref()
@@ -71,7 +78,8 @@ function handleQuery() {
 }
 function resetQuery() {
   searchForm.value = {
-    sourceName: ''
+    sourceName: '',
+    status: 0
   }
   getList()
 }
-- 
2.38.1.windows.1


From 230e4bf5772d6d60ed4cab2a50738ecd9a201efb Mon Sep 17 00:00:00 2001
From: qsh <>
Date: Fri, 23 Aug 2024 17:57:58 +0800
Subject: [PATCH 6/7] sc

---
 src/views/Basic/Role/Comp/ReportDaily.vue | 7 +++++++
 src/views/Basic/Role/index.vue            | 4 ++++
 2 files changed, 11 insertions(+)
 create mode 100644 src/views/Basic/Role/Comp/ReportDaily.vue

diff --git a/src/views/Basic/Role/Comp/ReportDaily.vue b/src/views/Basic/Role/Comp/ReportDaily.vue
new file mode 100644
index 0000000..c6fde32
--- /dev/null
+++ b/src/views/Basic/Role/Comp/ReportDaily.vue
@@ -0,0 +1,7 @@
+<template>
+  <div> 每日快报 </div>
+</template>
+
+<script setup name="ReportDaily"></script>
+
+<style lang="scss" scoped></style>
diff --git a/src/views/Basic/Role/index.vue b/src/views/Basic/Role/index.vue
index 6ba9419..aa64844 100644
--- a/src/views/Basic/Role/index.vue
+++ b/src/views/Basic/Role/index.vue
@@ -75,6 +75,9 @@
             @success="getList"
           />
         </el-tab-pane>
+        <el-tab-pane label="每日快报" :name="4">
+          <ReportDaily />
+        </el-tab-pane>
       </el-tabs>
     </el-card>
     <!-- 表单弹窗:添加/修改 -->
@@ -86,6 +89,7 @@ import RoleForm from './RoleForm.vue'
 import RoleEmployee from './Comp/RoleEmployee.vue'
 import RoleAssignMenuForm from './RoleAssignMenuForm.vue'
 import RoleDataPermissionForm from './RoleDataPermissionForm.vue'
+import ReportDaily from './Comp/ReportDaily.vue'
 import * as RoleApi from '@/api/system/role'
 
 const message = useMessage() // 消息弹窗
-- 
2.38.1.windows.1


From 2c5d2393116fa86b87dd56836c76854e651ad434 Mon Sep 17 00:00:00 2001
From: qsh <>
Date: Fri, 23 Aug 2024 18:37:45 +0800
Subject: [PATCH 7/7] tj

---
 src/views/Basic/Role/index.vue | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/views/Basic/Role/index.vue b/src/views/Basic/Role/index.vue
index aa64844..2f894b1 100644
--- a/src/views/Basic/Role/index.vue
+++ b/src/views/Basic/Role/index.vue
@@ -75,9 +75,9 @@
             @success="getList"
           />
         </el-tab-pane>
-        <el-tab-pane label="每日快报" :name="4">
+        <!-- <el-tab-pane label="每日快报" :name="4">
           <ReportDaily />
-        </el-tab-pane>
+        </el-tab-pane> -->
       </el-tabs>
     </el-card>
     <!-- 表单弹窗:添加/修改 -->
@@ -89,7 +89,7 @@ import RoleForm from './RoleForm.vue'
 import RoleEmployee from './Comp/RoleEmployee.vue'
 import RoleAssignMenuForm from './RoleAssignMenuForm.vue'
 import RoleDataPermissionForm from './RoleDataPermissionForm.vue'
-import ReportDaily from './Comp/ReportDaily.vue'
+// import ReportDaily from './Comp/ReportDaily.vue'
 import * as RoleApi from '@/api/system/role'
 
 const message = useMessage() // 消息弹窗
-- 
2.38.1.windows.1