create.vue 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. <template>
  2. <hc-card scrollbar is-action-btn class="create-project">
  3. <template #header>
  4. <div class="flex-1 text-center text-[24px] font-bold">项目信息填写</div>
  5. </template>
  6. <el-form :model="baseForm" label-width="auto" :rules="baseFormRules">
  7. <el-row :gutter="20">
  8. <el-col :span="12">
  9. <el-form-item label="项目名称:" prop="key1">
  10. <el-input v-model="baseForm.key1" placeholder="请输入" clearable />
  11. </el-form-item>
  12. </el-col>
  13. <el-col :span="12">
  14. <el-form-item label="建设规模:" prop="key2">
  15. <el-input v-model="baseForm.key2" placeholder="请输入" clearable>
  16. <template #append>
  17. <el-select v-model="unitSelect" placeholder="单位" style="width: 80px">
  18. <el-option label="公里" value="1" />
  19. <el-option label="无" value="2" />
  20. </el-select>
  21. </template>
  22. </el-input>
  23. </el-form-item>
  24. </el-col>
  25. <el-col :span="6">
  26. <el-form-item label="项目阶段:" prop="key3">
  27. <el-select v-model="baseForm.key3" placeholder="请选择">
  28. <el-option v-for="item in stateOptions" :key="item.value" :label="item.label" :value="item.value" />
  29. </el-select>
  30. </el-form-item>
  31. </el-col>
  32. <el-col :span="6">
  33. <el-form-item label="项目类型:" prop="key4">
  34. <el-select v-model="baseForm.key4" placeholder="请选择">
  35. <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="item.value" />
  36. </el-select>
  37. </el-form-item>
  38. </el-col>
  39. <el-col :span="6">
  40. <el-form-item label="开工年:" prop="key5">
  41. <el-date-picker v-model="baseForm.key5" class="block" type="year" placeholder="请选择" />
  42. </el-form-item>
  43. </el-col>
  44. <el-col :span="6">
  45. <el-form-item label="完工年:" prop="key6">
  46. <el-date-picker v-model="baseForm.key6" class="block" type="year" placeholder="请选择" />
  47. </el-form-item>
  48. </el-col>
  49. <el-col :span="8">
  50. <el-form-item label="牵头单位:" prop="key7">
  51. <el-input v-model="baseForm.key7" placeholder="请输入" clearable type="textarea" />
  52. </el-form-item>
  53. </el-col>
  54. <el-col :span="8">
  55. <el-form-item label="配合单位:" prop="key8">
  56. <el-input v-model="baseForm.key7" placeholder="请输入" clearable type="textarea" />
  57. </el-form-item>
  58. </el-col>
  59. <el-col :span="8">
  60. <el-form-item label="责任单位:" prop="key9">
  61. <el-input v-model="baseForm.key7" placeholder="请输入" clearable type="textarea" />
  62. </el-form-item>
  63. </el-col>
  64. </el-row>
  65. </el-form>
  66. <hc-card-item class="year-detail mt-3">
  67. <template #header>
  68. <el-select v-model="selectYear" placeholder="选择年份" class="select-year w-[100px]">
  69. <el-option v-for="item in yearOptions" :key="item.value" :label="item.label" :value="item.value" />
  70. </el-select>
  71. </template>
  72. <el-form :model="yearForm" label-width="auto" :rules="yearFormRules" class="mt-3" label-position="left">
  73. <el-form-item label="全年计划投资:" prop="key1" class="w-100">
  74. <el-input v-model="yearForm.key1" placeholder="请输入" clearable>
  75. <template #append>亿元</template>
  76. </el-input>
  77. </el-form-item>
  78. <el-form-item label="预计完成投资额:" prop="key1">
  79. <div class="quarter-box w-full flex">
  80. <div class="flex">
  81. <el-input v-model="yearForm.key2" placeholder="请输入" clearable>
  82. <template #prepend>一季度</template>
  83. <template #append>亿元</template>
  84. </el-input>
  85. </div>
  86. <div class="ml-[40px] flex">
  87. <el-input v-model="yearForm.key3" placeholder="请输入" clearable>
  88. <template #prepend>二季度</template>
  89. <template #append>亿元</template>
  90. </el-input>
  91. </div>
  92. <div class="ml-[40px] flex">
  93. <el-input v-model="yearForm.key4" placeholder="请输入" clearable>
  94. <template #prepend>三季度</template>
  95. <template #append>亿元</template>
  96. </el-input>
  97. </div>
  98. <div class="ml-[40px] flex">
  99. <el-input v-model="yearForm.key5" placeholder="请输入" clearable>
  100. <template #prepend>四季度</template>
  101. <template #append>亿元</template>
  102. </el-input>
  103. </div>
  104. </div>
  105. </el-form-item>
  106. <el-form-item label="全年目标:" prop="key6">
  107. <el-input v-model="yearForm.key6" placeholder="请输入" clearable type="textarea" />
  108. </el-form-item>
  109. </el-form>
  110. <el-form :model="yearForm" label-width="auto" :rules="yearFormRules" class="mt-3" label-position="left">
  111. <div class="hc-form-item-title">各季度工作计划:</div>
  112. <el-form-item label="一季度:" prop="key7">
  113. <el-input v-model="yearForm.key7" placeholder="请输入" clearable type="textarea" />
  114. </el-form-item>
  115. <el-form-item label="二季度:" prop="key8">
  116. <el-input v-model="yearForm.key8" placeholder="请输入" clearable type="textarea" />
  117. </el-form-item>
  118. <el-form-item label="四季度:" prop="key10">
  119. <el-input v-model="yearForm.key10" placeholder="请输入" clearable type="textarea" />
  120. </el-form-item>
  121. </el-form>
  122. </hc-card-item>
  123. <template #action>
  124. <el-button type="info">取消</el-button>
  125. <el-button color="#20C98B" type="primary" class="text-white">创建</el-button>
  126. <el-button type="warning">保存</el-button>
  127. </template>
  128. </hc-card>
  129. </template>
  130. <script setup>
  131. import { ref } from 'vue'
  132. const baseForm = ref({ key1:'', key2: '', key3:'', key4:'', key5:'', key6:'', key7:'', key8:'', key9:'' })
  133. const baseFormRules = {
  134. key1: {
  135. required: true,
  136. trigger: 'blur',
  137. message: '请输入项目名称',
  138. },
  139. key3: {
  140. required: true,
  141. trigger: 'blur',
  142. message: '请选择项目阶段',
  143. },
  144. key4: {
  145. required: true,
  146. trigger: 'blur',
  147. message: '请选择项目类型',
  148. },
  149. role: {
  150. required: true,
  151. trigger: 'blur',
  152. message: '请选择角色',
  153. },
  154. }
  155. const unitSelect = ref('')
  156. //项目阶段
  157. const stateOptions = ref([{ value: '1', label: '新开工项目' }, { value: '2', label: '建成项目' }, { value: '3', label: '在建项目' }])
  158. //项目类型
  159. const typeOptions = ref([{ value: '1', label: '铁路' }, { value: '2', label: '高速公路' }, { value: '3', label: '在建项目' }])
  160. //选择年份
  161. const yearOptions = ref([{ value: '2021', label: '2021' }, { value: '2022', label: '2022' }, { value: '2023', label: '2023' }])
  162. const selectYear = ref('')
  163. const yearForm = ref({ key1:'', key2: '', key3:'', key4:'', key5:'', key6:'', key7:'', key8:'', key9:'' })
  164. const yearFormRules = {}
  165. </script>
  166. <style lang="scss">
  167. .create-project .el-card .el-card__body .hc-card-main-body {
  168. padding: 14px;
  169. .el-scrollbar__bar.is-vertical {
  170. right: -16px;
  171. }
  172. }
  173. .hc-card-item-box.year-detail {
  174. padding: 20px;
  175. background: #f7f7f7;
  176. border-radius: 5px;
  177. .hc-card-item-header {
  178. border-bottom: 1px solid #ecebeb;
  179. padding-bottom: 16px;
  180. .item-header {
  181. justify-content: center;
  182. }
  183. }
  184. .hc-form-item-title {
  185. position: relative;
  186. padding: 10px 0;
  187. margin-bottom: 14px;
  188. }
  189. }
  190. .quarter-box {
  191. position: relative;
  192. justify-content: space-around;
  193. }
  194. .form-text {
  195. white-space: nowrap;
  196. color:var(--el-text-color-regular) ;
  197. font-size: var(--el-form-label-font-size);
  198. }
  199. </style>