特易招,招聘小程序
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.

404 lines
8.0 KiB

4 months ago
4 months ago
4 months ago
4 months ago
2 months ago
4 months ago
4 months ago
4 months ago
2 months ago
4 months ago
4 months ago
4 months ago
2 months ago
2 months ago
4 months ago
2 months ago
2 months ago
4 months ago
2 months ago
4 months ago
4 months ago
4 months ago
4 months ago
2 months ago
4 months ago
2 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
2 months ago
4 months ago
2 months ago
4 months ago
4 months ago
4 months ago
4 months ago
2 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
2 months ago
4 months ago
2 months ago
4 months ago
2 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
  1. <template>
  2. <view class="page">
  3. <navbar title="记工记账" />
  4. <view class="page-tag">
  5. <uv-tabs :list="tabs"
  6. @click="clickTabsType"
  7. lineWidth="55"
  8. lineHeight="8" :activeStyle="{
  9. color: '#3796F8',
  10. }" :inactiveStyle="{
  11. color: '#999999',
  12. }" itemStyle="padding:60rpx 20rpx 20rpx 20rpx;width: 44%;"></uv-tabs>
  13. </view>
  14. <view class="page-picture">
  15. <view class="page-picture-img">
  16. <view class="page-picture-group" @click="form = {};show = true">
  17. <image src="../../static/image/keepAccounts/artisan.png" mode="aspectFit" />
  18. <view>
  19. 新建账本
  20. </view>
  21. </view>
  22. </view>
  23. <view class="page-picture-img"
  24. @click="$utils.navigateTo('/pages_order/kepp/AnnualExpenditure')">
  25. <view class="page-picture-group">
  26. <image src="../../static/image/keepAccounts/wallet.png" mode="aspectFit" />
  27. <view>全年收支</view>
  28. </view>
  29. </view>
  30. <view class="page-picture-img" @click="$utils.navigateTo('/pages_order/kepp/MechanicProblem')">
  31. <view class="page-picture-group">
  32. <image src="../../static/image/keepAccounts/accountBook.png" mode="aspectFit" />
  33. <view>
  34. 技工问题
  35. </view>
  36. </view>
  37. </view>
  38. </view>
  39. <view style="font-weight: 500; margin-top: 20rpx;">
  40. <uv-tabs :list="tabsSatus"
  41. @click="clickTabsStatus"
  42. lineWidth="0" lineHeight="0" :activeStyle="{
  43. color: '#3796F8',
  44. }"></uv-tabs>
  45. </view>
  46. <view class="list">
  47. <view class="item"
  48. v-for="(item, index) in list"
  49. @click="$utils.navigateTo('/pages_order/kepp/keepAccountsDetail?id=' + item.id)"
  50. :key="index">
  51. <view class="top">
  52. <view class="title">
  53. {{ item.title }}
  54. </view>
  55. <view class="date">
  56. {{ item.createTime }}
  57. </view>
  58. </view>
  59. <view class="btn">
  60. <view class="left"
  61. @click.stop="openUpdate(item)">
  62. <uv-icon
  63. name="setting"
  64. size="40rpx"></uv-icon>
  65. 设置
  66. </view>
  67. <view class="right">
  68. <view class="b1"
  69. @click.stop="$utils.navigateTo('/pages_order/kepp/addWorkEntryRecords?id=' + item.id)">
  70. 记工
  71. </view>
  72. <view class="b2"
  73. @click.stop="$utils.navigateTo('/pages_order/kepp/addPriceEntryRecords?id=' + item.id)">
  74. 记账
  75. </view>
  76. </view>
  77. </view>
  78. </view>
  79. </view>
  80. <uv-empty mode="list" v-if="list.length == 0"></uv-empty>
  81. <uv-overlay :show="show">
  82. <view class="warp">
  83. <view class="rect">
  84. <view class="warp-top">
  85. {{ addOrUpdate ? '编辑项目' : '新建项目'}}
  86. </view>
  87. <view class="rect-two">
  88. <view class="designation">项目名称</view>
  89. <view class="wire" />
  90. <!-- <view class="description">请输入项目名称</view> -->
  91. <input class="rect-input"
  92. v-model="form.title"
  93. placeholder="请输入项目名称"/>
  94. <!-- <view class="option">
  95. <select class="select">
  96. <option value="option1">收入 </option>
  97. </select>
  98. </view> -->
  99. <!-- <view class="introduce">
  100. 项目金额1314
  101. </view> -->
  102. <view class=""
  103. v-if="form.id">
  104. <uv-radio-group v-model="form.status">
  105. <view style="display: flex;">
  106. <uv-radio
  107. :customStyle="{margin: '8px'}"
  108. v-for="(item, index) in statusList"
  109. :key="index"
  110. iconSize="30rpx"
  111. size="40rpx"
  112. labelSize="26rpx"
  113. :label="item.name"
  114. :name="item.value">
  115. </uv-radio>
  116. </view>
  117. </uv-radio-group>
  118. </view>
  119. <view class="button">
  120. <view @click="show = false">取消</view>
  121. <view @click="submit">确定</view>
  122. </view>
  123. </view>
  124. </view>
  125. </view>
  126. </uv-overlay>
  127. <tabber select="1" />
  128. </view>
  129. </template>
  130. <script>
  131. import tabber from '@/components/base/tabbar.vue'
  132. import mixinList from '@/mixins/list.js'
  133. export default {
  134. mixins : [mixinList],
  135. components: {
  136. tabber,
  137. },
  138. data() {
  139. return {
  140. tabs: [
  141. {
  142. name: '个人记工',
  143. },
  144. {
  145. name: '班组记工',
  146. },
  147. ],
  148. tabsSatus : [
  149. {
  150. name: '在建项目',
  151. },
  152. {
  153. name: '结束项目',
  154. },
  155. ],
  156. statusList : [
  157. {
  158. name : '在建',
  159. value : '0',
  160. },
  161. {
  162. name : '结束',
  163. value : '1',
  164. },
  165. ],
  166. show: false,
  167. mixinsListApi : 'commonQueryNotebookList',
  168. addOrUpdate : false,
  169. form : {
  170. title : '',
  171. status : '0',
  172. },
  173. }
  174. },
  175. computed: {
  176. },
  177. onLoad() {
  178. this.queryParams.status = 0
  179. this.queryParams.type = 0
  180. },
  181. methods: {
  182. clickTabsType({index}){
  183. this.queryParams.type = index
  184. this.getData()
  185. },
  186. clickTabsStatus({index}){
  187. this.queryParams.status = index
  188. this.getData()
  189. },
  190. submit(){
  191. if(this.$utils.verificationAll(this.form, {
  192. title : '请输入项目名称',//
  193. })){
  194. return
  195. }
  196. this.form.type = this.queryParams.type
  197. this.$api('addNoteBook', this.form, res => {
  198. this.show = false
  199. if(res.code == 200){
  200. this.form = {
  201. title : '',
  202. status : '0',
  203. }
  204. }
  205. this.getData()
  206. })
  207. },
  208. openUpdate(item){
  209. this.form = {
  210. id : item.id,
  211. title : item.title,
  212. status : item.status,
  213. }
  214. this.addOrUpdate = true
  215. this.show = true
  216. this.getData()
  217. }
  218. }
  219. }
  220. </script>
  221. <style scoped lang="scss">
  222. .page {
  223. .page-tag {
  224. font-weight: 600;
  225. }
  226. .page-picture {
  227. margin-top: 40rpx;
  228. display: flex;
  229. justify-content: space-around;
  230. .page-picture-img {
  231. width: 220rpx;
  232. height: 220rpx;
  233. display: flex;
  234. justify-content: center;
  235. align-items: center;
  236. background-color: #fff;
  237. border-radius: 10rpx;
  238. .page-picture-group {
  239. height: 80rpx;
  240. image {
  241. width: 100%;
  242. height: 100%;
  243. }
  244. }
  245. }
  246. }
  247. .list{
  248. .item{
  249. margin: 30rpx;
  250. background-color: #fff;
  251. padding: 20rpx;
  252. border-radius: 20rpx;
  253. .top{
  254. display: flex;
  255. justify-content: space-between;
  256. padding: 20rpx;
  257. .title{
  258. font-weight: 900;
  259. }
  260. .date{
  261. }
  262. }
  263. .btn{
  264. display: flex;
  265. justify-content: space-between;
  266. padding: 20rpx;
  267. .left{
  268. display: flex;
  269. align-items: center;
  270. }
  271. .right{
  272. display: flex;
  273. view{
  274. padding: 15rpx 40rpx;
  275. margin: 0 10rpx;
  276. border-radius: 10rpx;
  277. }
  278. .b1{
  279. border: 1px solid #FFA011;
  280. color: #FFA011;
  281. }
  282. .b2{
  283. background: $uni-color;
  284. color: #fff;
  285. }
  286. }
  287. }
  288. }
  289. }
  290. .warp {
  291. display: flex;
  292. justify-content: center;
  293. align-items: center;
  294. height: 100%;
  295. .rect {
  296. width: 90%;
  297. background-color: #fff;
  298. border-radius: 20rpx;
  299. overflow: hidden;
  300. .warp-top {
  301. text-align: center;
  302. font-size: 24rpx;
  303. padding: 15rpx 0;
  304. color: #FFFFFF;
  305. background-color: #3796F8;
  306. }
  307. .rect-two {
  308. width: 90%;
  309. margin-left: 5%;
  310. font-size: 28rpx;
  311. .designation {
  312. padding: 20rpx 0;
  313. color: #333;
  314. font-weight: 600;
  315. }
  316. }
  317. .wire {
  318. border-bottom: 4rpx dashed rgb(168, 197, 255);
  319. }
  320. .description {
  321. padding: 20rpx 0;
  322. color: #666666;
  323. }
  324. .rect-input {
  325. height: 40rpx;
  326. background-color: #EBF0FC;
  327. border: 2rpx solid #4280FD;
  328. border-radius: 14rpx;
  329. padding: 10rpx 20rpx;
  330. }
  331. .option {
  332. padding: 40rpx 40rpx 40rpx 0rpx;
  333. .select {
  334. background-color: #EBF0FC;
  335. padding: 10rpx 20rpx;
  336. color: #4280FD;
  337. border: 2rpx solid #4280FD;
  338. border-radius: 5rpx;
  339. }
  340. }
  341. .introduce {
  342. text-align: center;
  343. background-color: #EBF0FC;
  344. padding: 20rpx 0;
  345. color: #4280FD;
  346. }
  347. .button {
  348. display: flex;
  349. justify-content: space-around;
  350. text-align: center;
  351. align-content: center;
  352. margin: 50rpx 0;
  353. view:nth-child(1) {
  354. color: #575757;
  355. border: 2rpx solid #C7C7C7;
  356. }
  357. view:nth-child(2) {
  358. color: #FFFFFF;
  359. background-color: #3796F8;
  360. }
  361. view {
  362. width: 45%;
  363. padding: 15rpx 0;
  364. border-radius: 32rpx;
  365. font-size: 24rpx;
  366. }
  367. }
  368. }
  369. }
  370. }
  371. </style>