与牧同行-小程序用户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

108 lines
4.2 KiB

  1. <view class="page-wrapper">
  2. <form catchsubmit="formSubmit">
  3. <!-- 标题卡片-->
  4. <view class="form-card">
  5. <view class="card-header">
  6. <text class="header-icon">📝</text>
  7. <text class="header-title">文章标题</text>
  8. <text class="required-badge">必填</text>
  9. </view>
  10. <view class="card-content no-padding">
  11. <view class="input-wrapper">
  12. <input type="text" placeholder="请输入吸引人的标题(最多50字)"
  13. name="title" maxlength="50" value="{{formData.title}}"
  14. bindinput="onInput" data-field="title"
  15. placeholder-class="placeholder-style" />
  16. </view>
  17. </view>
  18. </view>
  19. <!-- 摘要卡片 -->
  20. <view class="form-card">
  21. <view class="card-header">
  22. <text class="header-icon">📋</text>
  23. <text class="header-title">文章摘要</text>
  24. <text class="optional-badge">选填</text>
  25. </view>
  26. <view class="card-content no-padding">
  27. <view class="textarea-wrapper">
  28. <textarea placeholder="简单描述文章要点,让读者快速了解内容(最多200字)"
  29. name="summary" maxlength="200" auto-height
  30. value="{{formData.summary}}" bindinput="onInput"
  31. data-field="summary" placeholder-class="placeholder-style" />
  32. </view>
  33. </view>
  34. </view>
  35. <!-- 分类卡片 -->
  36. <view class="form-card">
  37. <view class="card-header">
  38. <text class="header-icon">📂</text>
  39. <text class="header-title">文章分类</text>
  40. <text class="required-badge">必填</text>
  41. </view>
  42. <view class="card-content">
  43. <picker mode="selector" range="{{categoryList}}" range-key="dictLabel"
  44. bindchange="onCategoryChange" value="{{categoryIndex}}">
  45. <view class="picker-trigger {{categoryIndex > -1 ? 'selected' : ''}}">
  46. <text>{{categoryIndex > -1 ? categoryList[categoryIndex].dictLabel : '请选择文章分类'}}</text>
  47. <text class="picker-arrow">▼</text>
  48. </view>
  49. </picker>
  50. </view>
  51. </view>
  52. <!-- 标签卡片 -->
  53. <view class="form-card">
  54. <view class="card-header">
  55. <text class="header-icon">🏷️</text>
  56. <text class="header-title">文章标签</text>
  57. <text class="required-badge">必填</text>
  58. </view>
  59. <view class="card-content">
  60. <view class="tag-group">
  61. <block wx:for="{{tagList}}" wx:key="dictValue">
  62. <view class="tag-item {{selectedTags.includes(item) ? 'active' : ''}}"
  63. bindtap="toggleTag" data-item="{{item}}">
  64. {{item.dictLabel}}
  65. </view>
  66. </block>
  67. </view>
  68. <view class="selected-tags" wx:if="{{selectedTags.length}}">
  69. <text class="selected-label">已选标签:</text>
  70. <view class="selected-tag-list">
  71. <view class="selected-tag-item" wx:for="{{selectedTags}}" wx:key="index">
  72. {{item.dictLabel}}
  73. </view>
  74. </view>
  75. </view>
  76. </view>
  77. </view>
  78. <!-- 内容卡片 -->
  79. <view class="form-card content-card">
  80. <view class="card-header">
  81. <text class="header-icon">📄</text>
  82. <text class="header-title">文章内容</text>
  83. <text class="required-badge">必填</text>
  84. </view>
  85. <view class="card-content no-padding">
  86. <view class="textarea-wrapper">
  87. <textarea placeholder="开始撰写您的文章吧...(支持最多5000字)"
  88. name="content" maxlength="5000" auto-height
  89. value="{{formData.content}}" bindinput="onInput"
  90. data-field="content" placeholder-class="placeholder-style"
  91. class="content-textarea" />
  92. </view>
  93. </view>
  94. </view>
  95. <!-- 提交按钮区域 -->
  96. <view class="submit-area">
  97. <button form-type="submit" class="submit-btn" loading="{{submitting}}" disabled="{{submitting}}">
  98. <text wx:if="{{!submitting}}">✨ 发布文章</text>
  99. <text wx:else>发布中...</text>
  100. </button>
  101. <view class="tip-text">好的内容值得被更多人看见</view>
  102. </view>
  103. </form>
  104. </view>