修复上传问题

This commit is contained in:
橙子
2022-10-16 15:54:49 +08:00
parent 95c506c638
commit cf43dc8e70
15 changed files with 86 additions and 26 deletions

View File

@@ -19,7 +19,7 @@ namespace Yi.Framework.Service
//.WhereIF(!string.IsNullOrEmpty(config.ConfigKey), u => u.ConfigKey.Contains(config.ConfigKey)) //.WhereIF(!string.IsNullOrEmpty(config.ConfigKey), u => u.ConfigKey.Contains(config.ConfigKey))
.WhereIF(page.StartTime is not null && page.EndTime is not null, u => u.CreateTime >= page.StartTime && u.CreateTime <= page.EndTime) .WhereIF(page.StartTime is not null && page.EndTime is not null, u => u.CreateTime >= page.StartTime && u.CreateTime <= page.EndTime)
.WhereIF(entity.IsDeleted is not null, u => u.IsDeleted == entity.IsDeleted) .WhereIF(entity.IsDeleted is not null, u => u.IsDeleted == entity.IsDeleted)
.OrderBy(u => u.CreateTime, OrderByType.Desc) .OrderBy(u => u.CreateTime, OrderByType.Asc)
.ToPageListAsync(page.PageNum, page.PageSize, total); .ToPageListAsync(page.PageNum, page.PageSize, total);
return new PageModel<List<ArticleEntity>>(data, total); return new PageModel<List<ArticleEntity>>(data, total);

View File

@@ -1,8 +1,8 @@
import myaxios from '@/utils/myaxios.ts' import myaxios from '@/utils/myaxios'
import { ArticleEntity } from '@/type/interface/ArticleEntity' import { ArticleEntity } from '@/type/interface/ArticleEntity'
export default { export default {
add(data: ArticleEntity) { add(data:any) {
console.log(data) console.log(data)
return myaxios({ return myaxios({
url: `/article/add`, url: `/article/add`,
@@ -10,7 +10,7 @@ export default {
data: data data: data
}) })
}, },
pageList(data:ArticleEntity) { pageList(data:any) {
return myaxios({ return myaxios({
url: '/article/pageList', url: '/article/pageList',
method: 'get', method: 'get',

View File

@@ -1,4 +1,4 @@
import myaxios from '@/utils/myaxios.ts' import myaxios from '@/utils/myaxios'
export default{ export default{
upload(type:string,data:any){ upload(type:string,data:any){

View File

@@ -1,4 +1,4 @@
import myaxios from '@/utils/myaxios.ts' import myaxios from '@/utils/myaxios'
// 登录方法 // 登录方法
export function login(username:string, password:string, code:string, uuid:string) { export function login(username:string, password:string, code:string, uuid:string) {

View File

@@ -9,7 +9,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref } from 'vue' import { ref } from 'vue'
import {AppGridData} from '@/type/class/AppGridData.ts' import {AppGridData} from '@/type/class/AppGridData'
defineProps<{ data: AppGridData }>() defineProps<{ data: AppGridData }>()
const count = ref(0) const count = ref(0)
</script> </script>

View File

@@ -7,7 +7,6 @@ import 'vant/es/notify/style';
import router from './router' import router from './router'
import store from './store' import store from './store'
import './permission' import './permission'
import App from './App.vue' import App from './App.vue'
const app=createApp(App) const app=createApp(App)

View File

@@ -13,7 +13,7 @@ const useUserStore = defineStore(
}), }),
actions: { actions: {
// 登录 // 登录
login(userInfo) { login(userInfo:any ) {
const username = userInfo.username.trim() const username = userInfo.username.trim()
const password = userInfo.password const password = userInfo.password
const code = userInfo.code const code = userInfo.code
@@ -48,7 +48,7 @@ const useUserStore = defineStore(
// this.permissions=["*:*:*"] // this.permissions=["*:*:*"]
} else { } else {
this.roles = ['ROLE_DEFAULT'] this.roles = ["ROLE_DEFAULT"] as never[]
} }
// this.roles = ["admin"]; // this.roles = ["admin"];
// this.permissions=["*:*:*"] // this.permissions=["*:*:*"]
@@ -67,7 +67,8 @@ const useUserStore = defineStore(
// 退出系统 // 退出系统
logOut() { logOut() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
logout(this.token).then((response) => { //this.token
logout().then((response) => {
this.token = '' this.token = ''
this.roles = [] this.roles = []
this.permissions = [] this.permissions = []

View File

@@ -1,3 +1,4 @@
import axios from 'axios' import axios from 'axios'
// import store from '../store/index' // import store from '../store/index'
// import vm from '../main' // import vm from '../main'
@@ -24,12 +25,12 @@ const myaxios = axios.create({
}], }],
}) })
// 请求拦截器 // 请求拦截器
myaxios.interceptors.request.use(function(config) { myaxios.interceptors.request.use(function(config:any) {
const isToken = (config.headers || {}).isToken === false const isToken = (config.headers || {}).isToken === false
// 是否需要防止数据重复提交 // 是否需要防止数据重复提交
const isRepeatSubmit = (config.headers || {}).repeatSubmit === false const isRepeatSubmit = (config.headers || {}).repeatSubmit === false
if (getToken() && !isToken) { if (getToken() && !isToken) {
config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 config.headers['Authorization'] = 'Bearer ' + getToken()
} }
// store.dispatch("openLoad"); // store.dispatch("openLoad");
return config; return config;

View File

@@ -73,8 +73,8 @@ import { ref, onMounted, reactive, toRefs } from "vue";
import { ImagePreview, Toast } from "vant"; import { ImagePreview, Toast } from "vant";
import AppCreateTime from "@/components/AppCreateTime.vue"; import AppCreateTime from "@/components/AppCreateTime.vue";
import AppUserIcon from "@/components/AppUserIcon.vue"; import AppUserIcon from "@/components/AppUserIcon.vue";
import articleApi from "@/api/articleApi.ts"; import articleApi from "@/api/articleApi";
import { ArticleEntity } from "@/type/interface/ArticleEntity.ts"; import { ArticleEntity } from "@/type/interface/ArticleEntity";
const VanImagePreview = ImagePreview.Component; const VanImagePreview = ImagePreview.Component;
const url = `${import.meta.env.VITE_APP_BASE_API}/file/`; const url = `${import.meta.env.VITE_APP_BASE_API}/file/`;
const data = reactive({ const data = reactive({
@@ -88,7 +88,7 @@ const data = reactive({
}); });
const { queryParams } = toRefs(data); const { queryParams } = toRefs(data);
const articleList = ref<ArticleEntity[]>([]); const articleList = ref<any[]>([]);
const totol = ref<Number>(0); const totol = ref<Number>(0);
const imageShow = ref(false); const imageShow = ref(false);
const index = ref(0); const index = ref(0);
@@ -119,7 +119,7 @@ const onLoad = async () => {
finished.value = true; finished.value = true;
} else { } else {
console.log("执行"); console.log("执行");
articleList.value.push(...(response.data.data as ArticleEntity[])); articleList.value.push(...(response.data.data));
totol.value = response.data.totol; totol.value = response.data.totol;
queryParams.value.pageNum += 1; queryParams.value.pageNum += 1;
} }
@@ -149,7 +149,7 @@ onMounted(() => {
const getList = () => { const getList = () => {
articleApi.pageList(queryParams.value).then((response: any) => { articleApi.pageList(queryParams.value).then((response: any) => {
articleList.value.push(...(response.data.data as ArticleEntity[])); articleList.value.push(...(response.data.data));
totol.value = response.data.totol; totol.value = response.data.totol;
}); });
}; };

View File

@@ -90,7 +90,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import AppGrid from "@/components/AppGrid.vue"; import AppGrid from "@/components/AppGrid.vue";
import { AppGridData } from "@/type/class/AppGridData.ts"; import { AppGridData } from "@/type/class/AppGridData";
import { ref } from "vue"; import { ref } from "vue";
import { Dialog } from "vant"; import { Dialog } from "vant";
import useUserStore from "@/store/modules/user"; import useUserStore from "@/store/modules/user";

View File

@@ -39,7 +39,7 @@
<van-divider /> <van-divider />
<van-row> <van-row>
<van-col class="img-col" span="24"> <van-col class="img-col" span="24">
<van-uploader :after-read="afterRead" v-model="fileList" multiple /> <van-uploader accept="image/*" :after-read="afterRead" v-model="fileList" multiple />
</van-col> </van-col>
</van-row> </van-row>
</div> </div>
@@ -47,9 +47,9 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref, onMounted, reactive, toRefs,watch } from "vue"; import { ref, onMounted, reactive, toRefs,watch } from "vue";
import { ArticleEntity } from "@/type/interface/ArticleEntity.ts"; import { ArticleEntity } from "@/type/interface/ArticleEntity";
import fileApi from "@/api/fileApi.ts"; import fileApi from "@/api/fileApi";
import articleApi from "@/api/articleApi.ts"; import articleApi from "@/api/articleApi";
import { Toast } from "vant"; import { Toast } from "vant";
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
const router = useRouter(); const router = useRouter();
@@ -58,6 +58,7 @@ const form = reactive<ArticleEntity>({
content: "", content: "",
images: [], images: [],
isDeleted: false, isDeleted: false,
createTime:""
}); });
const isSend=ref(false) const isSend=ref(false)
@@ -68,7 +69,6 @@ onMounted(() => {
visible.value = true; visible.value = true;
}); });
const afterRead = (file: any) => { const afterRead = (file: any) => {
file.status = "uploading"; file.status = "uploading";
file.message = "上传中..."; file.message = "上传中...";
var formData = new FormData(); var formData = new FormData();
@@ -83,12 +83,20 @@ else
file.forEach((f:any) => { file.forEach((f:any) => {
formData.append("file", f.file); formData.append("file", f.file);
}); });
Toast({
message: "全部文件正在上传",
position: "bottom",
});
} }
fileApi.upload("image", formData) fileApi.upload("image", formData)
.then((response: any) => { .then((response: any) => {
images.value.push(...response.data); images.value.push(...response.data);
file.status = "done"; file.status = "done";
file.message = "成功"; file.message = "成功";
Toast({
message: "文件上传成功",
position: "bottom",
});
}) })
}; };
@@ -118,7 +126,6 @@ watch(()=>form.content,(newValue,oldValue)=>{
{ {
isSend.value=true isSend.value=true
} }
console.log(isSend.value?'#FFF':'#111')
}) })
</script> </script>
<style scoped> <style scoped>

View File

@@ -13,6 +13,11 @@
"lib": ["ESNext", "DOM"], "lib": ["ESNext", "DOM"],
"skipLibCheck": true, "skipLibCheck": true,
// "strictPropertyInitialization": false // "strictPropertyInitialization": false
"paths": {
"@": ["./src"],
// "@/*": ["./src/*"] // 多加个这个,
"@/*": ["./src/*"]
}
}, },
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
"references": [{ "path": "./tsconfig.node.json" }] "references": [{ "path": "./tsconfig.node.json" }]

View File

@@ -19,7 +19,8 @@ export default defineConfig(({ mode, command }) => {
// 设置路径 // 设置路径
'~': path.resolve(__dirname, './'), '~': path.resolve(__dirname, './'),
// 设置别名 // 设置别名
'@': path.resolve(__dirname, './src') // '@': path.resolve(__dirname, './src'),
"@": path.join(__dirname, "./src"),
} }
}, },
server: { server: {

View File

@@ -0,0 +1,46 @@
// vite.config.ts
import { defineConfig, loadEnv } from "vite";
import path from "path";
import vue from "@vitejs/plugin-vue";
import Components from "unplugin-vue-components/vite";
import { VantResolver } from "unplugin-vue-components/resolvers";
var __vite_injected_original_dirname = "D:\\CC.Yi\\CC.Yi\\Yi.Vue3.x.Vant";
var vite_config_default = defineConfig(
({ mode, command }) => {
const env = loadEnv(mode, process.cwd());
const { VITE_APP_ENV, VITE_APP_BASE_URL } = env;
return {
plugins: [vue(), Components({
resolvers: [VantResolver()]
})],
resolve: {
alias: {
"~": path.resolve(__vite_injected_original_dirname, "./"),
"@": path.join(__vite_injected_original_dirname, "./src")
}
},
server: {
port: 17e3,
host: true,
open: true,
proxy: {
"/dev-api": {
target: VITE_APP_BASE_URL,
changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api/, "")
},
"/dev-ws": {
target: VITE_APP_BASE_URL,
changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-ws/, ""),
ws: true
}
}
}
};
}
);
export {
vite_config_default as default
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJEOlxcXFxDQy5ZaVxcXFxDQy5ZaVxcXFxZaS5WdWUzLnguVmFudFwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRDpcXFxcQ0MuWWlcXFxcQ0MuWWlcXFxcWWkuVnVlMy54LlZhbnRcXFxcdml0ZS5jb25maWcudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0Q6L0NDLllpL0NDLllpL1lpLlZ1ZTMueC5WYW50L3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgZGVmaW5lQ29uZmlnLCBsb2FkRW52IH0gZnJvbSAndml0ZSdcclxuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcclxuaW1wb3J0IHZ1ZSBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUnXHJcbmltcG9ydCBDb21wb25lbnRzIGZyb20gJ3VucGx1Z2luLXZ1ZS1jb21wb25lbnRzL3ZpdGUnO1xyXG5pbXBvcnQgeyBWYW50UmVzb2x2ZXIgfSBmcm9tICd1bnBsdWdpbi12dWUtY29tcG9uZW50cy9yZXNvbHZlcnMnO1xyXG5cclxuXHJcbi8vIGh0dHBzOi8vdml0ZWpzLmRldi9jb25maWcvXHJcbmV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbmZpZygoeyBtb2RlLCBjb21tYW5kIH0pID0+IHtcclxuICBjb25zdCBlbnYgPSBsb2FkRW52KG1vZGUsIHByb2Nlc3MuY3dkKCkpXHJcbiAgY29uc3QgeyBWSVRFX0FQUF9FTlYsIFZJVEVfQVBQX0JBU0VfVVJMfSA9IGVudlxyXG4gIHJldHVybiB7XHJcbiAgICBwbHVnaW5zOiBbdnVlKCksIENvbXBvbmVudHMoe1xyXG4gICAgICByZXNvbHZlcnM6IFtWYW50UmVzb2x2ZXIoKV0sXHJcbiAgICB9KSxdLFxyXG4gICAgcmVzb2x2ZToge1xyXG4gICAgICAvLyBodHRwczovL2NuLnZpdGVqcy5kZXYvY29uZmlnLyNyZXNvbHZlLWFsaWFzXHJcbiAgICAgIGFsaWFzOiB7XHJcbiAgICAgICAgLy8gXHU4QkJFXHU3RjZFXHU4REVGXHU1Rjg0XHJcbiAgICAgICAgJ34nOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi8nKSxcclxuICAgICAgICAvLyBcdThCQkVcdTdGNkVcdTUyMkJcdTU0MERcclxuICAgICAgICAvLyAnQCc6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuL3NyYycpLFxyXG4gICAgICAgIFwiQFwiOiBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4vc3JjXCIpLFxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgc2VydmVyOiB7XHJcbiAgICAgIHBvcnQ6IDE3MDAwLFxyXG4gICAgICBob3N0OiB0cnVlLFxyXG4gICAgICBvcGVuOiB0cnVlLFxyXG4gIFxyXG4gICAgICBcclxuICAgICAgcHJveHk6IHtcclxuICAgICAgICAvLyBodHRwczovL2NuLnZpdGVqcy5kZXYvY29uZmlnLyNzZXJ2ZXItcHJveHlcclxuICAgICAgICAnL2Rldi1hcGknOiB7XHJcbiAgICAgICAgICB0YXJnZXQ6IFZJVEVfQVBQX0JBU0VfVVJMLFxyXG4gICAgICAgICAgY2hhbmdlT3JpZ2luOiB0cnVlLFxyXG4gICAgICAgICAgcmV3cml0ZTogKHApID0+IHAucmVwbGFjZSgvXlxcL2Rldi1hcGkvLCAnJyksXHJcbiAgICAgICAgfSxcclxuICBcclxuICAgICAgICAnL2Rldi13cyc6IHtcclxuICAgICAgICAgIHRhcmdldDogVklURV9BUFBfQkFTRV9VUkwsXHJcbiAgICAgICAgICBjaGFuZ2VPcmlnaW46IHRydWUsXHJcbiAgICAgICAgICByZXdyaXRlOiAocCkgPT4gcC5yZXBsYWNlKC9eXFwvZGV2LXdzLywgJycpLFxyXG4gICAgICAgICAgd3M6IHRydWVcclxuICAgICAgICB9XHJcbiAgXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfVxyXG5cclxufVxyXG5cclxuKVxyXG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQWlSLFNBQVMsY0FBYyxlQUFlO0FBQ3ZULE9BQU8sVUFBVTtBQUNqQixPQUFPLFNBQVM7QUFDaEIsT0FBTyxnQkFBZ0I7QUFDdkIsU0FBUyxvQkFBb0I7QUFKN0IsSUFBTSxtQ0FBbUM7QUFRekMsSUFBTyxzQkFBUTtBQUFBLEVBQWEsQ0FBQyxFQUFFLE1BQU0sUUFBUSxNQUFNO0FBQ2pELFVBQU0sTUFBTSxRQUFRLE1BQU0sUUFBUSxJQUFJLENBQUM7QUFDdkMsVUFBTSxFQUFFLGNBQWMsa0JBQWlCLElBQUk7QUFDM0MsV0FBTztBQUFBLE1BQ0wsU0FBUyxDQUFDLElBQUksR0FBRyxXQUFXO0FBQUEsUUFDMUIsV0FBVyxDQUFDLGFBQWEsQ0FBQztBQUFBLE1BQzVCLENBQUMsQ0FBRTtBQUFBLE1BQ0gsU0FBUztBQUFBLFFBRVAsT0FBTztBQUFBLFVBRUwsS0FBSyxLQUFLLFFBQVEsa0NBQVcsSUFBSTtBQUFBLFVBR2pDLEtBQUssS0FBSyxLQUFLLGtDQUFXLE9BQU87QUFBQSxRQUNuQztBQUFBLE1BQ0Y7QUFBQSxNQUNBLFFBQVE7QUFBQSxRQUNOLE1BQU07QUFBQSxRQUNOLE1BQU07QUFBQSxRQUNOLE1BQU07QUFBQSxRQUdOLE9BQU87QUFBQSxVQUVMLFlBQVk7QUFBQSxZQUNWLFFBQVE7QUFBQSxZQUNSLGNBQWM7QUFBQSxZQUNkLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxjQUFjLEVBQUU7QUFBQSxVQUM1QztBQUFBLFVBRUEsV0FBVztBQUFBLFlBQ1QsUUFBUTtBQUFBLFlBQ1IsY0FBYztBQUFBLFlBQ2QsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLGFBQWEsRUFBRTtBQUFBLFlBQ3pDLElBQUk7QUFBQSxVQUNOO0FBQUEsUUFFRjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsRUFFRjtBQUVBOyIsCiAgIm5hbWVzIjogW10KfQo=