api+页面调整

This commit is contained in:
joylink_zhaoerwei 2024-09-24 09:31:28 +08:00
parent a7f6fc945d
commit a476abc7a4
8 changed files with 93 additions and 50 deletions

View File

@ -9,6 +9,18 @@ export enum DraftDataType {
ISCS = 'ISCS', ISCS = 'ISCS',
} }
export enum IscsStyle {
UNKNOWN,
DA_SHI_ZHI_NENG = 'DA_SHI_ZHI_NENG',
}
export const iscsStyleOption = [
{
label: '达实智能',
value: IscsStyle.DA_SHI_ZHI_NENG,
},
];
export interface DraftItem { export interface DraftItem {
id: number; id: number;
name: string; name: string;
@ -90,15 +102,10 @@ export async function sharedDraftPageQuery(
* @param params * @param params
* @returns * @returns
*/ */
export enum IscsStyle {
UNKNOWN,
DA_SHI_ZHI_NENG = 'DA_SHI_ZHI_NENG',
}
interface CreateDraftIscsDto { interface CreateDraftIscsDto {
input: { input: {
name: string; name: string;
options: IscsDataOptions; options: IscsDataOptions;
userId: number;
}; };
} }
export function createDraft(params: CreateDraftIscsDto) { export function createDraft(params: CreateDraftIscsDto) {
@ -204,11 +211,10 @@ export function saveDraft(variables: { id: number; data: string }) {
export async function saveAsDraft(variables: { export async function saveAsDraft(variables: {
id: number; id: number;
name: string; name: string;
userId: number; }) {
}): Promise<DraftItem> {
const mutation = ` const mutation = `
mutation saveAsNewDraftData($id: Int,$name: String,$userId: Int) { mutation saveAsNewDraftData($id: Int,$name: String) {
saveAsNewDraftData(id: $id,name: $name,userId: $userId){ saveAsNewDraftData(id: $id,name: $name){
id id
} }
} }

View File

@ -127,10 +127,10 @@ export async function publishPageQuery(
* 稿 * 稿
* @param id id * @param id id
*/ */
export function saveToDraft(variables: { versionId: number; userId: number }) { export function saveToDraft(variables: { versionId: number }) {
const mutation = ` const mutation = `
mutation createDraftDataFromReleaseDataVersion($versionId: Int,$userId: Int) { mutation createDraftDataFromReleaseDataVersion($versionId: Int) {
createDraftDataFromReleaseDataVersion(versionId: $versionId,userId: $userId){name} createDraftDataFromReleaseDataVersion(versionId: $versionId){name}
} }
`; `;
return api.post('', { return api.post('', {

View File

@ -68,15 +68,17 @@ export class ApiError {
const api = axios.create({ baseURL: getHttpBase() }); const api = axios.create({ baseURL: getHttpBase() });
let isOpenDialog = false; // 认证弹窗是否打开 let isOpenDialog = false; // 认证弹窗是否打开
//const CancelToken = axios.CancelToken; const CancelToken = axios.CancelToken;
//const source = CancelToken.source(); const source = CancelToken.source();
export default boot(({ app, router }) => { export default boot(({ app, router }) => {
// for use inside Vue files (Options API) through this.$axios and this.$api // for use inside Vue files (Options API) through this.$axios and this.$api
// 拦截请求,添加 // 拦截请求,添加
/* api.interceptors.request.use( api.interceptors.request.use(
(config) => { (config) => {
config.headers.Authorization = getJwtToken(); //config.headers.Authorization = getJwtToken();
config.headers.Authorization = 'Bearer 1e2d0d5d96034f4a0805af6512051ddc';
config.headers['Token'] = '1e2d0d5d96034f4a0805af6512051ddc';
config.cancelToken = source.token; config.cancelToken = source.token;
if (isOpenDialog) { if (isOpenDialog) {
source.cancel(); source.cancel();
@ -86,7 +88,7 @@ export default boot(({ app, router }) => {
(err: AxiosError) => { (err: AxiosError) => {
return Promise.reject(ApiError.from(err)); return Promise.reject(ApiError.from(err));
} }
); */ );
api.interceptors.response.use( api.interceptors.response.use(
(response) => { (response) => {

View File

@ -143,18 +143,17 @@ import { Rect } from 'src/graphics/rect/Rect';
import { getIscsStyleConfig } from 'src/configs/iscsStyleConfig'; import { getIscsStyleConfig } from 'src/configs/iscsStyleConfig';
import { IscsStyle, saveAsDraft } from 'src/api/DraftApi'; import { IscsStyle, saveAsDraft } from 'src/api/DraftApi';
import DraggableDialog from 'src/components/common/DraggableDialog.vue'; import DraggableDialog from 'src/components/common/DraggableDialog.vue';
import { ApiError } from 'src/boot/axios';
import { useAuthStore } from 'src/stores/auth-store';
import { successNotify } from 'src/utils/CommonNotify'; import { successNotify } from 'src/utils/CommonNotify';
import { saveDrawDatas } from 'src/drawApp/iscsApp';
import { saveDrawToServer } from 'src/drawApp/commonApp';
const $q = useQuasar(); const $q = useQuasar();
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();
const searchId = ref(0); const searchId = ref(0);
const drawStore = useDrawStore(); const drawStore = useDrawStore();
const authStore = useAuthStore();
const showDrawTool = ref(true); const showDrawTool = ref(true);
watch( watch(
() => drawStore.drawMode, () => drawStore.drawMode,
(drawMode) => { (drawMode) => {
@ -281,37 +280,40 @@ function onResize() {
} }
} }
function saveAllDrawDatas() {
// const drawApp = drawStore.getDrawApp();
}
function backConfirm() { function backConfirm() {
router.go(-1); router.go(-1);
} }
function saveAllDrawDatas() {
const drawApp = drawStore.getDrawApp();
saveDrawToServer(saveDrawDatas(drawApp));
}
const saveAsDialog = ref(false); const saveAsDialog = ref(false);
const saveAsName = ref(''); const saveAsName = ref('');
async function saveAs(name: string) { async function saveAs(name: string) {
try { const res = await saveAsDraft({
await saveAsDraft({
id: +route.params.id as number, id: +route.params.id as number,
name, name,
userId: authStore.userId,
}); });
successNotify('另存为草稿成功'); if (res.data?.errors && res.data?.errors.length) {
saveAsDialog.value = false;
} catch (err) {
const error = err as ApiError;
$q.notify({ $q.notify({
type: 'negative', type: 'negative',
message: error.title, message: res.data.errors[0].message,
}); });
} else {
successNotify('另存为草稿成功');
saveAsDialog.value = false;
} }
} }
function onTopMenuClick() { function onTopMenuClick(name: string) {
console.log(name);
drawStore.clickSubmenuName = name;
const drawApp = drawStore.getDrawApp(); const drawApp = drawStore.getDrawApp();
const graphics = drawApp.queryStore.getAllGraphics();
graphics.forEach((graphic) => (graphic.visible = false));
drawApp.forceReload(); drawApp.forceReload();
} }
</script> </script>

View File

@ -248,6 +248,7 @@ import {
setDraftRename, setDraftRename,
sharedDraftPageQuery, sharedDraftPageQuery,
PagingQueryParams, PagingQueryParams,
iscsStyleOption,
} from '../api/DraftApi'; } from '../api/DraftApi';
import { ApiError } from 'src/boot/axios'; import { ApiError } from 'src/boot/axios';
import { useRoute, useRouter } from 'vue-router'; import { useRoute, useRouter } from 'vue-router';
@ -260,6 +261,7 @@ import {
} from 'src/api/PublishApi'; } from 'src/api/PublishApi';
import { useAuthStore } from 'src/stores/auth-store'; import { useAuthStore } from 'src/stores/auth-store';
import { PageDto } from 'src/api/ApiCommon'; import { PageDto } from 'src/api/ApiCommon';
import { useDrawStore } from 'src/stores/draw-store';
const $q = useQuasar(); const $q = useQuasar();
const router = useRouter(); const router = useRouter();
@ -270,6 +272,7 @@ const props = withDefaults(
{ sizeHeight: 500 } { sizeHeight: 500 }
); );
const authStore = useAuthStore(); const authStore = useAuthStore();
const drawStore = useDrawStore();
const route = useRoute(); const route = useRoute();
const tableHeight = computed(() => { const tableHeight = computed(() => {
@ -288,6 +291,14 @@ const columnDefs: QTableColumn[] = [
required: true, required: true,
align: 'center', align: 'center',
}, },
{
name: 'type',
label: '类型',
field: (row) => {
return getTypeName(row);
},
align: 'center',
},
{ {
name: 'userId', name: 'userId',
label: '创建人', label: '创建人',
@ -383,18 +394,22 @@ async function onRequest(props: any) {
} }
} }
function getTypeName(row: DraftItem) {
const iscsStyle = allRequestData.find((item) => item.draftData.id == row.id)
.options.style;
const iscsStyleName = iscsStyleOption.find(
(item) => item.value == iscsStyle
).label;
return iscsStyleName || '';
}
// //
const createFormShow = ref(false); const createFormShow = ref(false);
const createForm = reactive({ const createForm = reactive({
draftName: '', draftName: '',
style: IscsStyle.DA_SHI_ZHI_NENG, style: IscsStyle.DA_SHI_ZHI_NENG,
}); });
const iscsStyleOption = [
{
label: '达实智能',
value: IscsStyle.DA_SHI_ZHI_NENG,
},
];
const myForm = ref<QForm | null>(null); const myForm = ref<QForm | null>(null);
function onCreate() { function onCreate() {
myForm.value?.validate().then(async (res) => { myForm.value?.validate().then(async (res) => {
@ -404,7 +419,6 @@ function onCreate() {
input: { input: {
name: createForm.draftName, name: createForm.draftName,
options: { style: createForm.style }, options: { style: createForm.style },
userId: authStore.userId,
}, },
}; };
const res = await createDraft(variables); const res = await createDraft(variables);
@ -426,6 +440,7 @@ function onCreate() {
// //
function goToPath(row: DraftItem) { function goToPath(row: DraftItem) {
drawStore.clickSubmenuName = '车站控制';
let path = `/iscsPainting/${row.id}`; let path = `/iscsPainting/${row.id}`;
const iscsStyle = allRequestData.find((item) => item.draftData.id == row.id) const iscsStyle = allRequestData.find((item) => item.draftData.id == row.id)
.options.style; .options.style;

View File

@ -136,12 +136,13 @@ import {
setPublishRelease, setPublishRelease,
PublishHistoryItem, PublishHistoryItem,
fallbackVersion, fallbackVersion,
PublishIscsDataDto,
} from '../api/PublishApi'; } from '../api/PublishApi';
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
import { ApiError } from 'src/boot/axios'; import { ApiError } from 'src/boot/axios';
import { nextTick } from 'process'; import { nextTick } from 'process';
import { DraftDataType } from 'src/api/DraftApi'; import { DraftDataType, iscsStyleOption } from 'src/api/DraftApi';
import { useAuthStore } from 'src/stores/auth-store';
const route = useRoute(); const route = useRoute();
const $q = useQuasar(); const $q = useQuasar();
@ -152,7 +153,6 @@ const props = withDefaults(
}>(), }>(),
{ sizeHeight: 500, selects: () => [] } { sizeHeight: 500, selects: () => [] }
); );
const authStore = useAuthStore();
const tableHeight = computed(() => { const tableHeight = computed(() => {
return props.sizeHeight - 32; return props.sizeHeight - 32;
}); });
@ -170,6 +170,14 @@ const columnDefs: QTableColumn[] = [
required: true, required: true,
align: 'center', align: 'center',
}, },
{
name: 'type',
label: '类型',
field: (row) => {
return getTypeName(row);
},
align: 'center',
},
{ {
name: 'description', name: 'description',
label: '描述', label: '描述',
@ -213,6 +221,7 @@ const pagination = ref({
}); });
// eslint-disable-next-line // eslint-disable-next-line
let allRequestData: PublishIscsDataDto[] = [];
async function onRequest(props: any) { async function onRequest(props: any) {
const { page, rowsPerPage } = props.pagination; const { page, rowsPerPage } = props.pagination;
const filter = props.filter; const filter = props.filter;
@ -224,7 +233,6 @@ async function onRequest(props: any) {
itemsPerPage: rowsPerPage, itemsPerPage: rowsPerPage,
}, },
query: { query: {
userId: authStore.userId,
dataType: DraftDataType.ISCS, dataType: DraftDataType.ISCS,
name: filter.name, name: filter.name,
}, },
@ -239,6 +247,7 @@ async function onRequest(props: any) {
rows.length, rows.length,
...(response.items.map((item) => item.releaseData) as []) ...(response.items.map((item) => item.releaseData) as [])
); );
allRequestData = response.items;
} catch (err) { } catch (err) {
const error = err as ApiError; const error = err as ApiError;
$q.notify({ $q.notify({
@ -250,6 +259,15 @@ async function onRequest(props: any) {
} }
} }
function getTypeName(row: PublishItem) {
const iscsStyle = allRequestData.find((item) => item.releaseData.id == row.id)
.options.style;
const iscsStyleName = iscsStyleOption.find(
(item) => item.value == iscsStyle
).label;
return iscsStyleName || '';
}
// //
function dataReleaseFn(row: PublishItem) { function dataReleaseFn(row: PublishItem) {
if (row.isPublished) { if (row.isPublished) {
@ -291,7 +309,6 @@ function dataReleaseFn(row: PublishItem) {
function saveToDraftFn(row: PublishItem) { function saveToDraftFn(row: PublishItem) {
saveToDraft({ saveToDraft({
versionId: row.usedVersionId, versionId: row.usedVersionId,
userId: row.userId,
}).then((res) => { }).then((res) => {
if (res.data?.errors && res.data?.errors.length) { if (res.data?.errors && res.data?.errors.length) {
$q.notify({ $q.notify({

View File

@ -2,7 +2,7 @@ import { defineStore } from 'pinia';
export const useAuthStore = defineStore('auth', { export const useAuthStore = defineStore('auth', {
state: () => ({ state: () => ({
userId: 1 as number | null, userId: 8160 as number | null,
}), }),
actions: { actions: {
setUserId(id: number | null) { setUserId(id: number | null) {

View File

@ -20,6 +20,7 @@ export const useDrawStore = defineStore('draw', {
selectedGraphics: null as JlGraphic[] | null, selectedGraphics: null as JlGraphic[] | null,
draftId: null as number | null, draftId: null as number | null,
drawPictureType: null as PictureType | null, drawPictureType: null as PictureType | null,
clickSubmenuName: '车站控制',
}), }),
getters: { getters: {
drawMode: (state) => state.drawAssistant != null, drawMode: (state) => state.drawAssistant != null,