补全页:活动改成和类别同款下拉,两列样式一致

活动原本是 input+datalist、类别是 select,同在一行列里长得不一样,看着别扭。
现在两者共用同一套写法:下拉 + 末尾「其它(自己写)…」+ 选中后露出的文本框
(后端 act_<id>==__custom__ 时读 act_<id>__custom,与类别同一套约定)。
CSS 类也合成一个 fill-sel,脚本只需遍历一次。

顺带:删掉不再需要的 datalist;采纳建议、草稿存取都改走 select.fill-sel。
草稿恢复时对下拉派发 change,所以「其它」的文本框也能跟着恢复显示。
This commit is contained in:
tamakyi
2026-09-19 23:46:02 +08:00
parent 5aeded2d51
commit bf23fc62d7
3 changed files with 58 additions and 19 deletions
+8 -2
View File
@@ -315,8 +315,14 @@ func (s *Server) adminFillupApply(w http.ResponseWriter, r *http.Request) {
}
for _, pid := range ids {
// 框里填的是**活动名**:对得上就用现有的,对不上就新建一个
if name := strings.TrimSpace(r.PostFormValue("act_" + strconv.FormatInt(pid, 10))); name != "" {
// 框里填的是**活动名**:对得上就用现有的,对不上就新建一个。
// 下拉选了「其它(自己写)」时,真正要读的是旁边那个文本框——与类别同一套写法。
actKey := "act_" + strconv.FormatInt(pid, 10)
actName := strings.TrimSpace(r.PostFormValue(actKey))
if actName == "__custom__" {
actName = strings.TrimSpace(r.PostFormValue(actKey + "__custom"))
}
if name := actName; name != "" {
actID, ok := actByName[name]
if !ok {
pk, err := s.nextSrcPK(ctx, ex, ds.ID, activitySeq)