mirror of
				https://github.com/YunaiV/ruoyi-vue-pro.git
				synced 2025-11-04 08:06:12 +08:00 
			
		
		
		
	Merge remote-tracking branch 'origin/feature/vue3' into feature/vue3
This commit is contained in:
		@ -24,7 +24,7 @@
 | 
				
			|||||||
        <XTextButton
 | 
					        <XTextButton
 | 
				
			||||||
          preIcon="ep:view"
 | 
					          preIcon="ep:view"
 | 
				
			||||||
          :title="t('action.detail')"
 | 
					          :title="t('action.detail')"
 | 
				
			||||||
          v-hasPermi="['system:error-code:update']"
 | 
					          v-hasPermi="['system:error-code:query']"
 | 
				
			||||||
          @click="handleDetail(row.id)"
 | 
					          @click="handleDetail(row.id)"
 | 
				
			||||||
        />
 | 
					        />
 | 
				
			||||||
        <!-- 操作:删除 -->
 | 
					        <!-- 操作:删除 -->
 | 
				
			||||||
 | 
				
			|||||||
@ -2,6 +2,7 @@
 | 
				
			|||||||
  <ContentWrap>
 | 
					  <ContentWrap>
 | 
				
			||||||
    <!-- 列表 -->
 | 
					    <!-- 列表 -->
 | 
				
			||||||
    <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar">
 | 
					    <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar">
 | 
				
			||||||
 | 
					      <!-- 操作:导出 -->
 | 
				
			||||||
      <template #toolbar_buttons>
 | 
					      <template #toolbar_buttons>
 | 
				
			||||||
        <XButton
 | 
					        <XButton
 | 
				
			||||||
          type="warning"
 | 
					          type="warning"
 | 
				
			||||||
 | 
				
			|||||||
@ -26,7 +26,7 @@ const crudSchemas = reactive<VxeCrudSchema>({
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      title: '浏览器',
 | 
					      title: '浏览器',
 | 
				
			||||||
      field: 'userAgent'
 | 
					      field: 'userAgent' // TODO 星语:调宽一点,UA 稍微多展示一点,虽然最终都会缩略
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      title: '登陆结果',
 | 
					      title: '登陆结果',
 | 
				
			||||||
@ -34,7 +34,7 @@ const crudSchemas = reactive<VxeCrudSchema>({
 | 
				
			|||||||
      dictType: DICT_TYPE.SYSTEM_LOGIN_RESULT
 | 
					      dictType: DICT_TYPE.SYSTEM_LOGIN_RESULT
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      title: '登录日期',
 | 
					      title: '登录日期', // TODO 星语:有点窄,看看咋调宽一点,避免日期展示不全
 | 
				
			||||||
      field: 'createTime',
 | 
					      field: 'createTime',
 | 
				
			||||||
      formatter: 'formatDate',
 | 
					      formatter: 'formatDate',
 | 
				
			||||||
      isSearch: true,
 | 
					      isSearch: true,
 | 
				
			||||||
 | 
				
			|||||||
@ -24,7 +24,7 @@
 | 
				
			|||||||
        <XTextButton
 | 
					        <XTextButton
 | 
				
			||||||
          preIcon="ep:view"
 | 
					          preIcon="ep:view"
 | 
				
			||||||
          :title="t('action.detail')"
 | 
					          :title="t('action.detail')"
 | 
				
			||||||
          v-hasPermi="['system:notice:update']"
 | 
					          v-hasPermi="['system:notice:query']"
 | 
				
			||||||
          @click="handleDetail(row.id)"
 | 
					          @click="handleDetail(row.id)"
 | 
				
			||||||
        />
 | 
					        />
 | 
				
			||||||
        <!-- 操作:删除 -->
 | 
					        <!-- 操作:删除 -->
 | 
				
			||||||
@ -148,7 +148,7 @@ const submitForm = async () => {
 | 
				
			|||||||
        dialogVisible.value = false
 | 
					        dialogVisible.value = false
 | 
				
			||||||
      } finally {
 | 
					      } finally {
 | 
				
			||||||
        actionLoading.value = false
 | 
					        actionLoading.value = false
 | 
				
			||||||
        // 刷新列表
 | 
					        // 刷新列表 TODO 星语:这里要有个 await
 | 
				
			||||||
        reloadList(xGrid)
 | 
					        reloadList(xGrid)
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -34,7 +34,7 @@ const crudSchemas = reactive<VxeCrudSchema>({
 | 
				
			|||||||
      isSearch: true
 | 
					      isSearch: true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      title: '公告内容',
 | 
					      title: '公告内容', // TODO 星语:详情时,公告展示有办法是 html 么?
 | 
				
			||||||
      field: 'content',
 | 
					      field: 'content',
 | 
				
			||||||
      table: {
 | 
					      table: {
 | 
				
			||||||
        type: 'html'
 | 
					        type: 'html'
 | 
				
			||||||
@ -47,7 +47,8 @@ const crudSchemas = reactive<VxeCrudSchema>({
 | 
				
			|||||||
        componentProps: {
 | 
					        componentProps: {
 | 
				
			||||||
          valueHtml: ''
 | 
					          valueHtml: ''
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      },
 | 
				
			||||||
 | 
					      isTable: false
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      title: t('common.createTime'),
 | 
					      title: t('common.createTime'),
 | 
				
			||||||
 | 
				
			|||||||
@ -49,21 +49,21 @@ const crudSchemas = reactive<VxeCrudSchema>({
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      title: '访问令牌的有效期',
 | 
					      title: '访问令牌的有效期',
 | 
				
			||||||
      field: 'accessTokenValiditySeconds',
 | 
					      field: 'accessTokenValiditySeconds', // TODO 星语:展示时,要有 xxx 秒
 | 
				
			||||||
      form: {
 | 
					      form: {
 | 
				
			||||||
        component: 'InputNumber'
 | 
					        component: 'InputNumber'
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      title: '刷新令牌的有效期',
 | 
					      title: '刷新令牌的有效期',
 | 
				
			||||||
      field: 'refreshTokenValiditySeconds',
 | 
					      field: 'refreshTokenValiditySeconds', // TODO 星语:展示时,要有 xxx 秒
 | 
				
			||||||
      form: {
 | 
					      form: {
 | 
				
			||||||
        component: 'InputNumber'
 | 
					        component: 'InputNumber'
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      title: '授权类型',
 | 
					      title: '授权类型',
 | 
				
			||||||
      field: 'authorizedGrantTypes',
 | 
					      field: 'authorizedGrantTypes', // TODO 星语:详情展示时,应该类似 table 也是多个 tag
 | 
				
			||||||
      table: {
 | 
					      table: {
 | 
				
			||||||
        width: 300,
 | 
					        width: 300,
 | 
				
			||||||
        slots: {
 | 
					        slots: {
 | 
				
			||||||
@ -74,17 +74,17 @@ const crudSchemas = reactive<VxeCrudSchema>({
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
      title: '授权范围',
 | 
					      title: '授权范围',
 | 
				
			||||||
      field: 'scopes', // TODO @星语:带输入的 SELECT
 | 
					      field: 'scopes', // TODO @星语:带输入的 SELECT
 | 
				
			||||||
      isTable: false
 | 
					      isTable: false // TODO 星语:详情展示时,应该类似 table 也是多个 tag
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      title: '自动授权范围',
 | 
					      title: '自动授权范围',
 | 
				
			||||||
      field: 'autoApproveScopes', // TODO @星语:带输入的 SELECT
 | 
					      field: 'autoApproveScopes', // TODO @星语:带输入的 SELECT
 | 
				
			||||||
      isTable: false
 | 
					      isTable: false // TODO 星语:详情展示时,应该类似 table 也是多个 tag
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      title: '可重定向的 URI 地址',
 | 
					      title: '可重定向的 URI 地址',
 | 
				
			||||||
      field: 'redirectUris', // TODO @星语:带输入的 SELECT
 | 
					      field: 'redirectUris', // TODO @星语:带输入的 SELECT
 | 
				
			||||||
      isTable: false
 | 
					      isTable: false // TODO 星语:详情展示时,应该类似 table 也是多个 tag
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      title: '权限',
 | 
					      title: '权限',
 | 
				
			||||||
 | 
				
			|||||||
@ -2,8 +2,8 @@
 | 
				
			|||||||
  <ContentWrap>
 | 
					  <ContentWrap>
 | 
				
			||||||
    <!-- 列表 -->
 | 
					    <!-- 列表 -->
 | 
				
			||||||
    <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar">
 | 
					    <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar">
 | 
				
			||||||
      <!-- 操作:新增 -->
 | 
					 | 
				
			||||||
      <template #toolbar_buttons>
 | 
					      <template #toolbar_buttons>
 | 
				
			||||||
 | 
					        <!-- 操作:新增 -->
 | 
				
			||||||
        <XButton
 | 
					        <XButton
 | 
				
			||||||
          type="primary"
 | 
					          type="primary"
 | 
				
			||||||
          preIcon="ep:zoom-in"
 | 
					          preIcon="ep:zoom-in"
 | 
				
			||||||
@ -34,7 +34,7 @@
 | 
				
			|||||||
        <XTextButton
 | 
					        <XTextButton
 | 
				
			||||||
          preIcon="ep:view"
 | 
					          preIcon="ep:view"
 | 
				
			||||||
          :title="t('action.detail')"
 | 
					          :title="t('action.detail')"
 | 
				
			||||||
          v-hasPermi="['system:oauth2-client:update']"
 | 
					          v-hasPermi="['system:oauth2-client:query']"
 | 
				
			||||||
          @click="handleDetail(row.id)"
 | 
					          @click="handleDetail(row.id)"
 | 
				
			||||||
        />
 | 
					        />
 | 
				
			||||||
        <!-- 操作:删除 -->
 | 
					        <!-- 操作:删除 -->
 | 
				
			||||||
 | 
				
			|||||||
@ -2,8 +2,8 @@
 | 
				
			|||||||
  <ContentWrap>
 | 
					  <ContentWrap>
 | 
				
			||||||
    <!-- 列表 -->
 | 
					    <!-- 列表 -->
 | 
				
			||||||
    <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar">
 | 
					    <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar">
 | 
				
			||||||
      <!-- 操作:新增 -->
 | 
					 | 
				
			||||||
      <template #toolbar_buttons>
 | 
					      <template #toolbar_buttons>
 | 
				
			||||||
 | 
					        <!-- 操作:新增 -->
 | 
				
			||||||
        <XButton
 | 
					        <XButton
 | 
				
			||||||
          type="warning"
 | 
					          type="warning"
 | 
				
			||||||
          preIcon="ep:download"
 | 
					          preIcon="ep:download"
 | 
				
			||||||
@ -74,6 +74,7 @@ const handleDetail = (row: OperateLogApi.OperateLogVO) => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// 导出操作
 | 
					// 导出操作
 | 
				
			||||||
const handleExport = async () => {
 | 
					const handleExport = async () => {
 | 
				
			||||||
 | 
					  // TODO 星语:缺少 await 噢
 | 
				
			||||||
  exportList(xGrid, '岗位列表.xls')
 | 
					  exportList(xGrid, '岗位列表.xls')
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
				
			|||||||
@ -25,11 +25,13 @@ const crudSchemas = reactive<VxeCrudSchema>({
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      title: '请求方法名',
 | 
					      title: '请求方法名',
 | 
				
			||||||
      field: 'requestMethod'
 | 
					      field: 'requestMethod',
 | 
				
			||||||
 | 
					      isTable: false
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      title: '请求地址',
 | 
					      title: '请求地址',
 | 
				
			||||||
      field: 'requestUrl'
 | 
					      field: 'requestUrl',
 | 
				
			||||||
 | 
					      isTable: false
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      title: '操作人员',
 | 
					      title: '操作人员',
 | 
				
			||||||
@ -57,7 +59,8 @@ const crudSchemas = reactive<VxeCrudSchema>({
 | 
				
			|||||||
        slots: {
 | 
					        slots: {
 | 
				
			||||||
          default: 'resultCode'
 | 
					          default: 'resultCode'
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      },
 | 
				
			||||||
 | 
					      isSearch: true // TODO 星语:这里可能有点特殊,不确定好不好处理哈。管理后台返回的是错误码,最终前台展示的是 成功 or 失败,然后筛选页是这样的
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      title: '操作日期',
 | 
					      title: '操作日期',
 | 
				
			||||||
 | 
				
			|||||||
@ -2,8 +2,8 @@
 | 
				
			|||||||
  <ContentWrap>
 | 
					  <ContentWrap>
 | 
				
			||||||
    <!-- 列表 -->
 | 
					    <!-- 列表 -->
 | 
				
			||||||
    <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar">
 | 
					    <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar">
 | 
				
			||||||
      <!-- 操作:新增 -->
 | 
					 | 
				
			||||||
      <template #toolbar_buttons>
 | 
					      <template #toolbar_buttons>
 | 
				
			||||||
 | 
					        <!-- 操作:新增 -->
 | 
				
			||||||
        <XButton
 | 
					        <XButton
 | 
				
			||||||
          type="primary"
 | 
					          type="primary"
 | 
				
			||||||
          preIcon="ep:zoom-in"
 | 
					          preIcon="ep:zoom-in"
 | 
				
			||||||
@ -11,6 +11,7 @@
 | 
				
			|||||||
          v-hasPermi="['system:post:create']"
 | 
					          v-hasPermi="['system:post:create']"
 | 
				
			||||||
          @click="handleCreate()"
 | 
					          @click="handleCreate()"
 | 
				
			||||||
        />
 | 
					        />
 | 
				
			||||||
 | 
					        <!-- 操作:导出 -->
 | 
				
			||||||
        <XButton
 | 
					        <XButton
 | 
				
			||||||
          type="warning"
 | 
					          type="warning"
 | 
				
			||||||
          preIcon="ep:download"
 | 
					          preIcon="ep:download"
 | 
				
			||||||
@ -31,7 +32,7 @@
 | 
				
			|||||||
        <XTextButton
 | 
					        <XTextButton
 | 
				
			||||||
          preIcon="ep:view"
 | 
					          preIcon="ep:view"
 | 
				
			||||||
          :title="t('action.detail')"
 | 
					          :title="t('action.detail')"
 | 
				
			||||||
          v-hasPermi="['system:post:update']"
 | 
					          v-hasPermi="['system:post:query']"
 | 
				
			||||||
          @click="handleDetail(row.id)"
 | 
					          @click="handleDetail(row.id)"
 | 
				
			||||||
        />
 | 
					        />
 | 
				
			||||||
        <!-- 操作:删除 -->
 | 
					        <!-- 操作:删除 -->
 | 
				
			||||||
 | 
				
			|||||||
@ -22,7 +22,7 @@
 | 
				
			|||||||
        <XTextButton
 | 
					        <XTextButton
 | 
				
			||||||
          preIcon="ep:view"
 | 
					          preIcon="ep:view"
 | 
				
			||||||
          :title="t('action.detail')"
 | 
					          :title="t('action.detail')"
 | 
				
			||||||
          v-hasPermi="['system:role:update']"
 | 
					          v-hasPermi="['system:role:query']"
 | 
				
			||||||
          @click="handleDetail(row.id)"
 | 
					          @click="handleDetail(row.id)"
 | 
				
			||||||
        />
 | 
					        />
 | 
				
			||||||
        <XTextButton
 | 
					        <XTextButton
 | 
				
			||||||
 | 
				
			|||||||
@ -24,7 +24,7 @@
 | 
				
			|||||||
        <XTextButton
 | 
					        <XTextButton
 | 
				
			||||||
          preIcon="ep:view"
 | 
					          preIcon="ep:view"
 | 
				
			||||||
          :title="t('action.detail')"
 | 
					          :title="t('action.detail')"
 | 
				
			||||||
          v-hasPermi="['system:sms-channel:update']"
 | 
					          v-hasPermi="['system:sms-channel:query']"
 | 
				
			||||||
          @click="handleDetail(row.id)"
 | 
					          @click="handleDetail(row.id)"
 | 
				
			||||||
        />
 | 
					        />
 | 
				
			||||||
        <!-- 操作:删除 -->
 | 
					        <!-- 操作:删除 -->
 | 
				
			||||||
 | 
				
			|||||||
@ -30,7 +30,7 @@
 | 
				
			|||||||
        <XTextButton
 | 
					        <XTextButton
 | 
				
			||||||
          preIcon="ep:view"
 | 
					          preIcon="ep:view"
 | 
				
			||||||
          :title="t('action.detail')"
 | 
					          :title="t('action.detail')"
 | 
				
			||||||
          v-hasPermi="['system:sms-template:update']"
 | 
					          v-hasPermi="['system:sms-template:query']"
 | 
				
			||||||
          @click="handleDetail(row.id)"
 | 
					          @click="handleDetail(row.id)"
 | 
				
			||||||
        />
 | 
					        />
 | 
				
			||||||
        <!-- 操作:删除 -->
 | 
					        <!-- 操作:删除 -->
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user