diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 27332c7..8efebc5 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -126,7 +126,7 @@ devDependencies:
version: 5.0.0(@vue/cli-service@5.0.1)(core-js@3.8.3)(vue@2.6.14)
'@vue/cli-service':
specifier: ~5.0.0
- version: 5.0.1(sass-loader@10.4.1)(vue-template-compiler@2.6.14)(vue@2.6.14)
+ version: 5.0.1(sass-loader@10.0.0)(vue-template-compiler@2.6.14)(vue@2.6.14)
babel-plugin-import:
specifier: ^1.11.0
version: 1.11.0
@@ -144,7 +144,7 @@ devDependencies:
version: 1.66.1
sass-loader:
specifier: '10'
- version: 10.4.1(sass@1.66.1)(webpack@4.46.0)
+ version: 10.0.0(sass@1.66.1)(webpack@4.46.0)
vue-template-compiler:
specifier: '>= 2.6.14 < 2.7'
version: 2.6.14
@@ -2908,7 +2908,7 @@ packages:
dependencies:
'@babel/core': 7.22.11
'@vue/babel-preset-app': 5.0.8(@babel/core@7.22.11)(core-js@3.8.3)(vue@2.6.14)
- '@vue/cli-service': 5.0.1(sass-loader@10.4.1)(vue-template-compiler@2.6.14)(vue@2.6.14)
+ '@vue/cli-service': 5.0.1(sass-loader@10.0.0)(vue-template-compiler@2.6.14)(vue@2.6.14)
'@vue/cli-shared-utils': 5.0.8
babel-loader: 8.3.0(@babel/core@7.22.11)(webpack@5.88.2)
thread-loader: 3.0.4(webpack@5.88.2)
@@ -2929,7 +2929,7 @@ packages:
peerDependencies:
'@vue/cli-service': ^3.0.0 || ^4.0.0 || ^5.0.0-0
dependencies:
- '@vue/cli-service': 5.0.1(sass-loader@10.4.1)(vue-template-compiler@2.6.14)(vue@2.6.14)
+ '@vue/cli-service': 5.0.1(sass-loader@10.0.0)(vue-template-compiler@2.6.14)(vue@2.6.14)
'@vue/cli-shared-utils': 5.0.8
transitivePeerDependencies:
- encoding
@@ -2940,10 +2940,10 @@ packages:
peerDependencies:
'@vue/cli-service': ^3.0.0 || ^4.0.0 || ^5.0.0-0
dependencies:
- '@vue/cli-service': 5.0.1(sass-loader@10.4.1)(vue-template-compiler@2.6.14)(vue@2.6.14)
+ '@vue/cli-service': 5.0.1(sass-loader@10.0.0)(vue-template-compiler@2.6.14)(vue@2.6.14)
dev: true
- /@vue/cli-service@5.0.1(sass-loader@10.4.1)(vue-template-compiler@2.6.14)(vue@2.6.14):
+ /@vue/cli-service@5.0.1(sass-loader@10.0.0)(vue-template-compiler@2.6.14)(vue@2.6.14):
resolution: {integrity: sha512-lhTW1d8waZv1VaRSvhE5pWWfkdmAgRTRSluDfyxkehZHMAWi//rd7a9zppN3k9Zr4X3oYVii+u7wR/RcTlr9cQ==}
engines: {node: ^12.0.0 || >= 14.0.0}
hasBin: true
@@ -3017,7 +3017,7 @@ packages:
postcss: 8.4.29
postcss-loader: 6.2.1(postcss@8.4.29)(webpack@5.88.2)
progress-webpack-plugin: 1.0.16(webpack@5.88.2)
- sass-loader: 10.4.1(sass@1.66.1)(webpack@4.46.0)
+ sass-loader: 10.0.0(sass@1.66.1)(webpack@4.46.0)
ssri: 8.0.1
terser-webpack-plugin: 5.3.9(webpack@5.88.2)
thread-loader: 3.0.4(webpack@5.88.2)
@@ -7796,6 +7796,11 @@ packages:
engines: {node: '>=6'}
dev: true
+ /klona@1.1.2:
+ resolution: {integrity: sha512-xf88rTeHiXk+XE2Vhi6yj8Wm3gMZrygGdKjJqN8HkV+PwF/t50/LdAKHoHpPcxFAlmQszTZ1CugrK25S7qDRLA==}
+ engines: {node: '>= 8'}
+ dev: true
+
/klona@2.0.6:
resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==}
engines: {node: '>= 8'}
@@ -10118,12 +10123,12 @@ packages:
- supports-color
dev: true
- /sass-loader@10.4.1(sass@1.66.1)(webpack@4.46.0):
- resolution: {integrity: sha512-aX/iJZTTpNUNx/OSYzo2KsjIUQHqvWsAhhUijFjAPdZTEhstjZI9zTNvkTTwsx+uNUJqUwOw5gacxQMx4hJxGQ==}
+ /sass-loader@10.0.0(sass@1.66.1)(webpack@4.46.0):
+ resolution: {integrity: sha512-DEIrVJIXf2P6jtY3fpJu+uWetALCds2PwRA2iwbpzmHvtFmX5j0aX5Uz+YZSeJpjKrpgqWNKngcVxmwVfqxMow==}
engines: {node: '>= 10.13.0'}
peerDependencies:
fibers: '>= 3.1.0'
- node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0
+ node-sass: ^4.0.0
sass: ^1.3.0
webpack: ^4.36.0 || ^5.0.0
peerDependenciesMeta:
@@ -10134,11 +10139,11 @@ packages:
sass:
optional: true
dependencies:
- klona: 2.0.6
+ klona: 1.1.2
loader-utils: 2.0.4
neo-async: 2.6.2
sass: 1.66.1
- schema-utils: 3.3.0
+ schema-utils: 2.7.1
semver: 7.5.4
webpack: 4.46.0
dev: true
diff --git a/src/components/select-admin-user.vue b/src/components/select-admin-user.vue
new file mode 100644
index 0000000..f51f7f7
--- /dev/null
+++ b/src/components/select-admin-user.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/enums/gender.js b/src/enums/gender.js
new file mode 100644
index 0000000..31eadb5
--- /dev/null
+++ b/src/enums/gender.js
@@ -0,0 +1,16 @@
+const gender = {
+ none: { value: 0, text: '未知' },
+ male: { value: 1, text: '男' },
+ female: { value: 2, text: '女' },
+}
+
+gender.options = []
+gender.map = {}
+Object.keys(gender).forEach(key => {
+ if (gender[key] !== undefined && gender[key].value !== undefined) {
+ gender.options.push({ name: gender[key].text, value: gender[key].value })
+ gender.map[key] = gender[key].value
+ }
+})
+
+export default gender
diff --git a/src/main.js b/src/main.js
index 8f4de3b..4d2c3e7 100644
--- a/src/main.js
+++ b/src/main.js
@@ -3,12 +3,19 @@ import App from './App'
import './uni.promisify.adaptor'
import ajax from '@/utils/ajax'
import uView from "uview-ui"
+import { formatDate } from './utils/index'
Vue.config.productionTip = false
Vue.prototype.$ajax = ajax
Vue.use(uView);
+Vue.filter('date', function (value, format) {
+ if (!format) {
+ format = 'yyyy-MM-dd HH:mm:ss'
+ }
+ return formatDate(value, format)
+})
App.mpType = 'app'
diff --git a/src/pages.json b/src/pages.json
index 50f68a3..ecb8e64 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -24,6 +24,12 @@
"style": {
"navigationBarTitleText": "病人详细"
}
+ },
+ {
+ "path": "pages/patient/form",
+ "style": {
+ "navigationBarTitleText": "病人表单"
+ }
}
],
"globalStyle": {
diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue
index 9b5d83d..3be964e 100644
--- a/src/pages/index/index.vue
+++ b/src/pages/index/index.vue
@@ -2,7 +2,7 @@
-
+
{{item.name}}
@@ -13,8 +13,7 @@
export default {
data() {
return {
- list: [
- ]
+ list: []
}
},
onReady() {
@@ -34,8 +33,10 @@
}
}
-
diff --git a/src/pages/patient/form.vue b/src/pages/patient/form.vue
new file mode 100644
index 0000000..722cbf8
--- /dev/null
+++ b/src/pages/patient/form.vue
@@ -0,0 +1,197 @@
+
+
+
+
+
+
+
+
+ {{ genderSelect }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ form.birthday | date('yyy-MM-dd') }}
+ 请选择出生日期
+
+
+
+
+
+ {{ form.treat_at | date('yyy-MM-dd') }}
+ 请选择初诊日期
+
+
+
+
+
+ {{ doctor.text }}
+ 请选择坐诊医生
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/patient/index.vue b/src/pages/patient/index.vue
index a53cc78..d1fa743 100644
--- a/src/pages/patient/index.vue
+++ b/src/pages/patient/index.vue
@@ -1,28 +1,35 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -32,12 +39,16 @@ export default {
return {
list: [],
page: 1,
- perPage: 10,
+ perPage: 20,
total: 0,
- search: ''
+ search: '',
+ options: [
+ {text: '修改', style: { backgroundColor: '#007aff' }},
+ {text: '删除', style: { backgroundColor: '#dd524d' }}
+ ],
}
},
- onReady() {
+ onShow() {
this.loadData(true)
},
onPullDownRefresh() {
@@ -70,12 +81,27 @@ export default {
if (!value) {
this.loadData(true)
}
+ },
+ add() {
+ uni.navigateTo({
+ url: '/pages/patient/form'
+ })
+ },
+ swipeAction(e) {
+ console.log(e)
}
}
}
-
diff --git a/src/utils/ajax.js b/src/utils/ajax.js
index 3105b67..c7259d1 100644
--- a/src/utils/ajax.js
+++ b/src/utils/ajax.js
@@ -27,7 +27,8 @@ instance.interceptors.response.use(
const res = response.data
if (res.status != 0 && res.doNotDisplayToast == 0) {
uni.showModal({
- title: res.message
+ title: res.msg,
+ showCancel: false
})
}
if (res.code == 401) {
diff --git a/src/utils/index.js b/src/utils/index.js
new file mode 100644
index 0000000..a0ef0e8
--- /dev/null
+++ b/src/utils/index.js
@@ -0,0 +1,40 @@
+export function formatDate(dateTime = null, formatStr = 'yyyy-MM-dd HH:mm:ss') {
+
+ if (!dateTime) return ''
+ let date
+ // 若传入时间为假值,则取当前时间
+ if (!dateTime) {
+ date = new Date()
+ } else if (/^\d{10}$/.test(dateTime.toString().trim())) {
+ date = new Date(dateTime * 1000)
+ } else if (typeof dateTime === 'string' && /^\d+$/.test(dateTime.trim())) {
+ date = new Date(Number(dateTime))
+ } else {
+ date = new Date(
+ typeof dateTime === 'string' ?
+ dateTime.replace(/-/g, '/') :
+ dateTime
+ )
+ }
+
+ const timeSource = {
+ 'y': date.getFullYear().toString(), // 年
+ 'M': (date.getMonth() + 1).toString().padStart(2, '0'), // 月
+ 'd': date.getDate().toString().padStart(2, '0'), // 日
+ 'H': date.getHours().toString().padStart(2, '0'), // 时
+ 'm': date.getMinutes().toString().padStart(2, '0'), // 分
+ 's': date.getSeconds().toString().padStart(2, '0') // 秒
+
+ }
+
+ for (const key in timeSource) {
+ const [ret] = new RegExp(`${key}+`).exec(formatStr) || []
+ if (ret) {
+ const beginIndex = key === 'y' && ret.length === 2 ? 2 : 0
+ formatStr = formatStr.replace(ret, timeSource[key].slice(beginIndex))
+ }
+ }
+ return formatStr
+ }
+
+export default {formatDate}
\ No newline at end of file