Merge remote-tracking branch 'origin/master'
| | |
| | | methods: { |
| | | logout () { |
| | | this.$confirm(this.$t('logoutTip'), this.$t('提示'), { |
| | | customClass: 'gd-confirm-custom', |
| | | confirmButtonText: this.$t('submitText'), |
| | | cancelButtonText: this.$t('cancelText'), |
| | | type: 'warning', |
| | |
| | | }, |
| | | handleLogout() { |
| | | this.$confirm('是否退出系统, 是否继续?', '提示', { |
| | | customClass: 'gd-confirm-custom', |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | |
| | | padding-bottom: 20px; |
| | | |
| | | .el-button { |
| | | min-width: 88px; |
| | | padding: 4px 16px; |
| | | color: #383874; |
| | | border: none; |
| | | height: 32px; |
| | | } |
| | | |
| | | .el-button:first-child { |
| | | color: #FFFFFF; |
| | | } |
| | | |
| | | .el-button.is-disabled, |
| | | .el-button.is-disabled:hover { |
| | | background: #ECECF4; |
| | | border: none; |
| | | } |
| | | |
| | | .el-button:first-child.is-disabled, |
| | | .el-button:first-child.is-disabled:hover { |
| | | background: #4C34FF; |
| | | border: none; |
| | | } |
| | |
| | | <div class="gd-table-container" v-loading="loading"> |
| | | <div class="gd-table-toolbar"> |
| | | <el-button :icon="Plus" color="#4C34FF" type="primary" @click="openForm('add')">新增</el-button> |
| | | <el-button :icon="Delete" color="#4C34FF" :disabled="!selectedIds.length" |
| | | <el-button :icon="Delete" color="#ECECF4" :disabled="!selectedIds.length" |
| | | @click="handleDelete()">删除</el-button> |
| | | </div> |
| | | |
| | |
| | | </el-button> |
| | | <el-button |
| | | :icon="Delete" |
| | | |
| | | color="#ECECF4" |
| | | @click="handleBatchDelete" |
| | | > |
| | | 删除 |
| | |
| | | <div class="gd-table-container" v-loading="loading"> |
| | | <div class="gd-table-toolbar"> |
| | | <el-button :icon="Download" color="#4C34FF" type="primary" @click="handleDownload">文档下载</el-button> |
| | | <el-button :icon="Upload" color="#4C34FF" type="primary" @click="handleUpload">文档上传</el-button> |
| | | <el-button :icon="Upload" color="#ECECF4" type="primary" @click="handleUpload">文档上传</el-button> |
| | | </div> |
| | | |
| | | <div class="gd-table-content gd-table-content-bg"> |
| | |
| | | <div class="gd-table-container" v-loading="loading"> |
| | | <div class="gd-table-toolbar"> |
| | | <el-button :icon="Plus" color="#4C34FF" type="primary" @click="handleAdd">新增</el-button> |
| | | <el-button :icon="Delete" color="#4C34FF" :disabled="!selectedIds.length" @click="handleDelete()">删除</el-button> |
| | | <el-button :icon="Delete" color="#ECECF4" :disabled="!selectedIds.length" @click="handleDelete()">删除</el-button> |
| | | </div> |
| | | |
| | | <div class="gd-table-content gd-table-content-bg"> |
| | |
| | | </basic-container> |
| | | </template> |
| | | <script setup> |
| | | import { Delete, Plus } from '@element-plus/icons-vue' |
| | | import { ElMessage, ElMessageBox, ElLoading } from 'element-plus' |
| | | import { operatingIncomePage, operatingIncomeUpdate, operatingIncomeAdd, operatingIncomeBatchDelete } from './operatingIncomeApi' |
| | | |
| | |
| | | width: 350px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .title { |
| | | font-weight: 500; |
| | | font-size: 14px; |
| | | color: #272e37; |
| | | } |
| | | |
| | | ::v-deep(.el-table) { |
| | | tr th { |
| | | font-weight: normal; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .processBox { |
| | |
| | | <div class="gd-table-container" v-loading="loading"> |
| | | <div class="gd-table-toolbar"> |
| | | <el-button :icon="Plus" color="#4C34FF" type="primary" @click="openForm('add')">新增机构</el-button> |
| | | <el-button :icon="Upload" @click="handleImport">机构导入</el-button> |
| | | <el-button :icon="Download" :loading="exportLoading" :disabled="exportLoading" @click="handleExport">机构导出</el-button> |
| | | <el-button :icon="Upload" color="#ECECF4" @click="handleImport">机构导入</el-button> |
| | | <el-button :icon="Download" color="#ECECF4" :loading="exportLoading" :disabled="exportLoading" @click="handleExport">机构导出</el-button> |
| | | </div> |
| | | |
| | | <div class="gd-table-content gd-table-content-bg"> |
| | |
| | | <div class="gd-table-container" v-loading="loading" element-loading-background="rgba(5, 5, 15, 0.6)"> |
| | | <div class="gd-table-toolbar"> |
| | | <el-button :icon="Plus" color="#4C34FF" type="primary" @click="handleAdd">新增</el-button> |
| | | <el-button :icon="Delete" :disabled="!selectedIds.length" @click="handleDelete()"> |
| | | <el-button :icon="Delete" color="#ECECF4" :disabled="!selectedIds.length" @click="handleDelete()"> |
| | | 删除 |
| | | </el-button> |
| | | <el-button |
| | | :icon="Setting" |
| | | color="#ECECF4" |
| | | :disabled="selectedIds.length !== 1" |
| | | v-if="permission.orderRole_set" |
| | | @click="handleRole" |
| | |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { Delete, Plus, RefreshRight, Search } from '@element-plus/icons-vue' |
| | | import { Delete, Plus, Setting, RefreshRight, Search } from '@element-plus/icons-vue' |
| | | import { computed, onMounted, ref } from 'vue' |
| | | import { ElMessage, ElMessageBox } from 'element-plus' |
| | | import { getRoleListNew as getRolePage, remove } from '@/api/system/role' |
| | |
| | | const tips = row ? '该条' : '选中的项' |
| | | await ElMessageBox.confirm(`确认删除${tips}吗?`, '提示', { |
| | | type: 'warning', |
| | | customClass: 'command-page-view-message-box', |
| | | customClass: 'gd-confirm-custom', |
| | | confirmButtonClass: 'command-message-box-confirm', |
| | | cancelButtonClass: 'command-message-box-cancel', |
| | | }) |
| | |
| | | const tips = row ? '该条' : '选中的项' |
| | | await ElMessageBox.confirm(`确认删除${tips}吗?`, '提示', { |
| | | type: 'warning', |
| | | customClass: 'command-page-view-message-box', |
| | | customClass: 'gd-confirm-custom', |
| | | confirmButtonClass: 'command-message-box-confirm', |
| | | cancelButtonClass: 'command-message-box-cancel', |
| | | }) |
| | |
| | | <div class="gd-table-container" v-loading="loading"> |
| | | <div class="gd-table-toolbar"> |
| | | <el-button :icon="Plus" color="#4C34FF" type="primary" @click="openForm('add')">新增区划</el-button> |
| | | <el-button :icon="Upload" @click="handleImport">区划导入</el-button> |
| | | <el-button :icon="Download" :loading="exportLoading" :disabled="exportLoading" @click="handleExport">区划导出</el-button> |
| | | <el-button :icon="Upload" color="#ECECF4" @click="handleImport">区划导入</el-button> |
| | | <el-button :icon="Download" color="#ECECF4" :loading="exportLoading" :disabled="exportLoading" @click="handleExport">区划导出</el-button> |
| | | </div> |
| | | |
| | | <div class="gd-table-content gd-table-content-bg"> |
| | |
| | | |
| | | // 消息处理 |
| | | function messageHandler(payload) { |
| | | |
| | | // 先尝试直接处理消息(适用于mobile-web-view的voiceCallDetail页面的消息格式) |
| | | const t = (payload.type || '').toString() |
| | | callStatus.value = t |
| | |
| | | if (t === 'call') { |
| | | console.log('📞 全局收到来电 call,来自', payload.from) |
| | | // 触发震动 |
| | | triggerVibration(); |
| | | // triggerVibration(); |
| | | // 构建来电参数 |
| | | const callParams = { |
| | | peerUid: payload.from, |
| | |
| | | // #endif |
| | | // 转义参数以便在URL中传递 |
| | | const encodedParams = encodeURIComponent(JSON.stringify(callParams)); |
| | | |
| | | try { |
| | | // 优先使用uni-app的导航API(适用于同应用内跳转) |
| | | if (typeof uni !== 'undefined' && uni.navigateTo) { |
| | | uni.navigateTo({ |
| | | url: `/subPackages/voiceCallDetail/index?voiceparams=${encodedParams}`, |
| | | }); |
| | | uni.navigateTo({ |
| | | url: `/subPackages/voiceCallDetail/index?voiceparams=${encodedParams}`, |
| | | }); |
| | | } else { |
| | | console.error('无法跳转到语音通话页面:当前环境不支持导航'); |
| | | } |
| | |
| | | console.error('跳转到语音通话页面失败:', error); |
| | | } |
| | | return |
| | | } |
| | | // 通话接听或结束时,取消来电通知 |
| | | if (t === 'accept' || t === 'reject' || t === 'hangup' || t === 'cancel') { |
| | | // #ifdef APP-PLUS |
| | | cancelIncomingCallNotification() |
| | | // #endif |
| | | } |
| | | } |
| | | |
| | |
| | | import { useUserStore } from "@/store/index.js" |
| | | import { getWebViewUrl } from "@/utils/index.js"; |
| | | import { onLoad } from "@dcloudio/uni-app"; |
| | | import {cancelIncomingCallNotification } from '@/uni_modules/lgh-dialog' |
| | | |
| | | const userStore = useUserStore() |
| | | const userParams = userStore?.userInfo ? JSON.stringify(userStore.userInfo) : '{}' |
| | | const sWebViewRef = ref(null); |
| | |
| | | } |
| | | } |
| | | |
| | | // 监听离开 |
| | | onUnload(() => { |
| | | // #ifdef APP-PLUS |
| | | cancelIncomingCallNotification() |
| | | // #endif |
| | | }) |
| | | |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |