HowardZhangdqs commited on
Commit
7e54de1
·
1 Parent(s): 8881dad

feat: add url param for date configure

Browse files
Files changed (3) hide show
  1. interface.py +8 -20
  2. js/detail.js +16 -0
  3. js/writeInput.js +107 -0
interface.py CHANGED
@@ -179,24 +179,12 @@ for css_file in Path("./css").glob("*.css"):
179
  with open(css_file, "r") as f:
180
  custom_css += "\n" + f.read() + "\n"
181
 
182
- custom_js = """
183
- function showDetail(paperId) {
184
- // 隐藏 smartflow-paper-paperId 的所有兄弟节点
185
- var siblings = document.querySelectorAll(`div[id^='smartflow-paper-']:not(#smartflow-paper-${paperId.replace('.', '-')})`);
186
- siblings.forEach(sibling => sibling.style.display = 'none');
187
-
188
- // 显示当前节点
189
- var paper = document.getElementById(`smartflow-paper-${paperId.replace('.', '-')}`);
190
- if (paper) {
191
- paper.style.display = 'block';
192
- }
193
-
194
- document.getElementById("paper-detail-area").style.display = "block";
195
- document.getElementById("paper-detail-area").scrollIntoView({
196
- behavior: 'smooth'
197
- });
198
- }
199
- """
200
 
201
 
202
  def create_interface():
@@ -210,8 +198,8 @@ def create_interface():
210
  with gr.Row():
211
  with gr.Column():
212
  with gr.Row():
213
- start_date = gr.Textbox(label="Start Date", placeholder="YYYY-MM-DD", value=str(Date() + (-7)))
214
- end_date = gr.Textbox(label="End Date", placeholder="YYYY-MM-DD", value=str(Date()))
215
  with gr.Column():
216
  with gr.Row():
217
  today_btn = gr.Button("Today")
 
179
  with open(css_file, "r") as f:
180
  custom_css += "\n" + f.read() + "\n"
181
 
182
+ custom_js = """"""
183
+
184
+ # 遍历./css文件夹下的所有文件,将文件内容作为CSS样式添加到页面中
185
+ for js_file in Path("./js").glob("*.js"):
186
+ with open(js_file, "r") as f:
187
+ custom_js += "\n" + f.read() + "\n"
 
 
 
 
 
 
 
 
 
 
 
 
188
 
189
 
190
  def create_interface():
 
198
  with gr.Row():
199
  with gr.Column():
200
  with gr.Row():
201
+ start_date = gr.Textbox(elem_id="start_date", label="Start Date", placeholder="YYYY-MM-DD", value=str(Date() + (-7)))
202
+ end_date = gr.Textbox(elem_id="end_date", label="End Date", placeholder="YYYY-MM-DD", value=str(Date()))
203
  with gr.Column():
204
  with gr.Row():
205
  today_btn = gr.Button("Today")
js/detail.js ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ function showDetail(paperId) {
2
+ // 隐藏 smartflow-paper-paperId 的所有兄弟节点
3
+ var siblings = document.querySelectorAll(`div[id^='smartflow-paper-']:not(#smartflow-paper-${paperId.replace('.', '-')})`);
4
+ siblings.forEach(sibling => sibling.style.display = 'none');
5
+
6
+ // 显示当前节点
7
+ var paper = document.getElementById(`smartflow-paper-${paperId.replace('.', '-')}`);
8
+ if (paper) {
9
+ paper.style.display = 'block';
10
+ }
11
+
12
+ document.getElementById("paper-detail-area").style.display = "block";
13
+ document.getElementById("paper-detail-area").scrollIntoView({
14
+ behavior: 'smooth'
15
+ });
16
+ }
js/writeInput.js ADDED
@@ -0,0 +1,107 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // 传入input标签的选择器与要写入的内容,写入内容通过input的change事件写入
2
+ function writeInput(selector, content) {
3
+ const inputElement = document.querySelector(selector);
4
+ const textToInput = content;
5
+
6
+ // 删除输入框原本的值
7
+ inputElement.value = '';
8
+
9
+ // 模拟逐个字符输入
10
+ for (let i = 0; i < textToInput.length; i++) {
11
+ const char = textToInput[i];
12
+ const keyCode = char.charCodeAt(0);
13
+
14
+ // 触发 keydown 事件
15
+ const keydownEvent = new KeyboardEvent('keydown', {
16
+ bubbles: true,
17
+ cancelable: true,
18
+ key: char,
19
+ code: `Key${char.toUpperCase()}`,
20
+ keyCode: keyCode,
21
+ which: keyCode
22
+ });
23
+ inputElement.dispatchEvent(keydownEvent);
24
+
25
+ // 触发 keypress 事件
26
+ const keypressEvent = new KeyboardEvent('keypress', {
27
+ bubbles: true,
28
+ cancelable: true,
29
+ key: char,
30
+ code: `Key${char.toUpperCase()}`,
31
+ keyCode: keyCode,
32
+ which: keyCode
33
+ });
34
+ inputElement.dispatchEvent(keypressEvent);
35
+
36
+ // 更新输入框的值
37
+ inputElement.value += char;
38
+
39
+ // 触发 input 事件
40
+ const inputEvent = new Event('input', { bubbles: true });
41
+ inputElement.dispatchEvent(inputEvent);
42
+
43
+ // 触发 keyup 事件
44
+ const keyupEvent = new KeyboardEvent('keyup', {
45
+ bubbles: true,
46
+ cancelable: true,
47
+ key: char,
48
+ code: `Key${char.toUpperCase()}`,
49
+ keyCode: keyCode,
50
+ which: keyCode
51
+ });
52
+ inputElement.dispatchEvent(keyupEvent);
53
+ }
54
+ }
55
+
56
+
57
+ // 反复查找元素,直到找到为止,触发回调函数
58
+ function findElement(selector, callback) {
59
+ const intervalid = setInterval(() => {
60
+ const element = document.querySelector(selector);
61
+ if (element) {
62
+ clearInterval(intervalid);
63
+ console.log("find element");
64
+ callback(element);
65
+ }
66
+ }, 100);
67
+ }
68
+
69
+
70
+ // 获取当前页面的URL的参数date,如果没有则查看父页面的URL的参数date
71
+ function getDate() {
72
+ let date = new URLSearchParams(window.location.search).get('date');
73
+ if (!date) {
74
+ date = new URLSearchParams(window.parent.location.search).get('date');
75
+ }
76
+ console.log(date);
77
+
78
+ if (date) {
79
+
80
+ // 解析日期并转为YYYY-MM-DD格式
81
+ // 将日期按照非数字字符分割,然后取出前三个数字,转为字符串,不足两位的前面补0
82
+ const dataArr = date.match(/\d+/g);
83
+ if (dataArr.length >= 6) {
84
+ let start_date = dataArr.slice(0, 3).map(num => num.padStart(2, '0'));
85
+ let end_date = dataArr.slice(3, 6).map(num => num.padStart(2, '0'));
86
+ start_date[0] = start_date[0].padStart(4, '2025');
87
+ end_date[0] = end_date[0].padStart(4, '2025');
88
+ findElement("#start_date textarea", () => {
89
+ writeInput("#start_date textarea", start_date.join('-'));
90
+ writeInput("#end_date textarea", end_date.join('-'));
91
+ });
92
+ } else {
93
+
94
+ date = dataArr.map(num => num.padStart(2, '0'));
95
+ date[0] = date[0].padStart(4, '2025');
96
+ date = date.join('-');
97
+
98
+ findElement("#start_date textarea", () => {
99
+ writeInput("#start_date textarea", date);
100
+ writeInput("#end_date textarea", date);
101
+ });
102
+ }
103
+ }
104
+ }
105
+
106
+
107
+ getDate();