|
@@ -9,9 +9,7 @@ export class textbookServer {
|
|
|
company: string = localStorage.getItem('company')!;
|
|
|
theme: boolean = false; //深色主题模式
|
|
|
profile: any = JSON.parse(localStorage.getItem('profile')!);
|
|
|
- constructor(
|
|
|
- private http:HttpClient
|
|
|
- ) {}
|
|
|
+ constructor(private http: HttpClient) {}
|
|
|
authMobile(mobile: string): boolean {
|
|
|
let a = /^1[3456789]\d{9}$/;
|
|
|
if (!String(mobile).match(a)) {
|
|
@@ -59,14 +57,14 @@ export class textbookServer {
|
|
|
//格式化链
|
|
|
async formatNode(id: string): Promise<Array<any>> {
|
|
|
let query = new Parse.Query('Department');
|
|
|
- query.select('name', 'parent', 'hasChildren','type','branch');
|
|
|
+ query.select('name', 'parent', 'hasChildren', 'type', 'branch');
|
|
|
let r = await query.get(id);
|
|
|
let arr = [
|
|
|
{
|
|
|
title: r.get('name'),
|
|
|
key: r.id,
|
|
|
hasChildren: r.get('hasChildren'), //是否是最下级
|
|
|
- type:r.get('type'),
|
|
|
+ type: r.get('type'),
|
|
|
branch: r?.get('branch'),
|
|
|
parent: r?.get('parent')?.id, //上级
|
|
|
},
|
|
@@ -77,37 +75,39 @@ export class textbookServer {
|
|
|
return arr;
|
|
|
}
|
|
|
//获取下级所有部门
|
|
|
- async getChild(id:string):Promise<Array<string>>{
|
|
|
+ async getChild(id: string): Promise<Array<string>> {
|
|
|
console.log(id);
|
|
|
- let arr:Array<string> = [id]
|
|
|
- let query = new Parse.Query('Department')
|
|
|
- query.equalTo('parent',id)
|
|
|
- query.notEqualTo('isDeleted',true)
|
|
|
- query.select('id','hasChildren')
|
|
|
- query.limit(200)
|
|
|
- let r = await query.find()
|
|
|
+ let arr: Array<string> = [id];
|
|
|
+ let query = new Parse.Query('Department');
|
|
|
+ query.equalTo('parent', id);
|
|
|
+ query.notEqualTo('isDeleted', true);
|
|
|
+ query.select('id', 'hasChildren');
|
|
|
+ query.limit(200);
|
|
|
+ let r = await query.find();
|
|
|
for (let index = 0; index < r.length; index++) {
|
|
|
- if(r[index].get('hasChildren')){
|
|
|
- let child:Array<string> = await this.getChild(r[index].id)
|
|
|
- arr.push(...child)
|
|
|
- }else{
|
|
|
- arr.push(r[index].id)
|
|
|
+ if (r[index].get('hasChildren')) {
|
|
|
+ let child: Array<string> = await this.getChild(r[index].id);
|
|
|
+ arr.push(...child);
|
|
|
+ } else {
|
|
|
+ arr.push(r[index].id);
|
|
|
}
|
|
|
}
|
|
|
- return Array.from(new Set([...arr]))
|
|
|
+ return Array.from(new Set([...arr]));
|
|
|
}
|
|
|
- userFind(phone:string){
|
|
|
- return new Promise((res)=>{
|
|
|
- Parse.Cloud.run('userFind',{mobile:phone}).then(data=>{
|
|
|
- if(data){
|
|
|
- res(false)
|
|
|
- }else{
|
|
|
- res(true)
|
|
|
- }
|
|
|
- }).catch(()=> res(true))
|
|
|
- })
|
|
|
+ userFind(phone: string) {
|
|
|
+ return new Promise((res) => {
|
|
|
+ Parse.Cloud.run('userFind', { mobile: phone })
|
|
|
+ .then((data) => {
|
|
|
+ if (data) {
|
|
|
+ res(false);
|
|
|
+ } else {
|
|
|
+ res(true);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => res(true));
|
|
|
+ });
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/* 批量预设(临时) */
|
|
|
async saveProcess() {
|
|
|
// let count = 0;
|
|
@@ -123,87 +123,96 @@ export class textbookServer {
|
|
|
// count++
|
|
|
// console.log(count);
|
|
|
// }
|
|
|
- // let query = new Parse.Query('Department')
|
|
|
- // query.equalTo('parent',null)
|
|
|
- // query.equalTo('name','省级教育行政部门')
|
|
|
- // let r = await query.find()
|
|
|
- // for (let index = 0; index < r.length; index++) {
|
|
|
- // const element = r[index];
|
|
|
- // let queryPareet = new Parse.Query('Department')
|
|
|
- // queryPareet.equalTo('parent', element.id)
|
|
|
- // queryPareet.limit(2000)
|
|
|
- // let prents = await queryPareet.find()
|
|
|
- // for (let index = 0; index < prents.length; index++) {
|
|
|
- // let item = prents[index];
|
|
|
- // let obj = Parse.Object.extend('EduProcess');
|
|
|
- // let eduProcess = new obj()
|
|
|
- // eduProcess?.set('company', {
|
|
|
- // __type: 'Pointer',
|
|
|
- // className: 'Company',
|
|
|
- // objectId: 'RbIKpmuaMC',
|
|
|
- // });
|
|
|
- // eduProcess?.set('branch', {
|
|
|
- // __type: 'Pointer',
|
|
|
- // className: 'Department',
|
|
|
- // objectId:element.id,
|
|
|
- // });
|
|
|
- // eduProcess?.set('department', {
|
|
|
- // __type: 'Pointer',
|
|
|
- // className: 'Department',
|
|
|
- // objectId: item.id,
|
|
|
- // });
|
|
|
- // eduProcess?.set('name', item.get('name'));
|
|
|
- // eduProcess?.set('desc', item.get('name') + '流程');
|
|
|
- // eduProcess?.set('code', item.get('code') || item.id);
|
|
|
- // if(element.get('name') == '全国出版单位') {
|
|
|
- // eduProcess?.set('startDate', new Date('2024-07-20 18:00'));
|
|
|
- // eduProcess?.set('deadline', new Date('2024-09-20 18:00'));
|
|
|
- // }
|
|
|
- // await eduProcess?.save();
|
|
|
- // count ++
|
|
|
- // console.log(count);
|
|
|
- // }
|
|
|
- // }
|
|
|
-}
|
|
|
-async tbookExportReport(options:{processId?:string,bookList?:any[]}){
|
|
|
-
|
|
|
- let url = Parse.serverURL + "/api/tbook/export"
|
|
|
- // console.log(url)
|
|
|
- let response = await fetch(url, {
|
|
|
- method: 'POST',
|
|
|
- headers: {
|
|
|
- 'Content-Type': 'application/json',
|
|
|
- 'X-Parse-Application-Id': 'edu-textbook'
|
|
|
- },
|
|
|
- body: JSON.stringify(options)
|
|
|
- })
|
|
|
- let result = await response.json()
|
|
|
- let zipUrl = result?.result?.zipUrl;
|
|
|
- if(result?.code==200){
|
|
|
- zipUrl = zipUrl.replaceAll("http://","https://");
|
|
|
- const a = document.createElement('a'); // 创建一个<a>元素
|
|
|
- a.href = zipUrl; // 设置链接的href属性为要下载的文件的URL
|
|
|
- a.download = '报送流程'; // 设置下载文件的名称
|
|
|
- document.body.appendChild(a); // 将<a>元素添加到文档中
|
|
|
- a.click(); // 模拟点击<a>元素
|
|
|
- document.body.removeChild(a); // 下载后移除<a>元素
|
|
|
+ // let query = new Parse.Query('Department')
|
|
|
+ // query.equalTo('parent',null)
|
|
|
+ // query.equalTo('name','省级教育行政部门')
|
|
|
+ // let r = await query.find()
|
|
|
+ // for (let index = 0; index < r.length; index++) {
|
|
|
+ // const element = r[index];
|
|
|
+ // let queryPareet = new Parse.Query('Department')
|
|
|
+ // queryPareet.equalTo('parent', element.id)
|
|
|
+ // queryPareet.limit(2000)
|
|
|
+ // let prents = await queryPareet.find()
|
|
|
+ // for (let index = 0; index < prents.length; index++) {
|
|
|
+ // let item = prents[index];
|
|
|
+ // let obj = Parse.Object.extend('EduProcess');
|
|
|
+ // let eduProcess = new obj()
|
|
|
+ // eduProcess?.set('company', {
|
|
|
+ // __type: 'Pointer',
|
|
|
+ // className: 'Company',
|
|
|
+ // objectId: 'RbIKpmuaMC',
|
|
|
+ // });
|
|
|
+ // eduProcess?.set('branch', {
|
|
|
+ // __type: 'Pointer',
|
|
|
+ // className: 'Department',
|
|
|
+ // objectId:element.id,
|
|
|
+ // });
|
|
|
+ // eduProcess?.set('department', {
|
|
|
+ // __type: 'Pointer',
|
|
|
+ // className: 'Department',
|
|
|
+ // objectId: item.id,
|
|
|
+ // });
|
|
|
+ // eduProcess?.set('name', item.get('name'));
|
|
|
+ // eduProcess?.set('desc', item.get('name') + '流程');
|
|
|
+ // eduProcess?.set('code', item.get('code') || item.id);
|
|
|
+ // if(element.get('name') == '全国出版单位') {
|
|
|
+ // eduProcess?.set('startDate', new Date('2024-07-20 18:00'));
|
|
|
+ // eduProcess?.set('deadline', new Date('2024-09-20 18:00'));
|
|
|
+ // }
|
|
|
+ // await eduProcess?.save();
|
|
|
+ // count ++
|
|
|
+ // console.log(count);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
}
|
|
|
- // console.log(result)
|
|
|
- return result
|
|
|
-
|
|
|
-
|
|
|
- Parse.Cloud.run('tbookExportReport', options).then(
|
|
|
- (data) => {
|
|
|
+ async tbookExportReport(options: { processId?: string; bookList?: any[] }) {
|
|
|
+ let url = Parse.serverURL + '/api/tbook/export';
|
|
|
+ // console.log(url)
|
|
|
+ let response = await fetch(url, {
|
|
|
+ method: 'POST',
|
|
|
+ headers: {
|
|
|
+ 'Content-Type': 'application/json',
|
|
|
+ 'X-Parse-Application-Id': 'edu-textbook',
|
|
|
+ },
|
|
|
+ body: JSON.stringify(options),
|
|
|
+ });
|
|
|
+ let result = await response.json();
|
|
|
+ let zipUrl = result?.result?.zipUrl;
|
|
|
+ if (result?.code == 200) {
|
|
|
+ zipUrl = zipUrl.replaceAll('http://', 'https://');
|
|
|
+ const a = document.createElement('a'); // 创建一个<a>元素
|
|
|
+ a.href = zipUrl; // 设置链接的href属性为要下载的文件的URL
|
|
|
+ a.download = '报送流程'; // 设置下载文件的名称
|
|
|
+ document.body.appendChild(a); // 将<a>元素添加到文档中
|
|
|
+ a.click(); // 模拟点击<a>元素
|
|
|
+ document.body.removeChild(a); // 下载后移除<a>元素
|
|
|
+ }
|
|
|
+ // console.log(result)
|
|
|
+ return result;
|
|
|
+
|
|
|
+ Parse.Cloud.run('tbookExportReport', options).then((data) => {
|
|
|
console.log(data);
|
|
|
let url = data.zipUrl;
|
|
|
- url = url.replaceAll("http://","https://");
|
|
|
+ url = url.replaceAll('http://', 'https://');
|
|
|
const a = document.createElement('a'); // 创建一个<a>元素
|
|
|
a.href = url; // 设置链接的href属性为要下载的文件的URL
|
|
|
a.download = '报送流程'; // 设置下载文件的名称
|
|
|
document.body.appendChild(a); // 将<a>元素添加到文档中
|
|
|
a.click(); // 模拟点击<a>元素
|
|
|
document.body.removeChild(a); // 下载后移除<a>元素
|
|
|
- }
|
|
|
- );
|
|
|
-}
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ async getEduProcess(id: string): Promise<string | undefined> {
|
|
|
+ if (!id) return;
|
|
|
+ let query = new Parse.Query('EduProcess');
|
|
|
+ query.equalTo('department', id);
|
|
|
+ query.lessThanOrEqualTo('startDate', new Date());
|
|
|
+ query.greaterThan('deadline', new Date());
|
|
|
+ query.notEqualTo('isDeleted', true);
|
|
|
+ query.containedIn('status', ['200', '300']);
|
|
|
+ query.select('objectId');
|
|
|
+ let res = await query.first();
|
|
|
+ return res?.id;
|
|
|
+ }
|
|
|
}
|