diff --git a/src/api/dictionary.js b/src/api/dictionary.js
index 0e7f6382..6c432a61 100644
--- a/src/api/dictionary.js
+++ b/src/api/dictionary.js
@@ -1154,4 +1154,51 @@ export function deleteTrialFinalRecord(id) {
url: `/TrialFinalRecord/deleteTrialFinalRecord/${id}`,
method: 'delete',
})
-}
\ No newline at end of file
+}
+// 项目文档-一般文件记录列表
+export function getTrialNormalRecordList(data) {
+ return request({
+ url: `/TrialNormalRecord/getTrialNormalRecordList`,
+ method: 'post',
+ data
+ })
+}
+// 项目文档-一般文件记录授权
+export function authorizedTTrialNormalRecord(data) {
+ return request({
+ url: `/TrialNormalRecord/authorizedTTrialNormalRecord`,
+ method: 'post',
+ data
+ })
+}
+// 项目文档-一般文件记录批量新增
+export function batchAddTrialNormalRecord(data) {
+ return request({
+ url: `/TrialNormalRecord/batchAddTrialNormalRecord`,
+ method: 'post',
+ data
+ })
+}
+// 项目文档-一般文件记录新增/修改
+export function addOrUpdateTrialNormalRecord(data) {
+ return request({
+ url: `/TrialNormalRecord/addOrUpdateTrialNormalRecord`,
+ method: 'post',
+ data
+ })
+}
+// 项目文档-删除一般文件记录
+export function deleteTrialNormalRecord(id) {
+ return request({
+ url: `/TrialNormalRecord/deleteTrialNormalRecord/${id}`,
+ method: 'delete',
+ })
+}
+// 项目文档-批量删除一般文件记录
+export function deleteTrialNormalRecordList(data) {
+ return request({
+ url: `/TrialNormalRecord/deleteTrialNormalRecordList`,
+ method: 'post',
+ data
+ })
+}
diff --git a/src/utils/oss.js b/src/utils/oss.js
index af37bd6c..6c0aa68c 100644
--- a/src/utils/oss.js
+++ b/src/utils/oss.js
@@ -41,7 +41,13 @@ async function ossGenerateSTS() {
let _vm = router.default.app
if (_vm._route.path !== '/trials/trials-panel/visit/crc-upload') {
var objectItem = objectName.split('/')
- objectItem[objectItem.length - 1] = new Date().getTime() + '_' + objectItem[objectItem.length - 1]
+ // objectItem[objectItem.length - 1] = new Date().getTime() + '_' + objectItem[objectItem.length - 1]
+ objectItem[objectItem.length - 1] = `${objectItem[objectItem.length - 1].substring(
+ 0,
+ objectItem[objectItem.length - 1].lastIndexOf('.')
+ )}__${new Date().getTime()}${objectItem[objectItem.length - 1].substring(
+ objectItem[objectItem.length - 1].lastIndexOf('.')
+ ).toLocaleLowerCase()}`
objectName = objectItem.join('/')
}
let res = await OSSclient.put(objectName, object)
@@ -78,7 +84,13 @@ async function ossGenerateSTS() {
let _vm = router.default.app
if (_vm._route.path !== '/trials/trials-panel/visit/crc-upload') {
var objectItem = data.path.split('/')
- objectItem[objectItem.length - 1] = new Date().getTime() + '_' + objectItem[objectItem.length - 1]
+ // objectItem[objectItem.length - 1] = new Date().getTime() + '_' + objectItem[objectItem.length - 1]
+ objectItem[objectItem.length - 1] = `${objectItem[objectItem.length - 1].substring(
+ 0,
+ objectItem[objectItem.length - 1].lastIndexOf('.')
+ )}__${new Date().getTime()}${objectItem[objectItem.length - 1].substring(
+ objectItem[objectItem.length - 1].lastIndexOf('.')
+ ).toLocaleLowerCase()}`
data.path = objectItem.join('/')
}
let res = await customerHttp(OSSclient, data, progress);
@@ -185,7 +197,13 @@ function uploadAWS(aws, data, progress) {
let _vm = router.default.app
if (_vm._route.path !== '/trials/trials-panel/visit/crc-upload') {
var objectItem = data.path.split('/')
- objectItem[objectItem.length - 1] = new Date().getTime() + '_' + objectItem[objectItem.length - 1]
+ // objectItem[objectItem.length - 1] = new Date().getTime() + '_' + objectItem[objectItem.length - 1]
+ objectItem[objectItem.length - 1] = `${objectItem[objectItem.length - 1].substring(
+ 0,
+ objectItem[objectItem.length - 1].lastIndexOf('.')
+ )}__${new Date().getTime()}${objectItem[objectItem.length - 1].substring(
+ objectItem[objectItem.length - 1].lastIndexOf('.')
+ ).toLocaleLowerCase()}`
data.path = objectItem.join('/')
}
let bucketName = data.path.split("/")[1] || Vue.prototype.OSSclientConfig.bucket
diff --git a/src/utils/stream.js b/src/utils/stream.js
index 4cec5825..1b838669 100644
--- a/src/utils/stream.js
+++ b/src/utils/stream.js
@@ -58,7 +58,7 @@ async function updateFile(file, name) {
try {
store.dispatch('trials/setUnLock', true)
const fileOutputStream = streamSaver.createWriteStream(name);
- file = decodeUtf8(file);
+ // file = decodeUtf8(file);
let res = await fetch(file);
res.body.pipeTo(fileOutputStream).then(() => {
store.dispatch('trials/setUnLock', true)
diff --git a/src/views/trials/trials-panel/trial-summary/trial-document/components/fileRecord/form.vue b/src/views/trials/trials-panel/trial-summary/trial-document/components/fileRecord/form.vue
new file mode 100644
index 00000000..e69de29b
diff --git a/src/views/trials/trials-panel/trial-summary/trial-document/components/fileRecord/index.vue b/src/views/trials/trials-panel/trial-summary/trial-document/components/fileRecord/index.vue
new file mode 100644
index 00000000..8ebcb0f8
--- /dev/null
+++ b/src/views/trials/trials-panel/trial-summary/trial-document/components/fileRecord/index.vue
@@ -0,0 +1,850 @@
+
+