Browse Source

Merge branch '长阳分支中职' of http://123.57.209.16:3000/bjquanjiang/DigitalScholl into 长阳分支中职

临城职教中职
zhangli 2 years ago
parent
commit
fcf26e7fe8
14 changed files with 539 additions and 39 deletions
  1. +2
    -2
      Learun.Framework.Ultimate V7/Learun.Application.Mobile/www/config/config.js
  2. +1
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/StuInfoFreshController.cs
  3. +7
    -3
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuInfoFresh/Form.cshtml
  4. +2
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuInfoFresh/Form.js
  5. +101
    -0
      Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/StuInfoFreshApi.cs
  6. +1
    -1
      Learun.Framework.Ultimate V7/Learun.Application.WebApi/XmlConfig/system.config
  7. +2
    -2
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Base/SystemModule/Annexes/AnnexesFileService.cs
  8. +20
    -1
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoFresh/StuInfoFreshEntity.cs
  9. +15
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/common/mixins.js
  10. +63
    -16
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/learun-mpui/learun-ui-mp/upload.vue
  11. +300
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/upload-file.vue
  12. +4
    -3
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/config.js
  13. +3
    -2
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/MealCardRunTab/list.vue
  14. +18
    -9
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/welcome/list.vue

+ 2
- 2
Learun.Framework.Ultimate V7/Learun.Application.Mobile/www/config/config.js View File

@@ -7,8 +7,8 @@
// web:"http://112.230.201.53/:8081/"//web地址,用于配置logo
//};
var config = {
webapi: 'http://localhost:31173/',
web: "http://localhost:20472/"//web地址,用于配置logo
webapi: 'http://localhost:8088/',
web: "http://localhost:8087/"//web地址,用于配置logo
};
// var config = {
// webapi: 'http://123.57.209.16:31173/',


+ 1
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/StuInfoFreshController.cs View File

@@ -316,6 +316,7 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
public ActionResult GetFormData(string keyValue)
{
var StuInfoFreshData = stuInfoFreshIBLL.GetStuInfoFreshEntity(keyValue);
StuInfoFreshData.Files = StuInfoFreshData.ID;
//获取头像地址
var url = Config.GetValue("defaultheadimg");
if (StuInfoFreshData.IsPhoto == true && !string.IsNullOrEmpty(StuInfoFreshData.Photo))


+ 7
- 3
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuInfoFresh/Form.cshtml View File

@@ -61,9 +61,9 @@
<div id="ResidenceNo"></div>
</div>
@*<div class="col-xs-6 lr-form-item" data-table="StuInfoFresh">
<div class="lr-form-item-title">考生类型 </div>
<div id="TestStuSortNo"></div>
</div>*@
<div class="lr-form-item-title">考生类型 </div>
<div id="TestStuSortNo"></div>
</div>*@
<div class="col-xs-6 lr-form-item" data-table="StuInfoFresh">
<div class="lr-form-item-title">第几志愿 <font face="宋体">*</font> </div>
<input id="WillNo" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" />
@@ -129,6 +129,10 @@
<div class="lr-form-item-title">精准贫困户</div>
<div id="IsPoor"></div>
</div>
@*<div class="col-xs-12 lr-form-item" data-table="StuInfoFresh">
<div class="lr-form-item-title">附件</div>
<div id="Files"></div>
</div>*@


<div class="col-xs-12" id="photoBox">


+ 2
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuInfoFresh/Form.js View File

@@ -25,6 +25,8 @@ var bootstrap = function ($, learun) {
$("#MatriculateSort").lrDataItemSelect({ code: 'enrollType' });
$('#ResidenceNo').lrDataItemSelect({ code: 'ResidenceNo' });
$('#IsPoor').lrDataItemSelect({ code: 'YesOrNoInt' });
//附件
//$('#Files').lrUploader();

$('#StuInfoFreshFamily').jfGrid({
headData: [


+ 101
- 0
Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/StuInfoFreshApi.cs View File

@@ -26,6 +26,8 @@ namespace Learun.Application.WebApi.Modules
Get["/pageList"] = GetPageList;
Get["/form"] = GetForm;
Post["/save"] = SaveForm;
Post["/upload"] = Upload;
Post["/deleteFiles"] = DeleteFiles;

}

@@ -99,8 +101,20 @@ namespace Learun.Application.WebApi.Modules
if (annexesFileEntity != null)
{
url = annexesFileEntity.F_FilePath.Substring(annexesFileEntity.F_FilePath.IndexOf("Resource"));
StuInfoFreshEntity.Url = url;
}
}
//获取附件列表
var annexesFileList = annexesFileIBLL.GetList(StuInfoFreshEntity.ID);
if (annexesFileList.Any())
{
foreach (var item in annexesFileList)
{
item.F_FilePath = item.F_FilePath.Substring(item.F_FilePath.IndexOf("Resource"));
}
StuInfoFreshEntity.FilesList = annexesFileList.ToList();
}

StuInfoFreshEntity.DormitoryName = accdormitoryIBLL.GetDormitoryInfoByPlanStuNo(StuInfoFreshEntity.ID);
if (StuInfoFreshEntity.IsPoor != "1")
{
@@ -335,6 +349,87 @@ namespace Learun.Application.WebApi.Modules
return Success("保存成功!");
}

/// <summary>
/// 上传附件图片文件
/// <summary>
/// <returns></returns>
public Response Upload(dynamic _)
{
var files = (List<HttpFile>)this.Context.Request.Files;
var folderId = this.GetReq<FileModel>().folderId;//文件夹id=新生id

string filePath = Config.GetValue("AnnexesFile");
string uploadDate = DateTime.Now.ToString("yyyyMMdd");
string FileEextension = Path.GetExtension(files[0].Name);
string fileGuid = Guid.NewGuid().ToString();

string virtualPath = string.Format("{0}/{1}/{2}/{3}{4}", filePath, userInfo.userId, uploadDate, fileGuid, FileEextension);

//创建文件夹
string path = Path.GetDirectoryName(virtualPath);
Directory.CreateDirectory(path);
AnnexesFileEntity fileAnnexesEntity = new AnnexesFileEntity();
if (!System.IO.File.Exists(virtualPath))
{
byte[] bytes = new byte[files[0].Value.Length];
files[0].Value.Read(bytes, 0, bytes.Length);
FileInfo file = new FileInfo(virtualPath);
FileStream fs = file.Create();
fs.Write(bytes, 0, bytes.Length);
fs.Close();

//文件信息写入数据库
fileAnnexesEntity.F_Id = fileGuid;
fileAnnexesEntity.F_FolderId = folderId;
fileAnnexesEntity.F_FileName = files[0].Name;
fileAnnexesEntity.F_FilePath = virtualPath;
fileAnnexesEntity.F_FileSize = files[0].Value.Length.ToString();
fileAnnexesEntity.F_FileExtensions = FileEextension;
fileAnnexesEntity.F_FileType = FileEextension.Replace(".", "");
fileAnnexesEntity.F_CreateUserId = userInfo.userId;
fileAnnexesEntity.F_CreateUserName = userInfo.realName;

annexesFileIBLL.SaveEntity(folderId, fileAnnexesEntity);
}

//文件地址截取到resource后
fileAnnexesEntity.F_FilePath = fileAnnexesEntity.F_FilePath.Substring(fileAnnexesEntity.F_FilePath.IndexOf("Resource"));

return Success(fileAnnexesEntity);
}

/// <summary>
/// 删除附件
/// </summary>
/// <param name="_"></param>
/// <returns></returns>
public Response DeleteFiles(dynamic _)
{
var fileId = this.GetReqData<FileModel>().id;

AnnexesFileEntity fileInfoEntity = annexesFileIBLL.GetEntity(fileId);
if (fileInfoEntity != null)
{
//删除附件表
annexesFileIBLL.DeleteEntity(fileId);
//删除文件
if (System.IO.File.Exists(fileInfoEntity.F_FilePath))
{
System.IO.File.Delete(fileInfoEntity.F_FilePath);
}


//下载
//if (FileDownHelper.FileExists(fileInfoEntity.F_FilePath))
//{
// FileDownHelper.DownLoadnew(fileInfoEntity.F_FilePath);
//}
}

return Success("删除成功");
}


#region 私有类

/// <summary>
@@ -389,6 +484,7 @@ namespace Learun.Application.WebApi.Modules
/// </summary>
public List<StuInfoFreshEmergePeopleEntity> StuInfoFreshEmergePeopleEntities { get; set; }


}

public class PhotoModel
@@ -397,5 +493,10 @@ namespace Learun.Application.WebApi.Modules
public string account { get; set; }
}

public class FileModel
{
public string folderId { get; set; }
public string id { get; set; }
}
}
}

+ 1
- 1
Learun.Framework.Ultimate V7/Learun.Application.WebApi/XmlConfig/system.config View File

@@ -65,7 +65,7 @@

<add key="userKey" value="14B417B0-463D-4F2B-8075-0A20EEDB773A" />
<!-- ==================注意附件上传地址 修改到主网站部署目录下的Resource要不然飞星会报错================== -->
<add key="AnnexesFile" value="D:\leiprojects\西昌单校区\Learun.Application.Web\Resource" />
<add key="AnnexesFile" value="D:\Job\DigitalScholl\Learun.Framework.Ultimate V7\Learun.Application.Web\Resource" />
<add key="ReportFile" value="~/Reports" />
<!-- ================== 工作流服务地址 ================== -->
<add key="workflowapi" value="http://localhost:8013" />


+ 2
- 2
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Base/SystemModule/Annexes/AnnexesFileService.cs View File

@@ -13,7 +13,7 @@ namespace Learun.Application.Base.SystemModule
/// 日 期:2017.03.08
/// 描 述:附件管理
/// </summary>
public class AnnexesFileService:RepositoryFactory
public class AnnexesFileService : RepositoryFactory
{
#region 属性 构造函数
private string fieldSql;
@@ -188,7 +188,7 @@ namespace Learun.Application.Base.SystemModule
{
try
{
this.BaseRepository().Delete(new AnnexesFileEntity() { F_Id = fileId });
this.BaseRepository().Delete<AnnexesFileEntity>(x => x.F_Id == fileId);
}
catch (Exception ex)
{


+ 20
- 1
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoFresh/StuInfoFreshEntity.cs View File

@@ -1,5 +1,7 @@
using Learun.Util;
using Learun.Application.Base.SystemModule;
using Learun.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
namespace Learun.Application.TwoDevelopment.EducationalAdministration

@@ -716,6 +718,23 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
[NotMapped]
public bool? IsStudentEdit { get; set; }

/// <summary>
/// 图片显示地址
/// </summary>
[NotMapped]
public string Url { get; set; }

/// <summary>
/// 附件(文件夹id)
/// </summary>
[NotMapped]
public string Files { get; set; }
/// <summary>
/// 附件列表
/// </summary>
[NotMapped]
public List<AnnexesFileEntity> FilesList { get; set; }

#endregion
}
}


+ 15
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/common/mixins.js View File

@@ -263,6 +263,12 @@ export default {

return this.handleResult(err, res)
},
async HTTP_UPLOAD2(url,filePath, formData) {
const [err, res] = await this.UPLOAD(url, filePath, formData)
return this.handleResult(err, res)
},

// 封装的文件下载,集成了验证信息
// 返回临时文件路径或 null
@@ -654,6 +660,7 @@ export default {
title: '登录状态无效,正在跳转到登录页…',
icon: 'none'
})
return null
this.CLEAR_GLOBAL()
uni.reLaunch({
url: '/pages/login'
@@ -673,6 +680,14 @@ export default {

return null
}
if(result.data.code != 200){
uni.hideLoading()
uni.showToast({
title: result.data.info,
icon: 'none'
})
return null
}

return result.data.data
},


+ 63
- 16
Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/learun-mpui/learun-ui-mp/upload.vue View File

@@ -3,14 +3,13 @@
<view class="grid col-4 grid-square flex-sub">
<view
v-for="(item, index) in imgList"
@tap="viewImg"
@tap="viewImg(index)"
:key="index"
class="bg-img"
>
<!-- {{API + '/user/img?data=' + (path.path ? path.path : path)}} -->
<image
v-if="showfile()"
:src="API + item.url"
:src="item.id?CONFIG('webHost')+item.url:item.url"
mode="aspectFill"
></image>
<view v-if="!readonly" @tap.stop="delImg(index)" class="cu-tag bg-red" style="width: 18px; height: 18px; font-size: 24px">
@@ -90,8 +89,26 @@ export default {
},
uploadImage(){
// 单图上传 多图没写
// let array =
// function apiFn(item){
// return this.HTTP_POST('StuInfoFresh/savePhoto', postData, '图片上传失败!').then((data) => {
// if (data) {
// reslove([{
// url:data.Url,
// id:data.AnnexesFileId
// }])
// }else{
// reject('图片上传失败!')
// }
// })
// }
// return this.promiseAllLimit(5,array,apiFn)
// 单图上传
return new Promise(async (reslove,reject)=>{
let hasNotUpdatedList = this.imgList.every(item=>item.id)
if(hasNotUpdatedList){
reslove(this.imgList)
}
if(this.imgList.length){
var postData = {
Base64Url: await this.imgToBase64(this.imgList[0].url)
@@ -110,11 +127,41 @@ export default {
reslove("")
}
})
},
/**
* @description 控制promise.all并发数量
* @param limit 并发数
* @param array 参数列表
* @param apiFn 执行函数
* @returns {Promise<Awaited<unknown>[]>}
*/
async promiseAllLimit(limit, array, apiFn) {
const ret = [] // 用于存放所有的promise实例
const executing = [] // 用于存放目前正在执行的promise
for (const item of array) {
const p = apiFn(item)
ret.push(p)
if (limit <= array.length) {
// then回调中,当这个promise状态变为fulfilled后,将其从正在执行的promise列表executing中删除
const e = p.then(() => executing.splice(executing.indexOf(e), 1))
executing.push(e)
if (executing.length >= limit) {
// 一旦正在执行的promise列表数量等于限制数,就使用Promise.race等待某一个promise状态发生变更,
// 状态变更后,就会执行上面then的回调,将该promise从executing中删除,
// 然后再进入到下一次for循环,生成新的promise进行补充
await Promise.race(executing)
}
}
}
return Promise.all(ret)
},
imgToBase64(url){
return new Promise((resolve,reject)=>{
if(!url){
resolve("")
}
var canvas = document.createElement('canvas'),
ctx = canvas.getContext('2d'),
img = new Image;
@@ -133,18 +180,18 @@ export default {
},
validate(array){
let type = array.every(item=>{
return item.type && item.type.substring(0,6) == "image/"
})
if(!type){
this.TOAST('文件类型错误');
return false
}
// let type = array.every(item=>{
// return item.type && item.type.substring(0,6) == "image/"
// })
// if(!type){
// this.TOAST('文件类型错误');
// return false
// }
let size = array.every(item=>{
return item.size && item.size <= 2 * 1024 * 1024
return item.size && item.size <= 100 * 1024 * 1024
})
if(!size){
this.TOAST('文件大小不得超过2M');
this.TOAST('文件大小不得超过100M');
return false
}
return true
@@ -152,8 +199,8 @@ export default {

viewImg(index) {
uni.previewImage({
urls: this.imgList,
current: this.imgList[index],
urls: this.imgList.map(item=>item.id?this.CONFIG('webHost')+item.url:item.url),
current: this.imgList[index].id?this.CONFIG('webHost')+this.imgList[index].url:this.imgList[index].url,
});
},


+ 300
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/upload-file.vue View File

@@ -0,0 +1,300 @@
<template>
<view class="cu-form-group">
<view class="grid col-4 grid-square flex-sub">
<view
v-for="(item, index) in imgList"
@tap="viewImg(item)"
:key="index"
class="bg-img"
>
<!-- {{API + '/user/img?data=' + (path.path ? path.path : path)}} -->
<!-- <image
v-if="showfile()"
:src="API + item.url"
mode="aspectFill"
></image> -->
<l-icon v-if="showfile()" type="text" />
<text class="file-name">{{item.name}}</text>
<view v-if="!readonly" @tap.stop="delImg(index)" class="cu-tag bg-red" style="width: 18px; height: 18px; font-size: 24px">
<l-icon
type="close"
style="width: 18px; height: 18px; font-size: 12px"
/>
</view>
</view>

<view
v-if="!readonly && imgList.length < Number(number)"
@tap="chooseImg"
class="solids"
>
<l-icon type="file" />
</view>
</view>
</view>
</template>

<script>
export default {

props: {
number: { default: 1 },
readonly: {},
value: { default: () => [] },
folderId:{},
},
data(){
return{
imgList:[],
}
},

methods: {
delImg(index) {
this.LOADING('正在删除…');
const newList = JSON.parse(JSON.stringify(this.imgList));
this.HTTP_POST('StuInfoFresh/deleteFiles', {id:this.imgList[index].id},"文件删除失败").then((data) => {
this.HIDE_LOADING();
if (data) {
newList.splice(index, 1);
this.imgList = newList
this.$emit("update:value", newList);
this.$emit("input", newList);
this.$emit("change");
this.$emit("del");
}
})
},
showfile() {
return true;
},

chooseImg() {
uni.chooseFile({
// count: (Number(this.number) - this.imgList.length),
count: 1,
type:"all",
success: async (res) => {
let {tempFilePaths,tempFiles} = res
if(!this.validate(tempFiles))return
let uploadImageRes = await this.uploadImage(tempFilePaths[0])
let newList = this.imgList || []
if(uploadImageRes){
newList = JSON.parse(JSON.stringify(newList)).concat(uploadImageRes);
}
this.imgList = newList
this.$emit("update:value", newList);
this.$emit("input", newList);
this.$emit("change",newList);
this.$emit("add");
},
});
},
uploadImage(url){
// 文件上传
return new Promise(async (reslove,reject)=>{
this.LOADING('正在上传…');
this.HTTP_UPLOAD2('StuInfoFresh/upload', url||this.imgList[0].url,{folderId:this.folderId}).then((data) => {
this.HIDE_LOADING();
if (data) {
// this.HTTP_GET('StuInfoFresh/upload', {fileId:data})
reslove([{
id:data.F_Id,
name:data.F_FileName,
url:data.F_FilePath
}])
}else{
reject('上传失败!')
}
})
})
},
// 图片文件转为 base64
getPictureBase64(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = (error) => reject(error);
});
},
base64ToBlob (base64) {
const parts = base64.split(";base64,");
const contentType = parts[0].split(":")[1];
const raw = window.atob(parts[1]);
const rawLength = raw.length;
const uInt8Array = new Uint8Array(rawLength);
for (let i = 0; i < rawLength; i += 1) {
uInt8Array[i] = raw.charCodeAt(i);
}
return new Blob([uInt8Array], { type: contentType });
},
imgToBase64(url){
return new Promise((resolve,reject)=>{
var canvas = document.createElement('canvas'),
ctx = canvas.getContext('2d'),
img = new Image;
img.crossOrigin = 'Anonymous';
img.onload = function () {
canvas.height = img.height;
canvas.width = img.width;
ctx.drawImage(img, 0, 0);
var dataURL = canvas.toDataURL('image/png');
canvas = null;
resolve(dataURL)
};
img.src = url;
})
},
ceshi(){
function apiFn(params){
return new Promise((resolve,reject)=>{
this.LOADING('正在上传…');
this.HTTP_UPLOAD2('StuInfoFresh/upload', params.url,{folderId:this.folderId}).then((data) => {
this.HIDE_LOADING();
if (data) {
// this.HTTP_GET('StuInfoFresh/upload', {fileId:data})
this.imgList[params.index] = [{
id:data.F_Id,
name:data.F_FileName,
url:data.F_FilePath
}]
reslove(this.imgList[params.index])
}else{
reject('上传失败!')
}
})
})
}
let array = this.imgList.map(item=>{
if(item.id){
return ""
}else{
return {
url:"learun/adms/annexes/upload"
}
}
})
this.promiseAllLimit(2,[1,2,3,4,5,6,7,8,9],a).then(res=>{
console.log(res)
})
},
/**
* @description 控制promise.all并发数量
* @param limit 并发数
* @param array 参数列表
* @param apiFn 执行函数
* @returns {Promise<Awaited<unknown>[]>}
*/
async promiseAllLimit(limit, array, apiFn) {
const ret = [] // 用于存放所有的promise实例
const executing = [] // 用于存放目前正在执行的promise
for (const item of array) {
const p = apiFn(item)
ret.push(p)
if (limit <= array.length) {
// then回调中,当这个promise状态变为fulfilled后,将其从正在执行的promise列表executing中删除
const e = p.then(() => executing.splice(executing.indexOf(e), 1))
executing.push(e)
if (executing.length >= limit) {
// 一旦正在执行的promise列表数量等于限制数,就使用Promise.race等待某一个promise状态发生变更,
// 状态变更后,就会执行上面then的回调,将该promise从executing中删除,
// 然后再进入到下一次for循环,生成新的promise进行补充
await Promise.race(executing)
}
}
}
return Promise.all(ret)
},
validate(array){
// let type = array.every(item=>{
// return item.type && item.type.substring(0,6) == "image/"
// })
// if(!type){
// this.TOAST('文件类型错误');
// return false
// }
let size = array.every(item=>{
return item.size && item.size <= 200 * 1024 * 1024
})
if(!size){
this.TOAST('文件大小不得超过200M');
return false
}
return true
},

viewImg(item) {
window.location.href = this.CONFIG("webHost")+item.url
},
// previewFile() {
// var file = document.querySelector('input[type=file]').files[0];
// var reader = new FileReader();
// // fileReader.readAsDataURL(blob);
// // fileReader.onerror = () => {
// // reject(new Error('blobToBase64 error'));
// // };
// // var encodedData = window.btoa("Hello, world");
// reader.onloadend = function () {
// //$('#PhotoImg').attr('src', reader.result);
// var postData = {
// Base64Url: reader.result
// }
// this.HTTP_POST(config.webapi + "StuInfoFresh/savePhoto", postData, (data) => {
// if (data) {
// $('#Photo').val(data.AnnexesFileId);
// $('#PhotoImg').attr('src', config.web + data.Url);
// } else {
// learun.layer.toast('采集照片信息失败!');
// }
// });
// }
// if (file) {
// reader.readAsDataURL(file);
// }
// },
},
created() {
// id name
console.log(this.value)
this.imgList = JSON.parse(JSON.stringify(this.value.map(item=>{
return {
id:item.F_Id,
name:item.F_FileName,
url:item.F_FilePath
}
})))
// [{url:"",id:""}]
}
};
</script>

<style scoped>
.file-name{
position: absolute;
bottom: 0;
width: 100%;
color: #606266;
font-size: 13px;
text-align: center;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
</style>

+ 4
- 3
Learun.Framework.Ultimate V7/LearunApp-2.2.0/config.js View File

@@ -22,12 +22,13 @@ export default {
// ],
"apiHost": [
// "http://localhost:31173/"
"http://192.168.10.58:8012/"
"http://192.168.10.85:8088/"
],
"webHost":"http://192.168.10.85:8087/",
// 开发环境下自动填充登录账号密码,与接口地址一一对应,只在开发环境下显示
"devAccount": [
// 20201130230
{ username: "420528200606205026", password: "www.qj.com" }
// 20201130230 21364200000400266 老师 420528196310072253 学生 420528200606205026 420528200507261428
{ username: "21364200000400558", password: "www.qj.com" }
],
//是否分布式部署 指WebApi与Web不在一台服务器
"isDistributed":true,


+ 3
- 2
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/MealCardRunTab/list.vue View File

@@ -14,7 +14,7 @@
<view style="flex: 1;">
<view style="display: flex;">
<view style="flex: 1;color: #303133;font-size: 14px;padding: 8px 0;">
<view class="wrap1">{{item.bigGroup}}</view>
<view class="wrap1">{{item.bigGroup}}{{item.smallGroup?"-"+item.smallGroup:""}}</view>
<view style="color: #909399;font-size: 12px;">
<view>
餐次:{{item.seg||"--"}}
@@ -231,7 +231,8 @@
this.multipleData.StartTime = this.dateRange.start
this.multipleData.EndTime = this.dateRange.end
} else{
this.multipleData.StartTime = ""
this.multipleData.EndTime = ""
}
// console.log(this.dateRange,"==========")


+ 18
- 9
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/welcome/list.vue View File

@@ -63,7 +63,9 @@
<view class="welDel" @click="del('StuInfoFreshEmergePeopleEntities', i)"><text class="text-xxl cuIcon cuIcon-move"></text></view>
</view>
</view>
<view class="btn" @click="tapBtn">保存</view>
<view class="welT" style="padding-top: 10px;">附件</view>
<uploadFile v-if="uploadVisiable" :number="10" :folderId="queryData.ID" :value="fileList"></uploadFile>
<view class="btn" @click="submit">保存</view>
</view>
</template>

@@ -71,11 +73,16 @@
import moment from 'moment';
import get from 'lodash/get';
import set from 'lodash/set';
import uploadFile from '@/components/upload-file.vue'
export default {
components:{
uploadFile,
},
data() {
return {
photo:[],
uploadVisiable:true,
fileList:[],
uploadVisiable:false,
imgSrc: '',
scheme: {
PartyFaceNo: {
@@ -141,8 +148,10 @@ export default {
_this.queryData.StuInfoFreshFamilyEntities = _this.COPY(res.StuInfoFreshFamilyList);
_this.queryData.StuInfoFreshEmergePeopleEntities = _this.COPY(res.StuInfoFreshEmergePeopleList);
_this.queryData.ID = res.StuInfoFreshEntity.ID;
_this.queryData.Photo = res.StuInfoFreshEntity.Photo;
_this.photo = [{url:res.StuInfoFreshEntity.Photo}];
_this.photo = res.StuInfoFreshEntity.Photo?[{url:res.StuInfoFreshEntity.Url,id:res.StuInfoFreshEntity.Photo}]:[];
_this.fileList = res.StuInfoFreshEntity.FilesList||[]
_this.refreshComponent()
_this.queryData.telephone = res.StuInfoFreshEntity.telephone;
_this.queryData.FamilyAddress = res.StuInfoFreshEntity.FamilyAddress;
@@ -150,16 +159,16 @@ export default {
// _this.imgSrc = this.API.slice(0,-1) + res.Url;
});
},
async tapBtn() {
async submit() {
this.LOADING('正在提交数据…');
let res = await this.$refs["upload"].uploadImage()
if(res){
this.queryData.Photo = res[0]["AnnexesFileId"];
if(res&&res.length){
this.queryData.Photo = res[0]["id"];
}else{
this.queryData.Photo = ""
}
console.log(this.queryData)
this.HTTP_GET('StuInfoFresh/saveStuInfoFresh', this.queryData, '加载数据时出错').then(res => {
this.HTTP_GET('StuInfoFresh/saveStuInfoFresh', this.queryData).then(res => {
this.HIDE_LOADING();
// console.log(res);
if (res) {
this.TOAST('保存成功');
}


Loading…
Cancel
Save